本页包含 SQL 查询 Blackboard Learn 数据库的活动累加器,以便您能获得 Blackboard 移动使用的相关活动信息。此类信息假定您已经可以访问您的数据库并有权查询信息。这些查询仅用于报告目的,因此,无需写入权限。
建议使用具有只读权限的帐户来防止意外更改。直接对任一复杂系统的数据库做出更改会导致重大问题,包括停机。本文档中这个页面列出的查询不会对系统做出任何更改。
本页面指定了 SQL 查询代码示例。通过这些查询,您应该能了解其他事项的工作原理。数据的记录方式存在一些限制。目前,我们无法确定任何特定事件是通过哪个应用程序或平台执行的。这意味着,在查找数据时,Blackboard 应用程序和 Blackboard Instructor 都是一样的。
在 SQL 查询示例中,bblearn 被用作示例数据库架构。Blackboard Learn 数据库会将数据存储在许多备用架构(如 bb_bb60 或 bblearn_stats)中以将数据存档。查询的第一部分可能需要进行更改,以将架构变体考虑在内。
统计特定时间段内移动登录的总次数
此查询会显示任何用户从任一设备上的任一应用程序登录到 Blackboard Learn 的次数。用户登录一次,它就会统计一次。如果用户在信号不好的地方反复断开连接,则它会报告多次登录,即使自动登录的用户在自己的设备上将其视为一次会话也是如此。下方的示例以一个月的数据为依据。
select Count(*) from bblearn.activity_accumulator
where TIMESTAMP > '01-MAR-2016'
and TIMESTAMP < '01-APR-2016'
and data like '%Mobile Login%'
当配置为强制进行 Web 验证时,对于每次移动应用程序用户登录,Blackboard Learn 数据库中的活动累加器表将“移动登录尝试”记录三次。详细了解此已知问题。
统计特定时间段内的唯一身份用户数
此查询会显示在特定时间段内登录的唯一身份用户数。因为它使用与登录相关的数据库 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 表格与 course_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,必须使用课程或组织“ROLE ID”。此外,有些用户可能登录至错误的应用程序。例如,某位教师可能会误登录至 Blackboard 应用程序。分析结果时请考虑这一点。
显示特定时间段内的所有各个登录
此查询实际上与“统计特定时间段内移动登录的总次数”这个查询相同,但不同之处在于它显示所有原始数据(而非只统计行数)。如果您要查找模式、或打算导出要对其执行操作的数据以深入了解报告,这个查询会非常有用。第一行中的“*”字符表示它会显示表格中的所有列。
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 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 一个表格中的值等于另一个表格中的相同值。
以下查询是一个使用表格的 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'。这样一来,只要获得学生的实际用户名,系统便可针对 activity_accumulator 表格运行查询,而不必确定用户 PK1 值。
可以结合其他表格。添加的条件和结合越多,查询需要的时间就越长,但得到的结果中的数据质量会更好。无需获得许多数据库 ID,就像 activity_accumulator 会默认填充一样,内容名称和课程名称可以填充到查询中。
参考数据
移动事件
以下事件是由移动 Web 服务 Building Block 在 activity_accumulator 表格中记录的。此列表可能会随时间而变化。Building Block(而非应用程序本身)记录事件时,无论使用哪个应用程序执行操作,数据格式都是相同的。在上文的话题查看这个查询中,如果下表中任一条目包含除移动列表本身之外的额外文本,则可以使用此条目替换“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 |
查看内容项目 | Mobile Content View |