

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Creación de un esquema y un conjunto de datos
<a name="data-prep-creating-datasets"></a>

Después de [crear un grupo de conjuntos de datos](data-prep-ds-group.md), podrá crear un esquema de Amazon Personalize y un conjunto de datos para cada tipo de datos que vaya a importar. Un *esquema* informa a Amazon Personalize de la estructura de sus datos y permite que Amazon Personalize analice los datos. Al crear un esquema en Amazon Personalize, debe usar el archivo JSON que ha creado en [Creación de archivos JSON de esquema para los esquemas de Amazon Personalize](how-it-works-dataset-schema.md). 

 Un *conjunto de datos* es un contenedor de datos de entrenamiento en Amazon Personalize. Los distintos tipos de conjuntos de datos tienen requisitos diferentes. Debe crear un conjunto de datos para cada tipo de datos que vaya a importar. Para obtener información sobre los distintos tipos de conjuntos de datos y cómo preparar los datos, consulte [Preparación de los datos de entrenamiento para Amazon Personalize](preparing-training-data.md).

Puede crear esquemas y conjuntos de datos con la consola Amazon Personalize, AWS Command Line Interface (AWS CLI) o. AWS SDKs No puede crear recursos de siguiente mejor acción, incluidos los conjuntos de datos de acciones e interacciones de acciones, en un grupo de conjuntos de datos de dominio. 

**importante**  
 Una vez que se haya creado un esquema, no se podrán realizar cambios en él. Sin embargo, si agrega columnas nuevas, puede reemplazar el esquema de un conjunto de datos por uno nuevo. Para obtener más información, consulte [Reemplazo del esquema de un conjunto de datos para agregar nuevas columnas](updating-dataset-schema.md).

