Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 4 Next »

Purpose :

  • Design the experiment definition metadata schema
  • Data product design to populate experiment data for the experiments

Design Flow :

Experiment Definition Schema:


FieldtypeDescription
1experiment_idStringunique id for experiment
2experiment_nameStringname of the experiment
3clientStringexperiment channel(portal/app/Desktop)
4start_dateTimestampstart date of the experiment
5end_dateTimestampend date of the experiment
6user_countLongno of users mapped to the experiment
7device_countLongno of devices mapped to the experiment
8experiment_mappedBooleanflag to check if the experiment is already mapped
9udpated_onTimestamplast udpated by the experiement data product


Experiment Data Product :

Purpose

  • To compute the user experiment mapping based on the experiment criteria and save it to elastic search

Inputs

  • Experiment_Definition Cassandra Table
  • Experiment Criteria Config

User Criteria Config

UserCriteriaConfig
{
  "experiments": [
    {
      "exp_id": {
        "criteria": {
          "type": "user",
          "channel": "app/portal/desktop",
          "request": {
            "filters": {
              "organisations.orgName": [
                "sunbird"
              ],
              "framework.board": [
                "CBSE"
              ]
            }
          }
        }
      }
    },
    {
      "exp_id": {
        "criteria": {
          "type": "user",
          "channel": "app/portal/desktop",
          "request": {
            "filters": {
              "emailVerified": true
            }
          }
        }
      }
    }
  ]
}

Note : Currently all the filters are included as "AND" condition

Device Criteria Config

DeviceCriteriaConfig
{
  "exp_id": {
    "criteria": {
      "type": "device",
      "channel": "app/portal/desktop",
      "request": {
        "filters": [
          {
            "name": "state",
            "operator": "IN",
            "value": [
              "Karnataka"
            ]
          },
          {
            "name": "first_access",
            "operator": "GT",
            "value": "2019-07-17"
          }
        ]
      }
    }
  }
}


Output : User experiment mapping  index to elastic search

Experiment Index
User Experiment :
{
          "name" : "USER_ORG",
          "expType" : "user",
          "lastUpdatedOn" : "2019-07-30T00:00:00",
          "endDate" : "2019-07-28T00:00:00",
          "url" : null,
          "deviceIdMod" : 0,
          "key" : "2392438420",
          "id" : "A1234",
          "userIdMod" : 0,
          "userId" : "d5fd92df-2683-4357-8620-45bc0683f38c",
          "platform" : "portal",
          "deviceId" : null,
          "startDate" : "2019-07-25T00:00:00"
        }

Device Experiment :

{
          "name" : "DEVICE_LOCATION",
          "expType" : "device",
          "lastUpdatedOn" : "2019-07-30T00:00:00",
          "endDate" : "2019-08-30T00:00:00",
          "url" : null,
          "deviceIdMod" : 0,
          "key" : "4584583045489",
          "id" : "B1534",
          "userIdMod" : 0,
          "userId" : null,
          "platform" : "app",
          "deviceId" : "3f3da025f07f2d6e4ead9042710b8b78",
          "startDate" : "2019-07-29T00:00:00"
        }




  • No labels