Introduction:
- This document describes the enhanced/derived Device and Extended User Profile schemas, design of how the profile data is captured and how it can be used across various systems.
Design Flow:
Schema Design for User and Device Profile
Computation Table:
Device Profile -
Field | Type | Description | Source | Release | |
---|---|---|---|---|---|
1 | device_id | String | Unique id of device | From first source which inserts a record | 1.11 |
2 | total_ts | Double | Total Time spent on device | Device profile updater data product | 1.11 |
3 | total_launches | Long | Number app/portal launches from the device | Device profile updater data product | 1.11 |
4 | avg_ts | Double | Average time spent on device | Device profile updater data product | 1.11 |
5 | first_access | Timestamp | Timestamp on which device was first accessed | Device profile updater data product | 1.11 |
6 | last_access | Timestamp | Timestamp on which device was last accessed | Device profile updater data product | 1.11 |
7 | state | String | State from which device is accessed | Device Register API | 1.12 |
8 | state_code | String | Device state code | Device Register API | 1.14 |
9 | state_code_custom | String | Device custom state code | Device Register API | 1.14 |
10 | state_custom | String | Device custom state name | Device Register API | 1.14 |
11 | city | String | City from which device is accessed | Device Register API | 1.12 |
12 | country | String | Country from which device is accessed | Device Register API | 1.14 |
13 | country_code | String | Device country code | Device Register API | 1.14 |
14 | district_custom | String | Device custom district name | Device Register API | 1.14 |
15 | device_spec | Map<String,String> | Device Specification | Device Register API | 1.12 |
16 | uaspec | Map<String,String> | Device user agent data | Device Register API | 1.12 |
17 | fcm_token | String | FCM token for app devices | Device Register API | 2.1.0 |
18 | producer_id | String | Producer id for which device belongs to(App/Portal) | Device Register API | 2.1.0 |
19 | producer_ver | String | Version of producer | Device profile updater data product | TBD |
20 | user_ids | List<String> | List of unique users accessed from the device | Device profile updater data product | TBD |
21 | user_count | Long | Unique users accessed from the device | Device profile updater data product | TBD |
22 | last_updated_by | String | Source from which record was last updated | Source which is updating the record | TBD |
23 | sources | List<String> | List of sources from which record gets updated | From all the sources | TBD |
User Profile
Field | Type | Description | Source | Release | |
---|---|---|---|---|---|
1 | user_type | String | Type of user(Anonymous/SelfSignedIn/ValidatedUser) | User_Org Cassandra via Samza job | 2.2.0 |
2 | user_role | String | Role of user(Student/Teacher) | AUDIT events via Samza job | 2.2.0 |
3 | sign_in_type | String | Type of sign-in(GoogleAuth/SingleSignIn) | User_Org Cassandra via Samza job | 2.2.0 |
4 | user_state | String | State name of the User | User_Org Cassandra via Samza job | TBD |
5 | user_district | String | District name of the User | User_Org Cassandra via Samza job | TBD |
6 | user_block | String | Block name of the User | User_Org Cassandra via Samza job | TBD |
7 | first_access | Timestamp | Timestamp on which user was first seen | User Profile Updater data product | TBD |
8 | last_access | Timestamp | Timestamp on which user was last seen | User Profile Updater data product | TBD |
9 | last_device_accessed | String | Device id on which user was last seen | User Profile Updater data product | TBD |
10 | device_ids | List<String> | List of unique devices on which user was seen | User Profile Updater data product | TBD |
11 | last_updated_by | String | Source from which record was last updated | Source which is updating the record | TBD |
12 | sources | List<String> | List of sources from which record gets updated | From all the sources | TBD |
13 | last_content_played | String | Last content played by user | User Profile Updater data product | TBD |
14 | total_ts | Double | Total time spent by user | User Profile Updater data product | TBD |
Questions:
- Possibility of switch in user_role for APP users, Is it ok to have multiple values for user_role in the telemetry for same user_id?
- Can we enhance the existing user table or create new one in analytics database.