

# API de generación automática de scripts de ETL
<a name="aws-glue-api-etl-script-generation"></a>

La API de generación de scripts de ETL describe los tipos de datos y la API de generación de scripts de ETL en AWS Glue.

## Tipos de datos
<a name="aws-glue-api-etl-script-generation-objects"></a>
+ [Estructura CodeGenNode](#aws-glue-api-etl-script-generation-CodeGenNode)
+ [Estructura CodeGenNodeArg](#aws-glue-api-etl-script-generation-CodeGenNodeArg)
+ [Estructura CodeGenEdge](#aws-glue-api-etl-script-generation-CodeGenEdge)
+ [Estructura de ubicación](#aws-glue-api-etl-script-generation-Location)
+ [Estructura CatalogEntry](#aws-glue-api-etl-script-generation-CatalogEntry)
+ [Estructura MappingEntry](#aws-glue-api-etl-script-generation-MappingEntry)

## Estructura CodeGenNode
<a name="aws-glue-api-etl-script-generation-CodeGenNode"></a>

Representa un nodo en gráficos acíclicos dirigidos (DAG)

**Campos**
+ `Id`: *obligatorio:* cadena UTF-8, con 1 byte de largo como mínimo y 255 bytes de largo como máximo, que coincide con el [Identifier string pattern](aws-glue-api-common.md#aws-glue-api-regex-id).

  Identificador de nodo que es único en el gráfico de nodos.
+ `NodeType` – *Obligatorio:* cadena UTF-8.

  El tipo de nodo de que se trata.
+ `Args` – *Obligatorio:* matriz de objetos [CodeGenNodeArg](#aws-glue-api-etl-script-generation-CodeGenNodeArg), con 50 estructuras como máximo.

  Propiedades del nodo, en forma de pares nombre-valor.
+ `LineNumber`: número (entero).

  El número de la línea del nodo.

## Estructura CodeGenNodeArg
<a name="aws-glue-api-etl-script-generation-CodeGenNodeArg"></a>

Argumento o propiedad de un nodo.

**Campos**
+ `Name` – *Obligatorio:* cadena UTF-8.

  El nombre del argumento o la propiedad.
+ `Value` – *Obligatorio:* cadena UTF-8.

  El valor del argumento o la propiedad.
+ `Param`: booleano.

  True si el valor se utiliza como un parámetro.

## Estructura CodeGenEdge
<a name="aws-glue-api-etl-script-generation-CodeGenEdge"></a>

Representa un límite direccional en un gráfico acíclico dirigido (DAG).

**Campos**
+ `Source`: *obligatorio:* cadena UTF-8, con 1 byte de largo como mínimo y 255 bytes de largo como máximo, que coincide con el [Identifier string pattern](aws-glue-api-common.md#aws-glue-api-regex-id).

  El ID del nodo donde comienza el límite.
+ `Target`: *obligatorio:* cadena UTF-8, con 1 byte de largo como mínimo y 255 bytes de largo como máximo, que coincide con el [Identifier string pattern](aws-glue-api-common.md#aws-glue-api-regex-id).

  El ID del nodo donde finaliza el límite.
+ `TargetParameter`: cadena UTF-8.

  El destino del límite.

## Estructura de ubicación
<a name="aws-glue-api-etl-script-generation-Location"></a>

La ubicación de los recursos.

**Campos**
+ `Jdbc`: matriz de objetos [CodeGenNodeArg](#aws-glue-api-etl-script-generation-CodeGenNodeArg), con 50 estructuras como máximo.

  Una ubicación de JDBC.
+ `S3`: matriz de objetos [CodeGenNodeArg](#aws-glue-api-etl-script-generation-CodeGenNodeArg), con 50 estructuras como máximo.

  Una ubicación de Amazon Simple Storage Service (Amazon S3).
+ `DynamoDB`: matriz de objetos [CodeGenNodeArg](#aws-glue-api-etl-script-generation-CodeGenNodeArg), con 50 estructuras como máximo.

  Una ubicación de tabla de Amazon DynamoDB.

## Estructura CatalogEntry
<a name="aws-glue-api-etl-script-generation-CatalogEntry"></a>

Especifica una definición de tabla en el AWS Glue Data Catalog.

**Campos**
+ `DatabaseName`: *obligatorio:* cadena UTF-8, con 1 byte de largo como mínimo y 255 bytes de largo como máximo, que coincide con el [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  La base de datos en la que se encuentran los metadatos de la tabla.
+ `TableName`: *obligatorio:* cadena UTF-8, con 1 byte de largo como mínimo y 255 bytes de largo como máximo, que coincide con el [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  Nombre de la tabla en cuestión.

## Estructura MappingEntry
<a name="aws-glue-api-etl-script-generation-MappingEntry"></a>

Define un mapeo.

**Campos**
+ `SourceTable`: cadena UTF-8.

  El nombre de la tabla de origen.
+ `SourcePath`: cadena UTF-8.

  La ruta de origen de .
+ `SourceType`: cadena UTF-8.

  El tipo de origen.
+ `TargetTable`: cadena UTF-8.

  La tabla de destino.
+ `TargetPath`: cadena UTF-8.

  La ruta de destino.
+ `TargetType`: cadena UTF-8.

  El tipo de destino.

## Operaciones
<a name="aws-glue-api-etl-script-generation-actions"></a>
+ [Acción CreateScript (Python: create\$1script)](#aws-glue-api-etl-script-generation-CreateScript)
+ [Acción GetDataflowGraph (Python: get\$1dataflow\$1graph)](#aws-glue-api-etl-script-generation-GetDataflowGraph)
+ [Acción GetMapping (Python: get\$1mapping)](#aws-glue-api-etl-script-generation-GetMapping)
+ [Acción GetPlan (Python: get\$1plan)](#aws-glue-api-etl-script-generation-GetPlan)

## Acción CreateScript (Python: create\$1script)
<a name="aws-glue-api-etl-script-generation-CreateScript"></a>

Transforma gráficos acíclicos dirigidos (DAG) en código.

**Solicitud**
+ `DagNodes`: matriz de objetos [CodeGenNode](#aws-glue-api-etl-script-generation-CodeGenNode).

  Lista de los nodos en el DAG.
+ `DagEdges`: matriz de objetos [CodeGenEdge](#aws-glue-api-etl-script-generation-CodeGenEdge).

  Lista de los límites en el DAG.
+ `Language`: cadena UTF-8 (valores válidos: `PYTHON` \$1 `SCALA`).

  El lenguaje de programación del código que genera el DAG.

**Respuesta**
+ `PythonScript`: cadena UTF-8.

  El script de Python generado desde el DAG.
+ `ScalaCode`: cadena UTF-8.

  El código Scala generado desde el DAG.

**Errores**
+ `InvalidInputException`
+ `InternalServiceException`
+ `OperationTimeoutException`

## Acción GetDataflowGraph (Python: get\$1dataflow\$1graph)
<a name="aws-glue-api-etl-script-generation-GetDataflowGraph"></a>

Transforma scripts de Python en gráficos acíclicos dirigidos (DAG). 

**Solicitud**
+ `PythonScript`: cadena UTF-8.

  El script de Python que se va a transformar.

**Respuesta**
+ `DagNodes`: matriz de objetos [CodeGenNode](#aws-glue-api-etl-script-generation-CodeGenNode).

  Lista de los nodos en el DAG resultante.
+ `DagEdges`: matriz de objetos [CodeGenEdge](#aws-glue-api-etl-script-generation-CodeGenEdge).

  Lista de los límites en el DAG resultante.

**Errores**
+ `InvalidInputException`
+ `InternalServiceException`
+ `OperationTimeoutException`

## Acción GetMapping (Python: get\$1mapping)
<a name="aws-glue-api-etl-script-generation-GetMapping"></a>

Crea mapeos.

**Solicitud**
+ `Source`: *obligatorio:* objeto [CatalogEntry](#aws-glue-api-etl-script-generation-CatalogEntry).

  Especifica la tabla de origen.
+ `Sinks`: matriz de objetos [CatalogEntry](#aws-glue-api-etl-script-generation-CatalogEntry).

  Lista de las tablas de destino.
+ `Location`: un objeto [Ubicación](#aws-glue-api-etl-script-generation-Location).

  Parámetros para el mapeo.

**Respuesta**
+ `Mapping` *(obligatorio):* una matriz de objetos [MappingEntry](#aws-glue-api-etl-script-generation-MappingEntry).

  Lista de mapeos para los destinos especificados.

**Errores**
+ `InvalidInputException`
+ `InternalServiceException`
+ `OperationTimeoutException`
+ `EntityNotFoundException`

## Acción GetPlan (Python: get\$1plan)
<a name="aws-glue-api-etl-script-generation-GetPlan"></a>

Obtiene código para realizar un mapeo especificado.

**Solicitud**
+ `Mapping` *(obligatorio):* una matriz de objetos [MappingEntry](#aws-glue-api-etl-script-generation-MappingEntry).

  La lista de mapeos desde una tabla de origen a las tablas de destino.
+ `Source`: *obligatorio:* objeto [CatalogEntry](#aws-glue-api-etl-script-generation-CatalogEntry).

  La tabla de origen.
+ `Sinks`: matriz de objetos [CatalogEntry](#aws-glue-api-etl-script-generation-CatalogEntry).

  Las tablas de destino.
+ `Location`: un objeto [Ubicación](#aws-glue-api-etl-script-generation-Location).

  Los parámetros para el mapeo.
+ `Language`: cadena UTF-8 (valores válidos: `PYTHON` \$1 `SCALA`).

  El lenguaje de programación del código para realizar el mapeo.
+ `AdditionalPlanOptionsMap`: matriz de mapas de pares clave-valor.

  Cada clave es una cadena UTF-8.

  Cada valor es una cadena UTF-8.

  Un mapa para contener parámetros opcionales de clave-valor adicionales.

  Actualmente, se soportan los siguientes pares clave-valor:
  + `inferSchema`: especifica si se debe configurar `inferSchema` como verdadero o falso para el script predeterminado generado por un trabajo de AWS Glue. Por ejemplo, para configurar `inferSchema` como verdadero, transfiera el siguiente par de clave-valor:

    `--additional-plan-options-map '{"inferSchema":"true"}'`

**Respuesta**
+ `PythonScript`: cadena UTF-8.

  Script de Python para realizar el mapeo.
+ `ScalaCode`: cadena UTF-8.

  Código de Scala para realizar el mapeo.

**Errores**
+ `InvalidInputException`
+ `InternalServiceException`
+ `OperationTimeoutException`