Skip to content

Latest commit

 

History

History
131 lines (119 loc) · 2.85 KB

personalize-schema.md

File metadata and controls

131 lines (119 loc) · 2.85 KB

CDK로 Personalize에 저장하는 DataSet의 Schema 정의

cdk-emotion-garden에서는 DataSet에 대한 Schema를 정의합니다.

Interaction

const interactionSchemaJson = `{
  "type": "record",
  "name": "Interactions",
  "namespace": "com.amazonaws.personalize.schema",
  "fields": [
    {
      "name": "USER_ID",
      "type": "string"
    },
    {
      "name": "ITEM_ID",
      "type": "string"
    },
    {
      "name": "TIMESTAMP",
      "type": "long"
    },
    { 
      "name": "EVENT_TYPE",
      "type": "string"
    },
    {
      "name": "IMPRESSION",
      "type": "string"
    }
  ],
  "version": "1.0"
}`;
const interactionSchema = new personalize.CfnSchema(this, 'InteractionSchema', {
  name: 'emotion-garden-interaction-schema',
  schema: interactionSchemaJson,
});

const interactionDataset = new personalize.CfnDataset(this, 'InteractionDataset', {
  datasetGroupArn: datasetGroup.attrDatasetGroupArn,
  datasetType: 'Interactions',
  name: 'emotion-garden-interaction-dataset',
  schemaArn: interactionSchema.attrSchemaArn,
});

User의 정의

User에 대한 Schema를 정의합니다.

const userSchemaJson = `{
  "type": "record",
  "name": "Users",
  "namespace": "com.amazonaws.personalize.schema",
  "fields": [
    {
      "name": "USER_ID",
      "type": "string"
    },
    {
      "name": "GENERATION",
      "type": "string",
      "categorical": true
    },
    {
      "name": "GENDER",
      "type": "string",
      "categorical": true
    },
    {
      "name": "EMOTION",
      "type": "string",
      "categorical": true
    }
  ],
  "version": "1.0"
}`;
const userSchema = new personalize.CfnSchema(this, 'UserSchema', {
  name: 'emotion-garden-user-schema',
  schema: userSchemaJson,
});

const userDataset = new personalize.CfnDataset(this, 'UserDataset', {
  datasetGroupArn: datasetGroup.attrDatasetGroupArn,
  datasetType: 'Users',
  name: 'emotion-garden-user-dataset',
  schemaArn: userSchema.attrSchemaArn,
});

Item의 정의

Item에 대한 Schema를 정의합니다.

const itemSchemaJson = `{
  "type": "record",
  "name": "Items",
  "namespace": "com.amazonaws.personalize.schema",
  "fields": [
    {
      "name": "ITEM_ID",
      "type": "string"
    },
    {
      "name": "TIMESTAMP",
      "type": "long"
    },
    {
      "name": "EMOTION",
      "type": "string",
      "categorical": true
    }
  ],
  "version": "1.0"
}`;
const itemSchema = new personalize.CfnSchema(this, 'ItemSchema', {
  name: 'emotion-garden-itemSchema',
  schema: itemSchemaJson,
});

const itemDataset = new personalize.CfnDataset(this, 'ItemDataset', {
  datasetGroupArn: datasetGroup.attrDatasetGroupArn,
  datasetType: 'Items',
  name: 'emotion-garden-itemDataset',
  schemaArn: itemSchema.attrSchemaArn,
});