데이터 세트 및 스키마 생성 - Amazon Personalize

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

데이터 세트 및 스키마 생성

1단계: 데이터 세트 그룹 생성 작업을 완료했으면 데이터 세트를 만들 준비가 된 것입니다. 데이터 세트는 데이터를 위한 Amazon Personalize 컨테이너입니다. 데이터 세트를 생성할 때 데이터 세트에 대한 스키마도 생성합니다. 스키마는 Amazon Personalize에 데이터 구조를 알려주고 Amazon Personalize가 데이터를 파싱할 수 있도록 해 줍니다.

Amazon Personalize 콘솔, AWS Command Line Interface(AWS CLI) 또는 AWS SDK를 사용하여 데이터 세트를 생성합니다. 다양한 유형의 데이터 세트와 데이터 세트 및 스키마 요구사항에 대한 자세한 설명은 데이터 세트 및 스키마 단원을 참조하세요.

데이터 세트 및 스키마 생성(콘솔)

데이터 세트 그룹의 첫 번째 데이터 세트인 경우, 첫 번째 데이터 세트 유형은 항목 상호 작용 데이터 세트일 것입니다. 콘솔에서 항목 상호 작용 데이터 세트를 생성하려면 데이터 세트 이름을 지정한 다음 Avro 형식의 JSON 스키마를 지정합니다. 이 데이터 세트 그룹의 첫 번째 데이터 세트가 아닌 경우, 데이터 세트 유형을 선택한 다음 이름과 스키마를 지정합니다.

Amazon Personalize 데이터 세트 및 스키마 요구사항에 대한 자세한 내용은 데이터 세트 및 스키마 단원을 참조하세요.

참고

1단계: 데이터 세트 그룹 생성을 막 완료하고 이미 데이터 세트를 만드는 중이라면 이 절차의 4단계로 건너뛰세요.

데이터 세트 및 스키마를 생성하려면
  1. https://console.aws.amazon.com/acm-pca/home에서 Amazone Personalize 콘솔을 열고 계정에 로그인하세요.

  2. 데이터 세트 그룹 페이지의, 1단계: 데이터 세트 그룹 생성에서 데이터 세트 그룹을 선택합니다.

  3. 데이터 세트 설정에서 데이터 세트 생성을 선택하고 생성할 데이터 세트 유형을 선택합니다.

  4. Amazon Personalize 데이터 세트로 직접 데이터 가져오기를 선택하고 다음을 선택합니다.

  5. 데이터 세트 세부 정보에서 데이터 세트 이름에 대해 데이터 세트의 이름을 지정합니다.

  6. 스키마 세부 정보에서 스키마 선택에 대해 기존 스키마를 선택하거나 새 스키마 생성을 선택합니다.

  7. 새 스키마를 생성할 경우 스키마 정의를 위해 데이터와 일치하는 스키마 JSON을 붙여넣습니다. 스키마에 있는 예제를 가이드로 사용하세요. 스키마를 생성한 후에는 스키마를 변경할 수 없습니다.

  8. 새 스키마 이름에서 새 스키마의 이름을 지정합니다.

  9. 태그의 경우, 원하는 태그를 추가할 수 있습니다. Amazon Personalize 리소스 태그 지정에 대한 자세한 내용은 Amazon Personalize 리소스에 태그 지정 단원을 참조하세요.

  10. 다음을 선택하고 대량 데이터 준비 및 가져오기의 지침에 따라 데이터를 가져옵니다.

데이터 세트 및 스키마 생성(AWS CLI)

AWS CLI를 사용하여 데이터 세트와 스키마를 생성하려면 먼저 Avro 형식으로 스키마를 정의하고 CreateSchema 작업을 사용하여 Amazon Personalize에 추가합니다. 그런 다음 CreateDataset 작업을 사용하여 데이터 세트를 생성합니다. Amazon Personalize 데이터 세트 및 스키마 요구사항에 대한 자세한 내용은 데이터 세트 및 스키마 단원을 참조하세요.