**Topics**
+ [Creación de un conjunto de datos y un esquema (consola)](#data-prep-creating-ds-console)
+ [Creación de un conjunto de datos y un esquema (AWS CLI)](#data-prep-creating-ds-cli)
+ [Creación de un conjunto de datos y un esquema (AWS SDKs)](#data-prep-creating-ds-sdk)

## Creación de un conjunto de datos y un esquema (consola)
<a name="data-prep-creating-ds-console"></a>

 Si este es el primer conjunto de datos de su grupo de conjuntos de datos, su primer tipo de conjunto de datos será un conjunto de datos de interacciones de elementos. Para crear el conjunto de datos de interacciones de elementos en la consola, especifique el nombre del conjunto de datos y, a continuación, especifique un esquema JSON en [formato Avro](https://docs.oracle.com/database/nosql-12.1.3.0/GettingStartedGuide/avroschemas.html). Si no es el primer conjunto de datos de este grupo de conjuntos de datos, elija el tipo de conjunto de datos y, a continuación, especifique un nombre y un esquema. 

Para obtener información sobre los requisitos de conjuntos de datos de Amazon Personalize, consulte [Preparación de los datos de entrenamiento para Amazon Personalize](preparing-training-data.md). Si acaba de completar [Creación de un grupo de conjuntos de datos de Amazon Personalize](data-prep-ds-group.md) y ya está creando el conjunto de datos, vaya al paso 4 de este procedimiento. 

**Para crear un conjunto de datos y un esquema**

1. Si aún no lo ha hecho, siga las instrucciones de [Creación de archivos JSON de esquema para los esquemas de Amazon Personalize](how-it-works-dataset-schema.md) para crear un archivo JSON de esquema que describa los datos.

1. Abre la consola Amazon Personalize en [https://console.aws.amazon.com/personalize/casa](https://console.aws.amazon.com/personalize/home) e inicia sesión en tu cuenta.

1.  En la página **Grupos de conjuntos de datos**, elija el grupo de conjuntos de datos que creó en [Creación de un grupo de conjuntos de datos de Amazon Personalize](data-prep-ds-group.md). 

1. En **Paso 1. Crear conjuntos de datos e importar datos**, elija **Crear conjunto de datos** y seleccione el tipo de conjunto de datos que desea crear.

1. Elija **Importar datos directamente a los conjuntos de datos de Amazon Personalize** y elija **Siguiente**.

1. En **Detalles del conjunto de datos**, en **Nombre del conjunto de datos**, especifique un nombre para el conjunto de datos.

1. En **Esquema de conjunto de datos**, elija **Crear un esquema nuevo** o **Usar un esquema existente**.

1. Si está utilizando un esquema existente, elija el esquema existente que se usará. Si va a crear un esquema nuevo, asigne un nombre al esquema y pegue el código JSON del esquema que coincida con los datos. Ha creado este archivo en [Creación de archivos JSON de esquema para los esquemas de Amazon Personalize](how-it-works-dataset-schema.md).

1. Para **Etiquetas**, si lo desea, añada cualquier etiqueta. Para obtener más información acerca del etiquetado de recursos de Amazon Personalize, consulte [Etiquetado de recursos de Amazon Personalize](tagging-resources.md).

1. Elija **Siguiente** y siga las instrucciones de [Importación de datos de entrenamiento directamente a conjuntos de datos de Amazon Personalize](import-data.md) para importar los datos.

## Creación de un conjunto de datos y un esquema (AWS CLI)
<a name="data-prep-creating-ds-cli"></a>

Para crear un conjunto de datos y un esquema utilizando el AWS CLI`create-schema` comando the (que usa la operación [CreateSchema](API_CreateSchema.md) API) y luego `create-dataset` (que usa la operación [CreateDataset](API_CreateDataset.md) API).

**Para crear un esquema y un conjunto de datos**

1. Si aún no lo ha hecho, siga las instrucciones de [Creación de archivos JSON de esquema para los esquemas de Amazon Personalize](how-it-works-dataset-schema.md) para crear un archivo JSON de esquema que describa los datos.

1. Ejecute el siguiente comando para crear un esquema en Amazon Personalize. Una vez que se haya creado un esquema, no se podrán realizar cambios en él. Reemplace `schemaName` por el nombre del esquema y `file://SchemaName.json` por la ubicación del archivo JSON. En el ejemplo, el archivo pertenece a la carpeta actual. Si va a crear un esquema para un conjunto de datos en un grupo de conjunto de datos de dominio, debe agregar el parámetro `domain` y establecerlo en `ECOMMERCE` o `VIDEO_ON_DEMAND`. Para obtener más información sobre la API, consulte [CreateSchema](API_CreateSchema.md).

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

   Se muestra el nombre de recurso de Amazon (ARN) del esquema, como se muestra en el siguiente ejemplo:

   ```
   {
     "schemaArn": "arn:aws:personalize:us-west-2:acct-id:schema/SchemaName"
   }
   ```

1. Ejecute el siguiente comando para crear un conjunto de datos vacío. Proporcione el grupo de conjunto de datos del que proviene el nombre de recurso de Amazon (ARN) [Creación de un grupo de conjuntos de datos (AWS CLI)](data-prep-ds-group.md#data-prep-creating-ds-group-cli) y el esquema de ARN del paso anterior. Los valores del tipo de conjunto de datos pueden ser `Interactions`, `Users`, `Items`, `Actions` o `Action_Interactions`. Para obtener más información sobre la API, consulte [CreateDataset](API_CreateDataset.md).

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

   Se muestra el ARN del conjunto de datos, tal como se muestra en el ejemplo siguiente.

   ```
   {
     "datasetArn": "arn:aws:personalize:us-west-2:acct-id:dataset/DatasetName/INTERACTIONS"
   }
   ```

1. Registre el ARN del conjunto de datos para su uso posterior. Una vez que haya creado un conjunto de datos, estará listo para importar sus datos de entrenamiento. Consulte [Importación de datos de entrenamiento directamente a conjuntos de datos de Amazon Personalize](import-data.md). 

## Creación de un conjunto de datos y un esquema (AWS SDKs)
<a name="data-prep-creating-ds-sdk"></a>

Para crear un conjunto de datos y un esquema mediante el AWS SDKs, primero debe definir un esquema en [formato Avro](https://docs.oracle.com/database/nosql-12.1.3.0/GettingStartedGuide/avroschemas.html) y añadirlo a Amazon Personalize mediante la [CreateSchema](API_CreateSchema.md) operación. Una vez que se haya creado un esquema, no se podrán realizar cambios en él. A continuación, cree un conjunto de datos mediante la operación [CreateDataset](API_CreateDataset.md).

**Para crear un esquema y un conjunto de datos**

1. Si aún no lo ha hecho, siga las instrucciones de [Creación de archivos JSON de esquema para los esquemas de Amazon Personalize](how-it-works-dataset-schema.md) para crear un archivo JSON de esquema que describa los datos.

1. Cree un esquema en Amazon Personalize con el siguiente código. Especifique el nombre de su esquema y la ruta del archivo JSON del esquema. Si va a crear un esquema para un conjunto de datos en un grupo de conjunto de datos de dominio, debe agregar el parámetro `domain` y establecerlo en `ECOMMERCE` o `VIDEO_ON_DEMAND`. Para obtener más información sobre la API, consulte [CreateSchema](API_CreateSchema.md).

------
#### [ 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 "node:fs";
   
   const 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 devuelve el ARN del nuevo esquema. Anote el valor, ya que lo necesitará en el siguiente paso.

1. Cree un conjunto de datos utilizando la operación [CreateDataset](API_CreateDataset.md). El código siguiente muestra cómo crear un conjunto de datos. Especifique el nombre de recurso de Amazon (ARN) de su grupo de conjuntos de datos, el ARN del esquema del paso anterior y especifique el tipo de conjunto de datos. Los valores del tipo de conjunto de datos pueden ser `Interactions`, `Users`, `Items`, `Actions` o `Action_Interactions`. Para obtener información sobre los distintos tipos de conjuntos de datos, consulte [Preparación de los datos de entrenamiento para Amazon Personalize](preparing-training-data.md). 

------
#### [ 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();
   ```

------

   Una vez que haya creado un conjunto de datos, estará listo para importar sus datos de entrenamiento. Consulte [Importación de datos de entrenamiento directamente a conjuntos de datos de Amazon Personalize](import-data.md).