모바일 사용 활동
이 페이지에는 Blackboard Learn 데이터베이스에 대한 활동 누적 계산기 SQL 쿼리가 포함되어 있어 Blackboard 모바일 사용량에 대한 활동 정보를 얻을 수 있습니다. 이 정보는 관리자가 이미 데이터베이스에 접근할 수 있고 정보를 쿼리할 권한을 보유하고 있다고 가정합니다. 이러한 쿼리는 보고용으로 만들어졌으므로 쓰기 권한은 필요하지 않습니다.
실수로 변경하지 않도록 하려면 읽기 전용 접근 권한이 있는 계정을 사용하는 것이 좋습니다. 복잡한 시스템의 데이터베이스를 직접 변경하면 가동 중지와 같은 큰 문제가 발생할 수 있습니다. 이 문서의 이 페이지에 나열된 쿼리는 시스템을 변경하지 않습니다.
SQL 쿼리 코드 샘플이 이 페이지에 지정되어 있습니다. 이러한 쿼리를 통해 추가 작업이 작동하는 방식에 대한 아이디어를 얻을 수 있습니다. 데이터가 기록되는 방식에는 몇 가지 제한이 있습니다. 현재로서는 특정 이벤트가 어떤 앱이나 플랫폼에서 수행되었는지 확인할 수 없습니다. 이는 데이터를 살펴볼 때 Blackboard 앱 및 Blackboard Instructor가 모두 똑같이 나타난다는 것을 의미합니다.
SQL 쿼리 샘플에서는 샘플 데이터베이스 스키마로 bblearn이 사용됩니다. Blackboard Learn 데이터베이스에서는 아카이브된 데이터에 대한 여러 대체 스키마(bb_bb60 또는 bblearn_stats 등)에 저장된 데이터가 있을 수 있습니다. 쿼리의 첫 번째 부분은 스키마 변형을 고려하여 변경해야 할 수 있습니다.
특정 기간의 총 모바일 로그인 횟수 계산
이 쿼리는 사용자가 모든 장치의 앱에서 Blackboard Learn에 로그인하는 횟수를 보여줍니다. 사용자가 로그인할 때마다 1회로 계산됩니다. 수신 상태가 좋지 않은 영역에서 사용자 연결이 반복적으로 끊어지는 경우 자동 로그인을 사용하는 사용자에게는 장치에서 한 세션으로 표시되더라도 로그인 횟수가 여러 번 보고될 수 있습니다. 다음 샘플은 한 달 치의 데이터를 보여줍니다.
select Count(*) from bblearn.activity_accumulator
where TIMESTAMP > '01-MAR-2016'
and TIMESTAMP < '01-APR-2016'
and data like '%Mobile Login%'
Blackboard Learn 데이터베이스의 활동 누산기 표에서는 FTW(Force to Web) 인증을 통해 로그인하는 모든 모바일 앱 사용자의 모바일 로그인 시도를 여러 번 기록합니다. 이 알려진 문제에 대해 자세히 알아보세요.
특정 기간의 고유 사용자 수 계산
이 쿼리는 특정 기간 동안 로그인한 고유한 사용자 수를 표시합니다. 이 쿼리는 로그인과 연계된 데이터베이스 ID를 사용하므로 이 기간 동안 얼마나 많은 앱이나 장치를 사용하는지와 관계없이 사용자가 한 사용자로만 표시됩니다. 예를 들어 이 쿼리를 반복적으로 사용하여 월별 보고서를 작성하는 경우 사용자는 각 쿼리에 고유하게 됩니다. 즉, 쿼리를 실행할 때마다 각 사용자는 한 번만 계산됩니다. 각 사용자는 로그인한 달마다 계산되지만 매달 한 번만 계산됩니다. 다음 샘플은 한 달 치의 데이터를 보여줍니다.
select Count(Distinct(user_pk1)) from bblearn.activity_accumulator
where TIMESTAMP > '01-MAR-2016'
and TIMESTAMP < '01-APR-2016'
and data like '%Mobile Login%'
코스 내 역할별 고유한 사용자 로그인 수 계산
이 쿼리를 사용하면 코스 내 역할별로 로그인한 고유한 사용자 수가 표시되며, activity_accumulator 테이블과 courseurse_users(등록) 테이블이 조인됩니다. 각 사용자의 코스 또는 조직 내 역할이 포함된 course_users 테이블을 조인하면 Blackboard 앱과 Blackboard Instructor 앱에 접속한 사용자의 수를 대략적으로 추정할 수 있습니다. "특정 기간의 고유한 사용자 수 계산"에 적용되는 지침이 이 쿼리에도 동일하게 적용됩니다. 이 샘플은 한 달 동안의 고유한 교수자 모바일 로그인 수를 반환합니다.
select Count(Distinct(user_pk1)) from bblearn.activity_accumulator aa
join bblearn.course_users cu on
aa.user_pk1 = cu.users_pk1
where cu.role = 'P'
and timestamp > '01-NOV-2018'
and timestamp < '30-NOV-2018'
and aa.data like '%Mobile Login%';
cu.role에는 코스 또는 조직 내 "역할 ID"를 사용해야 합니다. 또한 잘못된 앱에 로그인하는 사용자가 있을 수 있습니다. 교수자가 실수로 Blackboard 앱에 로그인하는 경우를 그 예로 들 수 있습니다. 결과를 분석할 때 이러한 사항도 고려하십시오.
특정 기간의 개별 로그인 모두 표시
이 쿼리는 단순한 행 수 계산이 아니라 모든 처리 전 데이터를 보여준다는 점만 제외하고 실질적으로 "특정 기간의 총 모바일 로그인 횟수 계산" 쿼리와 같습니다. 이 쿼리는 패턴을 찾거나 더 자세한 보고를 위해 조작할 데이터를 내보내려는 경우에 유용할 수 있습니다. 첫 줄의 '*' 문자는 테이블의 모든 열이 표시됨을 의미합니다.
select * from bblearn.activity_accumulator
where TIMESTAMP > '01-MAR-2016'
and TIMESTAMP < '01-APR-2016'
and data like '%Mobile Login%'
특정 기간에 사용자가 포럼 토론글을 본 개별 횟수 모두 표시
이 쿼리는 모바일 분석 페이지처럼 로그인 데이터를 살펴보지 않고 학생들이 앱에서 수행하는 작업을 살펴봅니다. 누군가가 Blackboard 앱을 사용하여 포럼에서 토론글을 볼 때마다 빌딩 블록은 activity_accumulator 테이블에 'mobile.view.thread' 항목을 기록합니다. 이 쿼리는 학생이 포럼에서 토론글을 본 시간을 표시합니다. 이 데이터가 다른 테이블의 데이터와 결합되거나 Microsoft Excel과 같은 프로그램에서 조작되면 특정 학생, 코스, 사용 패턴에 관한 정보를 확인할 수 있습니다.
select * from bblearn.activity_accumulator
where TIMESTAMP > '01-MAR-2016'
and TIMESTAMP < '01-APR-2016'
and data = 'mobile.view.thread'
모든 모바일 사용량 표시
다음 쿼리는 특정 달의 모든 모바일 항목을 가져옵니다. 그러나 이 쿼리는 단지 "모바일"이라는 단어가 포함된 페이지를 결과로 나타낼 수 있습니다. 이 정보는 유용하지만 다른 형식으로 데이터를 변환하여 사용 패턴을 찾는 것이 더 나을 수 있습니다. 예를 들어 사용이 기록된 항목 중 모바일 장치에서 가장 많이 접근된 항목은 무엇인지 확인합니다.
select * from bblearn.activity_accumulator
where TIMESTAMP > '01-MAR-2016'
and TIMESTAMP < '01-APR-2016'
and data like '%Mobile%'
고급 쿼리
다음 쿼리는 위 내용의 기본 사항을 일부 포함하고 있으며, 더 자세한 결과를 얻거나 데이터를 종합하여 더 읽기 좋게 만드는 방법을 보여줍니다.
Blackboard 사용자 쿼리
이 쿼리는 사용자 테이블의 모든 데이터를 포함합니다. 여기에는 각 사용자의 사용자명 및 연계된 PK 값이 포함됩니다. 이는 Blackboard Learn 내의 모든 사용자로, Blackboard의 모바일 제품을 사용하는지 여부와는 관계가 없습니다.
select *
from bblearn.users
쿼리를 특정 열로 제한
이 페이지의 모든 쿼리는 열을 지정할 수 있는 쿼리 부분에 '*' 지정자를 사용했습니다. 따라서 SQL은 열에 실제 값이 있는지 여부와 관계없이 테이블의 모든 열을 반환합니다. 다음 쿼리는 activity_accumulator 테이블의 모든 줄을 반환하지만, 열은 5개만 반환합니다. 이를 통해 사용자, 코스, 콘텐츠 항목을 식별할 수 있을 뿐만 아니라 데이터 필드의 정보와 활동이 발생한 타임스탬프도 제공됩니다. 다른 열은 표시되지 않습니다.
select user_pk1, course_pk1, content_pk1, data, timestamp
from bblearn.activity_accumulator
여러 테이블 조인
두 테이블의 결과를 결합하면 필터링하여 데이터를 관련 사용자로 제한할 수 있습니다. 사용자명을 가져와 직접 사용자를 활동에 연결할 수도 있으므로 수동으로 조회할 필요가 없습니다. SQL은 조인을 사용하여 여러 테이블의 결과를 결합합니다. 조인은 SQL에서 한 테이블의 값이 다른 테이블의 동일한 값과 같다는 것을 알 수 있도록 하는 where 문입니다.
다음 쿼리는 Blackboard의 테이블을 사용하는 SQL 조인의 예입니다. 조인은 어려울 수 있으며 때때로 많은 시행착오가 필요합니다. 더 복잡한 쿼리를 실행할 계획이라면 조인에 대해 알아보는 것이 좋습니다. 쿼리가 복잡할수록 데이터베이스 서버에서 처리해야 할 작업이 더 많아질 수 있으며 실수를 할 가능성이 높아집니다.
다른 쿼리를 작성하는 데 참고할 수 있도록 다음 예에서는 줄별로 살펴보겠습니다. 이 쿼리는 위에서 소개한 대로 몇 가지 제한 사항을 설정하여 여러 테이블에서 특정 열만 제공하는 하나의 쿼리로 여러 부분을 결합합니다.
- 두 개의 서로 다른 테이블에서 열을 지정합니다. 테이블 이름은 열 다음에 정의됩니다.
- 두 테이블을 선택하여 한 글자로 별명을 지정합니다.
- Where는 조건을 입력하는 위치입니다. SQL에서 테이블의 관련성에 대한 설명은 조건으로 간주됩니다. 그러므로 데이터를 관련지을 방식을 SQL에서 알 수 있도록 상응하는 열을 지정해야 합니다.
- 추가 조건: 타임스탬프 시작 날짜
- 추가 조건: 타임스탬프 종료 날짜
- 추가 조건: 데이터 열 제한자
select u.user_id, a.data, a.timestamp
from bblearn.activity_accumulator a, bblearn.users u
where u.pk1=a.user_pk1
and a.TIMESTAMP > '01-MAR-2016'
and a.TIMESTAMP < '01-APR-2016'
and a.data like '%Mobile Login%'
쿼리와 마찬가지로, 조건은 u.user_id = 'StudentLogin'과 같은 사용자 테이블에 추가할 수 있습니다. 따라서 학생의 실제 사용자명을 아는 경우 사용자 PK1 값을 알아낼 필요 없이 activity_accumulator 테이블을 대상으로 쿼리를 실행할 수 있습니다.
다른 테이블을 조인할 수 있습니다. 조건과 조인을 더 많이 추가할수록 쿼리가 더 길게 실행되지만, 더 나은 데이터를 결과로 얻을 수 있습니다. 여러 데이터베이스 ID를 사용하는 대신, activity_accumulator를 통해 기본적으로 지정된 콘텐츠 이름과 코스 이름이 쿼리에 채워질 수 있습니다.
데이터 참조
모바일 이벤트
다음 이벤트는 모바일 웹 서비스 빌딩 블록에 의해 activity_accumulator 테이블에 기록됩니다. 이 목록은 시간이 지남에 따라 변경될 수 있습니다. 이벤트는 앱 자체가 아니라 빌딩 블록에 의해 기록되므로 데이터 형식은 이 기능을 활용하는 데 어떤 앱이 사용되었는지와 관계없이 같습니다. 토론글 보기의 이전 쿼리에서 아래 테이블의 항목에 모바일 목록 자체 이외의 추가 텍스트가 있으면 'mobile.view.thread' 매개변수를 이러한 항목 중 어느 것으로든 대체할 수 있습니다. 동일한 작업에 서로 다른 항목이 있는 인스턴스도 있습니다. 특정 시점에 기록 형식이 변경되어 시간이 흐름에 따라 결과를 얻으려면 두 항목 유형 모두를 검색해야 할 수 있기 때문입니다.
이벤트 | activity_accumulator 테이블 '데이터' 필드의 항목 |
---|---|
블로그 목록 보기 | mobile.list.blogs |
게시글 목록 보기 | mobile.list.blog.entries |
게시글 코멘트 보기 | mobile.list.blog.comments |
저널 코멘트 보기 | mobile.list.journal.add.entry.comment |
블로그 코멘트 보기 | mobile.list.blog.add.entry.comment |
저널 항목 보기 | mobile.list.journal.add.entry |
블로그 항목 추가 | mobile.list.blog.add.entry |
저널 목록 보기 | mobile.list.journals |
게시글 목록 보기 | mobile.list.journal.entries |
게시글 코멘트 보기 | mobile.list.journal.comments |
포럼 보기 | mobile.list.forums |
토론글 보기 | mobile.list.threads |
토론글 보기 | mobile.view.thread |
토론글 게시글 보기 | mobile.view.thread.post |
공지 사항 보기 | mobile.view.announcements |
등록 명단 보기 | mobile.view.roster |
성적 보기 | mobile.view.grades |
저널 항목 보기 | mobile.add.journal.entry |
db 게시글 추가 | mobile.add.thread.post |
db 게시글 코멘트 추가 | mobile.add.thread.post.comment |
콘텐츠 항목 보기 | 모바일 콘텐츠 보기 |
얼마나 많은 학생 및/또는 교직원이 Bb Mobile 앱을 사용하고 있는지 알려면 어떻게 합니까?
Blackboard Mobile 웹 서비스 Building Block 버전 *.2.9 이상을 사용하는 서버의 경우 사용자가 Blackboard Mobile Learn 앱에 로그인하면 Bb Mobile 사용자 역할이 교육기관 내 2차 역할로 추가됩니다.
학생
Bb Mobile 사용자가 교육기관 내 2차 역할로 연결된 모든 학생 사용자를 찾는 방법에 대한 쿼리는 다음과 같습니다('학생' 역할이 institution_roles_pk1 = 1이라고 가정).
SELECT count(distinct u.pk1) as count_BbMobileUser
FROM users u, user_roles r, institution_roles ir
WHERE u.institution_roles_pk1 = '1'
AND u.pk1 = r.users_pk1
AND r.institution_roles_pk1 = ir.pk1
AND ir.role_name = 'BbMobile User';
교직원
Bb Mobile 사용자가 교육기관 내 2차 역할로 연결된 모든 교직원 사용자를 찾는 방법에 대한 쿼리는 다음과 같습니다('교직원' 역할이 institution_roles_pk1 = 2이라고 가정).
SELECT count(distinct u.pk1) as count_BbMobileUser
FROM users u, user_roles r, institution_roles ir
WHERE u.institution_roles_pk1 = '2'
AND u.pk1 = r.users_pk1
AND r.institution_roles_pk1 = ir.pk1
AND ir.role_name = 'BbMobile User';
1개월 동안의 총 모바일 로그인 횟수 계산
SELECT Count(*) from bblearn.activity_accumulator
WHERE TIMESTAMP > '01-MAR-2016'
AND TIMESTAMP < '01-APR-2016'
AND data like '%Mobile Login%';
1개월 동안의 고유한 사용자 수 계산
SELECT Count(Distinct(user_pk1))
FROM bblearn.activity_accumulator
WHERE TIMESTAMP > '01-MAR-2016'
AND TIMESTAMP < '01-APR-2016'
AND data like '%Mobile Login%';