스키마 및 데이터 세트를 생성하려면
  1. 스키마 파일을 Avro 형식으로 생성하고 JSON 파일로 저장합니다. 이 파일은 생성하고 있는 상호작용과 같은 데이터 세트의 유형을 기반으로 해야 합니다.

    스키마는 데이터의 열과 일치해야만 하며, 스키마 name은 Amazon Personalize에서 인식하는 데이터 세트 유형 중 하나와 일치해야만 합니다. 다음은 최소 항목 상호 작용 데이터 세트 스키마를 사용한 예제입니다. 더 많은 예제는 스키마 단원을 참조하세요.

    { "type": "record", "name": "Interactions", "namespace": "com.amazonaws.personalize.schema", "fields": [ { "name": "USER_ID", "type": "string" }, { "name": "ITEM_ID", "type": "string" }, { "name": "TIMESTAMP", "type": "long" } ], "version": "1.0" }
  2. 다음 명령을 실행하여 Amazon Personalize에서 스키마를 생성합니다. 스키마를 생성하고 나면 스키마를 변경할 수 없습니다. schemaName을 스키마의 이름으로 대체하고 file://SchemaName.json을 이전 단계에서 생성한 JSON 파일의 위치와 바꿉니다. 이 예제에서는 이 파일을 현재 폴더에 속한 것으로 표시합니다.

    도메인 데이터 세트 그룹의 데이터 세트에 대한 스키마를 생성하는 경우 domain 파라미터를 추가하고 ECOMMERCE 또는 VIDEO_ON_DEMAND로 설정합니다. API에 대한 자세한 내용은 CreateSchema 단원을 참조하세요.

    aws personalize create-schema \ --name SchemaName \ --schema file://SchemaName.json

    스키마의 Amazon 리소스 이름(ARN)이 다음 예제와 같이 표시됩니다.

    { "schemaArn": "arn:aws:personalize:us-west-2:acct-id:schema/SchemaName" }
  3. 다음 명령을 실행하여 빈 데이터 세트를 생성합니다. 데이터 세트 그룹 생성(AWS CLI)에서 가져온 데이터 세트 그룹 Amazon 리소스 이름(ARN)과 이전 단계에서 가져온 스키마 ARN을 제공합니다. 데이터 세트 유형 값은 Interactions, Users, Items, Actions 또는 Action_Interactions일 수 있습니다. API에 대한 자세한 내용은 CreateDataset 단원을 참조하세요.

    aws personalize create-dataset \ --name Dataset Name \ --dataset-group-arn Dataset Group ARN \ --dataset-type Dataset Type \ --schema-arn Schema Arn

    데이터 세트 ARN은 다음 예제와 같이 표시됩니다.

    { "datasetArn": "arn:aws:personalize:us-west-2:acct-id:dataset/DatasetName/INTERACTIONS" }
  4. 추후 사용할 수 있도록 데이터 세트 ARN을 기록합니다. 데이터 세트를 생성하고 나면 교육 데이터를 가져올 준비가 됩니다. 대량 데이터 준비 및 가져오기를 참조하세요.

데이터 세트 및 스키마 생성(AWS SDK)

AWS SDK를 사용하여 데이터 세트와 스키마를 생성하려면, 먼저 Avro 형식으로 스키마를 정의하고 CreateSchema 작업을 사용하여 Amazon Personalize에 추가합니다. 스키마를 생성하고 나면 스키마를 변경할 수 없습니다. 그런 다음 CreateDataset 작업을 사용하여 데이터 세트를 생성합니다. Amazon Personalize 데이터 세트 및 스키마 요구사항에 대한 자세한 내용은 데이터 세트 및 스키마 단원을 참조하세요.

