Druid Data Model - Course Batch
Introduction:
This wiki explains ingestion specification for the Course Batch and its related objects to compute required metrics and compose dashboards using Druid.
Design:
Below are the objects related to course batch
- Course
- Course Batch
- Enrollment
- User
- Location
- Content
- organization
To denormalize Course, User, Location and Content details we use the properties part of the Telemetry ingestion spec.
We use below prefix for each object for easy understanding.
Object | Prefix |
---|---|
Course | course_ |
Course Batch | batch_ |
Enrollment | batch_enrollment_ |
User | user_ |
Location | location_ |
Content | content_ |
Data Model:
Dimension in Druid | The field in Course Batch | Description | Data Type |
---|---|---|---|
batch_name | name | Name of the Course Batch | String |
batch_id | batchId | Identifier of the Course Batch | String |
batch_createdBy | createdBy | Course Batch - created by | String |
batch_createdDate | createdDate | Course Batch - created date | Date |
batch_createdFor | createdFor | Course Batch - created for (organizations) | String |
batch_enrollmentType | enrollmentType | Course Batch Type - open or invite-only | String |
batch_startDate | startDate | Course Batch - start date | Date |
batch_endDate | endDate | Course Batch - end date | Date |
batch_enrollmentEndDate | enrollmentEndDate | Course Batch - enrollment end date | Date |
batch_status | status | Course Batch - status | Long |
batch_updatedDate | updatedDate | Course Batch - updated date | Date |
batch_enrollment_active | active | Enrollment active or inactive | Boolean |
batch_enrollment_completedOn | completedOn | Enrollment completed on | Date |
batch_enrollment_completionPercentage | completionPercentage | completion percentage | Long |
batch_enrollment_enrolledDate | enrolledDate | Enrollment date | Date |
batch_enrollment_progress | progress | Count of complete contents in the course | Integer |
batch_enrollment_updatedBy | updatedBy | Last updated by | String |
batch_enrollment_updatedDate | updatedDate | Last updated date | Date |
batch_enrollment_certificates | certificates | Certificates assigned to the enrollment. Considering only name , lastIssuedOn , lastReIssuedOn | Array[Object] |
content_type | contentType | type of the content | String |
content_assessment_attemptid | attempt_id | AttemptId for the content assessment | Sttring |
content_assessment_attemptscore | total_score | total score for the assessment attempt | Integer |
content_assessment_maxscore | total_max_score | total score for the assessment attempt | Integer |
user_id | userId | Enrolled user id | String |
user_name | username | Enrolled username | String |
user_email | Enrolled user email | String | |
user_phone | phone | Enrolled user phone | String |
user_organization | orgname(organisation table) | Enrolled user organisation name | String |
user_school | |||
user_enrollment_date | enrolleddate(user_courses table) | Enrolled user enrolled Date | Date |
user_board | framework.board | Enrolled user : board | String |
user_grade | framework.grade | Enrolled user : grade | Array[String] |
user_medium | framework.medium | Enrolled user : medium | Array[String] |
user_subject | framework.subject | Enrolled user : subject | Array[String] |
user_signup_date | createdOn | Enrolled user : createdOn Date | Date |
user_course_progress | progress(user_courses table) | Enrolled user : course progress | int |
user_signin_type | user_signin_type | Enrolled user : Mode of Signin | String |
user_login_mode | Enrolled user : Mode of device(app/portal/desktop) | String | |
user_org_externalId | externalid | Enrolled user : organisation external id | String |
location_district | name(location table) | district Location of the enrolled user | String |
location_block | name(location table) | block Location of the enrolled user | String |
course_id | courseid | unique id of the course | String |
course_name | courseadditionalinfo.courseName | name of the course | String |
course_author | coursecreator | author of the course | String |