

# API de scripts de ETL de geração automática
<a name="aws-glue-api-etl-script-generation"></a>

A API de geração de script de ETL descreve os tipos de dados e a API para gerar scripts de ETL no AWS Glue.

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

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

Representa um nó em um gráfico acíclico dirigido (DAG)

**Campos**
+ `Id`: *obrigatório:* string UTF-8 com no mínimo 1 e no máximo 255 bytes de comprimento e correspondente a [Identifier string pattern](aws-glue-api-common.md#aws-glue-api-regex-id).

  Um identificador de nó que é exclusivo no gráfico do nó.
+ `NodeType` – *Obrigatório:* string UTF-8.

  Qual é o tipo de nó.
+ `Args` – *Obrigatório:* uma matriz de [CodeGenNodeArg](#aws-glue-api-etl-script-generation-CodeGenNodeArg) objetos, não mais de 50 estruturas.

  Propriedades do nó, na forma de pares nome-valor.
+ `LineNumber` – Número (íntegro).

  O número de linha do nó.

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

Argumento ou propriedade de um nó.

**Campos**
+ `Name` – *Obrigatório:* string UTF-8.

  O nome do argumento ou da propriedade.
+ `Value` – *Obrigatório:* string UTF-8.

  O valor do argumento ou da propriedade.
+ `Param` – Booleano.

  True, se o valor for usado como um parâmetro.

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

Representa um ponto direcional em um gráfico acíclico dirigido (DAG).

**Campos**
+ `Source`: *obrigatório:* string UTF-8 com no mínimo 1 e no máximo 255 bytes de comprimento e correspondente a [Identifier string pattern](aws-glue-api-common.md#aws-glue-api-regex-id).

  O ID do nó onde o ponto será iniciado.
+ `Target`: *obrigatório:* string UTF-8 com no mínimo 1 e no máximo 255 bytes de comprimento e correspondente a [Identifier string pattern](aws-glue-api-common.md#aws-glue-api-regex-id).

  O ID do nó onde o ponto será encerrado.
+ `TargetParameter` – String UTF-8.

  O destino do ponto.

## Estrutura Location
<a name="aws-glue-api-etl-script-generation-Location"></a>

O local dos recursos.

**Campos**
+ `Jdbc` – Uma matriz de [CodeGenNodeArg](#aws-glue-api-etl-script-generation-CodeGenNodeArg) objetos, não mais de 50 estruturas.

  Um local JDBC.
+ `S3` – Uma matriz de [CodeGenNodeArg](#aws-glue-api-etl-script-generation-CodeGenNodeArg) objetos, não mais de 50 estruturas.

  Uma localização do Amazon Simple Storage Service (Amazon S3).
+ `DynamoDB` – Uma matriz de [CodeGenNodeArg](#aws-glue-api-etl-script-generation-CodeGenNodeArg) objetos, não mais de 50 estruturas.

  O local de uma tabela do Amazon DynamoDB.

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

Especifica uma definição de tabela no AWS Glue Data Catalog.

**Campos**
+ `DatabaseName`: *obrigatório:* string UTF-8 com no mínimo 1 e no máximo 255 bytes de comprimento e correspondente a [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  O banco de dados em que os metadados de tabela residem.
+ `TableName`: *obrigatório:* string UTF-8 com no mínimo 1 e no máximo 255 bytes de comprimento e correspondente a [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  O nome da tabela em questão.

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

Define um mapeamento.

**Campos**
+ `SourceTable` – String UTF-8.

  O nome da tabela de origem.
+ `SourcePath` – String UTF-8.

  O caminho de origem do .
+ `SourceType` – String UTF-8.

  O tipo de origem.
+ `TargetTable` – String UTF-8.

  O nome da tabela.
+ `TargetPath` – String UTF-8.

  O caminho de destino.
+ `TargetType` – String UTF-8.

  O tipo de destino.

## Operações
<a name="aws-glue-api-etl-script-generation-actions"></a>
+ [Ação CreateScript (Python: create\$1script)](#aws-glue-api-etl-script-generation-CreateScript)
+ [Ação GetDataflowGraph (Python: get\$1dataflow\$1graph)](#aws-glue-api-etl-script-generation-GetDataflowGraph)
+ [Ação GetMapping (Python: get\$1mapping)](#aws-glue-api-etl-script-generation-GetMapping)
+ [Ação GetPlan (Python: get\$1plan)](#aws-glue-api-etl-script-generation-GetPlan)

## Ação CreateScript (Python: create\$1script)
<a name="aws-glue-api-etl-script-generation-CreateScript"></a>

Transforma um gráfico acíclico dirigido (DAG) em código.

**Solicitação**
+ `DagNodes`: um array de objetos [CodeGenNode](#aws-glue-api-etl-script-generation-CodeGenNode).

  Uma lista de nós no DAG.
+ `DagEdges`: um array de objetos [CodeGenEdge](#aws-glue-api-etl-script-generation-CodeGenEdge).

  Uma lista de pontos no DAG.
+ `Language`: string UTF-8 (valores válidos: `PYTHON` \$1 `SCALA`).

  A linguagem de programação do código resultante do DAG.

**Resposta**
+ `PythonScript` – String UTF-8.

  O script Python gerado a partir do DAG.
+ `ScalaCode` – String UTF-8.

  O código Scala gerado a partir do DAG.

**Erros**
+ `InvalidInputException`
+ `InternalServiceException`
+ `OperationTimeoutException`

## Ação GetDataflowGraph (Python: get\$1dataflow\$1graph)
<a name="aws-glue-api-etl-script-generation-GetDataflowGraph"></a>

Transforma um script Python em um gráfico acíclico dirigido (DAG). 

**Solicitação**
+ `PythonScript` – String UTF-8.

  O script Python a ser transformado.

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

  Uma lista de nós no DAG resultante.
+ `DagEdges`: um array de objetos [CodeGenEdge](#aws-glue-api-etl-script-generation-CodeGenEdge).

  Uma lista de pontos no DAG resultante.

**Erros**
+ `InvalidInputException`
+ `InternalServiceException`
+ `OperationTimeoutException`

## Ação GetMapping (Python: get\$1mapping)
<a name="aws-glue-api-etl-script-generation-GetMapping"></a>

Cria mapeamentos.

**Solicitação**
+ `Source` – *Obrigatório:* um objeto [CatalogEntry](#aws-glue-api-etl-script-generation-CatalogEntry).

  Especifica a tabela de origem.
+ `Sinks`: um array de objetos [CatalogEntry](#aws-glue-api-etl-script-generation-CatalogEntry).

  Uma lista de tabelas de destino.
+ `Location` – Um objeto [Local](#aws-glue-api-etl-script-generation-Location).

  Parâmetros para o mapeamento.

**Resposta**
+ `Mapping` – *Obrigatório:* uma matriz de objetos [MappingEntry](#aws-glue-api-etl-script-generation-MappingEntry).

  Uma lista de mapeamentos para os destinos especificados.

**Erros**
+ `InvalidInputException`
+ `InternalServiceException`
+ `OperationTimeoutException`
+ `EntityNotFoundException`

## Ação GetPlan (Python: get\$1plan)
<a name="aws-glue-api-etl-script-generation-GetPlan"></a>

Obtém o código para executar um mapeamento especificado.

**Solicitação**
+ `Mapping` – *Obrigatório:* uma matriz de objetos [MappingEntry](#aws-glue-api-etl-script-generation-MappingEntry).

  A lista de mapeamentos de uma tabela de origem para tabelas de destino.
+ `Source` – *Obrigatório:* um objeto [CatalogEntry](#aws-glue-api-etl-script-generation-CatalogEntry).

  A tabela de origem.
+ `Sinks`: um array de objetos [CatalogEntry](#aws-glue-api-etl-script-generation-CatalogEntry).

  O nome das tabelas.
+ `Location` – Um objeto [Local](#aws-glue-api-etl-script-generation-Location).

  Os parâmetros para o mapeamento.
+ `Language`: string UTF-8 (valores válidos: `PYTHON` \$1 `SCALA`).

  A linguagem de programação do código para executar o mapeamento.
+ `AdditionalPlanOptionsMap` – Um array de mapa dos pares de valor-chave.

  Cada chave é uma sequência de caracteres UTF-8.

  Cada valor é uma sequência de caracteres UTF-8.

  Um mapa para conter parâmetros de chave-valor opcionais extras.

  Atualmente, estes pares de chave-valor são suportados:
  + `inferSchema`: especifica se é para definir `inferSchema` como true ou false para o script padrão gerado por um trabalho do AWS Glue. Por exemplo, para definir `inferSchema` como true, passe o seguinte par de chave-valor:

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

**Resposta**
+ `PythonScript` – String UTF-8.

  Um script Python para executar o mapeamento.
+ `ScalaCode` – String UTF-8.

  O código Scala para executar o mapeamento.

**Erros**
+ `InvalidInputException`
+ `InternalServiceException`
+ `OperationTimeoutException`