스키마 및 데이터 세트를 생성하려면
  1. 스키마 파일을 Avro 형식으로 생성하고 작업 디렉토리에 JSON 파일로 저장합니다.

    스키마는 데이터의 열과 일치해야만 하며, 스키마 name은 Amazon Personalize에서 인식하는 데이터 세트 유형 중 하나와 일치해야만 합니다. 다음은 최소 항목 상호 작용 데이터 세트 스키마를 사용한 예제입니다. 더 많은 예제는 스키마 단원을 참조하세요.

    { "type": "record", "name": "Interactions", "namespace": "com.amazonaws.personalize.schema", "fields": [ { "name": "USER_ID", "type": "string" }, { "name": "ITEM_ID", "type": "string" }, { "name": "TIMESTAMP", "type": "long" } ], "version": "1.0" }
  2. 다음 코드를 사용하여 스키마를 생성합니다. 스키마의 이름과 스키마 JSON 파일의 파일 경로를 지정합니다.

    도메인 데이터 세트 그룹의 데이터 세트에 대한 스키마를 생성하는 경우 domain 파라미터를 추가하고 ECOMMERCE 또는 VIDEO_ON_DEMAND로 설정합니다. API에 대한 자세한 내용은 CreateSchema 단원을 참조하세요.

    SDK for Python (Boto3)
    import boto3 personalize = boto3.client('personalize') with open('schemaFile.json') as f: createSchemaResponse = personalize.create_schema( name = 'schema name', schema = f.read() ) schema_arn = createSchemaResponse['schemaArn'] print('Schema ARN:' + schema_arn )
    SDK for Java 2.x
    public static String createSchema(PersonalizeClient personalizeClient, String schemaName, String filePath) { String schema = null; try { schema = new String(Files.readAllBytes(Paths.get(filePath))); } catch (IOException e) { System.out.println(e.getMessage()); } try { CreateSchemaRequest createSchemaRequest = CreateSchemaRequest.builder() .name(schemaName) .schema(schema) .build(); String schemaArn = personalizeClient.createSchema(createSchemaRequest).schemaArn(); System.out.println("Schema arn: " + schemaArn); return schemaArn; } catch(PersonalizeException e) { System.err.println(e.awsErrorDetails().errorMessage()); System.exit(1); } return ""; }
    SDK for JavaScript v3
    // Get service clients module and commands using ES6 syntax. import { CreateSchemaCommand } from "@aws-sdk/client-personalize"; import { personalizeClient } from "./libs/personalizeClients.js"; // Or, create the client here. // const personalizeClient = new PersonalizeClient({ region: "REGION"}); import fs from 'fs'; let schemaFilePath = "SCHEMA_PATH"; let mySchema = ""; try { mySchema = fs.readFileSync(schemaFilePath).toString(); } catch (err) { mySchema = 'TEST' // For unit tests. } // Set the schema parameters. export const createSchemaParam = { name: 'NAME', /* required */ schema: mySchema /* required */ }; export const run = async () => { try { const response = await personalizeClient.send(new CreateSchemaCommand(createSchemaParam)); console.log("Success", response); return response; // For unit tests. } catch (err) { console.log("Error", err); } }; run();

    Amazon Personalize는 새 스키마의 ARN을 반환합니다. 이 정보는 다음 단계에서 사용해야 하므로 기록해 둡니다.

  3. CreateDataset 작업을 사용하여 데이터 세트를 생성합니다. 다음 코드는 데이터 세트를 생성하는 방법을 보여줍니다. 데이터 세트 그룹의 Amazon 리소스 이름(ARN)과 이전 단계의 스키마 ARN을 지정하고 데이터 세트 유형을 지정합니다. 데이터 세트 유형 값은 Interactions, Users, Items, Actions 또는 Action_Interactions일 수 있습니다. 데이터 세트의 다양한 유형에 대한 자세한 내용은 데이터 세트 및 스키마 단원을 참조하세요.

    SDK for Python (Boto3)
    import boto3 personalize = boto3.client('personalize') response = personalize.create_dataset( name = 'dataset_name', schemaArn = 'schema_arn', datasetGroupArn = 'dataset_group_arn', datasetType = 'dataset_type' ) print ('Dataset Arn: ' + response['datasetArn'])
    SDK for Java 2.x
    public static String createDataset(PersonalizeClient personalizeClient, String datasetName, String datasetGroupArn, String datasetType, String schemaArn) { try { CreateDatasetRequest request = CreateDatasetRequest.builder() .name(datasetName) .datasetGroupArn(datasetGroupArn) .datasetType(datasetType) .schemaArn(schemaArn).build(); String datasetArn = personalizeClient.createDataset(request).datasetArn(); System.out.println("Dataset " + datasetName + " created. Dataset ARN: " + datasetArn); return datasetArn; } catch(PersonalizeException e) { System.err.println(e.awsErrorDetails().errorMessage()); System.exit(1); } return ""; }
    SDK for JavaScript v3
    // Get service clients module and commands using ES6 syntax. import { CreateDatasetCommand } from "@aws-sdk/client-personalize"; import { personalizeClient } from "./libs/personalizeClients.js"; // Or, create the client here. // const personalizeClient = new PersonalizeClient({ region: "REGION"}); // Set the dataset's parameters. export const createDatasetParam = { datasetGroupArn: 'DATASET_GROUP_ARN', /* required */ datasetType: 'DATASET_TYPE', /* required */ name: 'NAME', /* required */ schemaArn: 'SCHEMA_ARN' /* required */ } export const run = async () => { try { const response = await personalizeClient.send(new CreateDatasetCommand(createDatasetParam)); console.log("Success", response); return response; // For unit tests. } catch (err) { console.log("Error", err); } }; run();

    데이터 세트를 생성하고 나면 교육 데이터를 가져올 준비가 됩니다. 대량 데이터 준비 및 가져오기을(를) 참조하세요.