モバイル使用アクティビティ
このページにはBlackboardのモバイル使用に関するアクティビティ情報を取得できるように、Blackboard LearnデータベースのActivity AccumulatorのSQLクエリが記載されています。この情報はデータベースおよびクエリ情報へのアクセス権を有していることが前提となります。これらのクエリはレポート目的で設計されているため、書き込み権は必要ありません。
予期せぬ変更を防ぐために、読み取り専用アクセスでアカウントを使用することを推奨します。複雑なシステムでデータベースに直接変更を加えると、ダウンタイムといった深刻な問題が発生することがあります。本書の当ページに記載のクエリは、システムにいかなる変更も加えません。
このページにSQLのクエリコードのサンプルを記載します。これらのクエリにより、追加した場合どのように機能するのか理解できます。データの記録方法には制限があります。現在、特定のイベントを実施したアプリやプラットフォームを特定することはできません。つまり、データを見ると、BlackboardアプリとBlackboard Instructorはすべて同じように見えます。
SQLクエリのサンプルでは、bblearnはサンプルのデータベーススキーマとして使用されます。Blackboard Learnデータベースは、bb_bb60やbblearn_statsなど多くの代替スキーマに保存されたデータを保有することができます。スキーマのバリエーションを考慮に入れて、クエリの先頭部分を変更する必要があります。
特定の期間のモバイルログインの合計数を数える
このクエリは、すべてのデバイス、アプリを対象にBlackboard Learnにユーザがログインした回数を表示します。ユーザがログインするごとに、1回とカウントされます。通信状態の悪いエリアでユーザによる接続が何度も途切れた場合、多くのログイン回数が報告されます。一方、自動ログイン設定にしているユーザは、デバイス上では1回のセッションと表示されます。このサンプルで1か月分のデータを考察します。
select Count(*) from bblearn.activity_accumulator
where TIMESTAMP > '01-MAR-2016'
and TIMESTAMP < '01-APR-2016'
and data like '%Mobile Login%'
モバイルアプリのユーザがForce to Web認証でログインするたびに、Blackboard LearnデータベースのActivity Accumulatorテーブルに「Mobile Login Attempt」が複数回記録されます。この既知の問題の詳細。
特定期間の一意のユーザ数をカウントする
このクエリは、特定の期間中にログインした個別ユーザ数を表示します。データベースIDをログインと関係付けて使用するため、該当期間中にユーザが複数のアプリやデバイスを使用しても、ユーザは1人のユーザとして表示されます。たとえば、月次レポートを作成するためにこのクエリを繰り返し使用した場合、ユーザは各クエリに対して一意となります。つまり、クエリを実行するたびに各ユーザは1回とカウントされます。各ユーザはログインした月ごとにカウントされますが、月に一度しかカウントされません。このサンプルで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%'
コースロールによる一意のユーザログイン数をカウントする
このクエリは、コースロールによってログインした一意のユーザ数を表示します。activity_accumulator表とcourse_users (登録) 表が結合されます。各ユーザのコースまたはコミュニティロールを含むcourse_users表を結合すると、BlackboardおよびBlackboard Instructorアプリにアクセスするユーザのおよその数を推定することができます。"特定の時間内の一意のユーザ数をカウントする"を適用するのと同じガイドラインがこのクエリに適用されます。このサンプルは1か月間に携帯電話からログインした一意の教員数を返します。
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はコースまたはコミュニティの"ROLE ID"を使わなければなりません。また、一部のユーザは不正なアプリにログインするおそれがあります。たとえば、教員が誤ってBlackboardアプリにログインするかもしれません。結果を解析するときにはこの点を考慮してください。
特定期間の個別ログインをすべて表示する
このクエリは実質「特定の期間のモバイルログインの合計数を数える」クエリと同じ役割ですが、行数をカウントするだけでなく、rawデータをすべて表示するという点で異なります。これはパターンを探している時や、詳細なレポート用で処理されるデータをエクスポートする準備の時に役立ちます。先頭行の'*'文字は、テーブルのすべての列を表示することを表しています。
select * from bblearn.activity_accumulator
where TIMESTAMP > '01-MAR-2016'
and TIMESTAMP < '01-APR-2016'
and data like '%Mobile Login%'
特定期間にユーザがフォーラムのスレッドを閲覧した時間を個別にすべて表示する
このクエリはMobile Analyticsページのようにログインデータを考察するのではなく、学生がアプリで行った操作を考察します。学生がBlackboardアプリを使用してフォーラムのスレッドを閲覧した時は、常にBuilding Blockが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のモバイルの使用の有無にかかわらず、Blackboard Learn内のすべてのユーザが該当します。
select *
from bblearn.users
クエリを特定の列に限定する
このページのクエリで、一部に'*'指定子が使用されているクエリの全ては、列を指定することができます。これにより、真値を提供するか関係なくSQLはすべての列をテーブルに返します。以下のクエリはactivity_accumulatorからすべての行をテーブルに返しますが、列は5つしか返しません。これにより、ユーザ、コース、コンテンツ項目を識別できるようになるだけでなく、アクティビティが発生した時からのデータフィールドやタイムスタンプの情報も取得できます。その他の列は表示されません。
select user_pk1, course_pk1, content_pk1, data, timestamp
from bblearn.activity_accumulator
複数のテーブルをまとめる
2つのテーブルの結果をまとめることで、関連ユーザへのデータをフィルタおよび制限することができます。また、ユーザ名をアクティビティと一緒に関連するユーザに直接取り入れることができ、手動で検索する必要がなくなります。SQLはJOINを使用して複数のテーブルからの結果をまとめます。JOINとはある1つのテーブルからの値が別のテーブルの値と同じであることをSQLに知らせるステートメントです。
以下のクエリは、Blackboardのテーブルを使用するSQLのJOINの例です。JOINの使用は難易度が高く、時に試行錯誤することが必要となります。さらに複雑なクエリを使用する予定がある場合、JOINを学習することを推奨します。クエリが複雑になるに従って、プロセスにおいてデータベースサーバの作業がさらに必要となり、エラーが発生する確率が高くなります。
行ごとの例とその他クエリを構築する良いリファレンスを記載します。このクエリは前述の複数のクエリを1つのクエリにまとめ、いくつかの制限が設定されている複数のテーブルからの特定の列のみを表示します。
- 2つの異なるテーブルから列を指定します。テーブル名は列の後ろに定義されています。
- 2つのテーブルに絞り、1文字のニックネームを付けます。
- 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テーブルに対してクエリを実行することができます。
別のテーブルを結合することができます。条件が増え、結合が多くなるとクエリ時間は長くなりますが、結果としてより優れたデータを得ることができます。デフォルトのようにActivity_Accumulatorからの多くのデータベースIDを持つことなく、コンテンツ名やコース名をクエリ値に取り入れることができます。
参照データ
モバイルイベント
以下のイベントは、Activity_AccumulatorテーブルのモバイルサービスBuilding Blockに記録さます。このリストは何度も変更できます。イベントはアプリ自身ではなくBuilding Blockに記録されるため、機能の実行に使用されたアプリに関係なくデータ形式は同一になります。前に取り上げたスレッドを表示するクエリでは、エントリにモバイルリスティング自体に加え余分なテキストが含まれている場合、'mobile.view.thread'パラメータを以下のテーブルのいかなるエントリとも置換することができます。同じアクションに対して異なるエントリが存在する場合があります。これはあるポイントで記録形式が変更されたためで、結果を取得するために時間をかけて両方のエントリタイプを検索しないといけない場合があります。
イベント | Activity_Accumulatorテーブルの'Data'フィールドのエントリ |
---|---|
ブログ一覧の表示 | 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 Web Services building blockのバージョン*.2.9以降を使用しているサーバの場合、ユーザがBlackboard Mobile Learnアプリにログインすると、BbMobileユーザロールが第2教育機関ロールとして追加されます。
学生
BbMobileユーザが第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';
教職員
BbMobileユーザが第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か月間のMobileログインの総数をカウント
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%';