Disjointed Datasets
I'm trying to create a user access report that shows the date and time spent in courses. It would basically look something like this:
StudentID | StudentName | CourseName | Date Accessed | StartTime | EndTime | Total Time
Getting this is a bit difficult because I cannot find a dataset that contain this info nor ones that can be connected to combine this info.
I have three questions regarding data on user access to courses.
- Why aren't the CourseAccess and CourseAccessLog datasets connected with an id field?
- Why are these two not connected to UserLogins and SessionHistory with the sessionid? A student could visit multiple courses in one session.
- Why aren't ContentUserCompletion and ContentUserProgress connected to UserLogin and SessionHistory via SessionID? I could really ask this about all logs (quizattemptlog, assignmentsubmissiondetails, etc.).
Answers
-
Hi Lee,
Thank you for reaching out to us through community!
Brightspace Data Sets are designed as independent exports optimized for reporting
Q1: CourseAccess is a summary dataset (aggregated per user and org unit).
CourseAccessLog is an event-level dataset (each record represents a course access event). Instead of cross-table ID's, they are meant to be joined on logical keys:
UserId, OrgUnitId, and sometimes a timestamp field (AccessedDate or AccessDate).
So in short — they can be connected logically, but not via a unique shared primary key.
Q2:
A Brightspace session can span multiple courses and multiple services. The User Logins Brightspace Data Set returns a list of all login attempts for your organization . The session specific details are now isolated to Session History and the System Access log dataset.
Q3
ContentUserCompletion and ContentUserProgress, all those datasets capture learning events, not authentication sessions.
- A
ContentUserProgressrecord = learner viewed or completed an activity. - A
SessionHistoryrecord = learner logged in/out of the system.
Since a student might:
- Leave their session idle,
- Access content asynchronously (e.g., mobile offline sync),
- Or complete multiple items under one login,
Linking via
SessionIdcould be misleading and introduce inaccurate assumptions about learning time.So again — D2L separates system sessions (login/logout) from learning activity events (content, quiz, assignment).
Thanks,
Sreelakshmi
- A

