

Para recursos semelhantes aos do Amazon Timestream para, considere o Amazon Timestream LiveAnalytics para InfluxDB. Ele oferece ingestão de dados simplificada e tempos de resposta de consulta de um dígito em milissegundos para análises em tempo real. Saiba mais [aqui](https://docs.aws.amazon.com//timestream/latest/developerguide/timestream-for-influxdb.html).

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Usando o carregamento em lote no Timestream para LiveAnalytics
<a name="batch-load"></a>

Com o *carregamento em lote* para o Amazon Timestream LiveAnalytics for, você pode ingerir arquivos CSV armazenados no Amazon S3 no Timestream em lotes. Com essa nova funcionalidade, você pode ter seus dados no Timestream LiveAnalytics sem precisar depender de outras ferramentas ou escrever código personalizado. Você pode usar o carregamento em lote para preencher dados com tempos de espera flexíveis, como dados que não são imediatamente necessários para consulta ou análise. 

Você pode criar tarefas de carregamento em lote usando o Console de gerenciamento da AWS AWS CLI, o e AWS SDKs o. Para obter mais informações, consulte [Usando o carregamento em lote com o console](batch-load-using-console.md), [Usando o carregamento em lote com o AWS CLI](batch-load-using-cli.md) e [Usando o carregamento em lote com o AWS SDKs](batch-load-using-sdk.md).

Além do carregamento em lote, você pode gravar vários registros ao mesmo tempo com a operação da WriteRecords API. Para orientação sobre qual usar, consulte [Escolha entre a operação da WriteRecords API e o carregamento em lote](writes.writes-or-batch-load.md).

**Topics**
+ [Conceitos de carregamento em lote no Timestream](batch-load-concepts.md)
+ [Pré-requisitos de carregamento em lote](batch-load-prerequisites.md)
+ [Práticas recomendadas de carregamento em lote](batch-load-best-practices.md)
+ [Preparando um arquivo de dados de carregamento em lote](batch-load-preparing-data-file.md)
+ [Mapeamentos de modelos de dados para carregamento em lote](batch-load-data-model-mappings.md)
+ [Usando o carregamento em lote com o console](batch-load-using-console.md)
+ [Usando o carregamento em lote com o AWS CLI](batch-load-using-cli.md)
+ [Usando o carregamento em lote com o AWS SDKs](batch-load-using-sdk.md)
+ [Usando relatórios de erro de carregamento em lote](batch-load-using-error-reports.md)

# Conceitos de carregamento em lote no Timestream
<a name="batch-load-concepts"></a>

Analise os conceitos a seguir para entender melhor a funcionalidade de carregamento em lote. 

**Tarefa de carregamento em lote**: a tarefa que define seus dados de origem e destino no Amazon Timestream. Você especifica configurações adicionais, como o modelo de dados, ao criar a tarefa de carregamento em lote. Você pode criar tarefas de carregamento em lote por meio do Console de gerenciamento da AWS AWS CLI, do e do AWS SDKs. 

**Destino de importação**: o banco de dados e a tabela de destino no Timestream. Para obter informações sobre a criação de bancos de dados e tabelas, consulte [Criar um banco de dados](console_timestream.md#console_timestream.db.using-console) e [Criar uma tabela](console_timestream.md#console_timestream.table.using-console).

**Fonte de dados**: o arquivo CSV de origem armazenado em um bucket do S3. Para obter informações sobre a preparação do arquivo de dados, consulte [Preparando um arquivo de dados de carregamento em lote](batch-load-preparing-data-file.md). Para obter informações sobre os preços do S3, consulte [Preços do Amazon S3](https://aws.amazon.com/s3/pricing/).

**Relatório de erro de carregamento em lote**: um relatório que armazena informações sobre os erros de uma tarefa de carregamento em lote. Você define a localização do S3 para relatórios de erro de carregamento em lote como parte de uma tarefa de carregamento em lote. Para obter informações sobre as informações nos relatórios, consulte [Usando relatórios de erro de carregamento em lote](batch-load-using-error-reports.md).

**Mapeamento do modelo de dados** — Um mapeamento de carga em lote para tempo, dimensões e medidas que vai de uma fonte de dados em um local do S3 para um Timestream de destino para a tabela. LiveAnalytics Para obter mais informações, consulte [Mapeamentos de modelos de dados para carregamento em lote](batch-load-data-model-mappings.md).

# Pré-requisitos de carregamento em lote
<a name="batch-load-prerequisites"></a>

Essa é uma lista de pré-requisitos para usar o carregamento em lote. Para ver as práticas recomendadas, consulte [Práticas recomendadas de carregamento em lote](batch-load-best-practices.md).
+ Os dados da origem do carregamento em lote são armazenados no Amazon S3 no formato CSV com cabeçalhos.
+ Para cada bucket de origem do Amazon S3, você deve ter as seguintes permissões em uma política anexada:

  ```
  "s3:GetObject",
  "s3:GetBucketAcl"
  "s3:ListBucket"
  ```

  Da mesma forma, para cada bucket de saída do Amazon S3 em que os relatórios são gravados, você deve ter as seguintes permissões em uma política anexada:

  ```
  "s3:PutObject",
  "s3:GetBucketAcl"
  ```

  Por exemplo:

------
#### [ JSON ]

****  

  ```
  {
      "Version":"2012-10-17",		 	 	 
      "Statement": [
          {
              "Action": [
                  "s3:GetObject",
                  "s3:GetBucketAcl",
                  "s3:ListBucket"
              ],
              "Resource": [
                  "arn:aws:s3:::amzn-s3-demo-source-bucket1\u201d",
                  "arn:aws:s3:::amzn-s3-demo-source-bucket2\u201d"
              ],
              "Effect": "Allow"
          },
          {
              "Action": [
                  "s3:PutObject",
                  "s3:GetBucketAcl"
              ],
              "Resource": [
                  "arn:aws:s3:::amzn-s3-demo-destination-bucket\u201d"
              ],
              "Effect": "Allow"
          }
      ]
  }
  ```

------
+ Timestream para LiveAnalytics analisar o CSV mapeando as informações fornecidas no modelo de dados para cabeçalhos CSV. Os dados devem ter uma coluna que represente o registro de data e hora, pelo menos uma coluna de dimensão e pelo menos uma coluna de medida.
+ Os buckets do S3 usados com carregamento em lote devem estar na mesma região e na mesma conta da LiveAnalytics tabela Timestream for usada no carregamento em lote.
+ A coluna `timestamp` deve ser um tipo de dados longo que represente o tempo desde a época do Unix. Por exemplo, o registro de data e hora `2021-03-25T08:45:21Z` seria representado como `1616661921`. O Timestream suporta segundos, milissegundos, microssegundos e nanossegundos para a precisão do registro de data e hora. Ao usar a linguagem de consulta, você pode converter entre formatos com funções como `to_unixtime`. Para obter mais informações, consulte [Funções de data e hora](date-time-functions.md).
+ O Timestream suporta o tipo de dados de string para valores de dimensão. Ele suporta tipos de dados longos, duplos, de sequência de caracteres e booleanos para colunas de medida.

Para limites e cotas de carregamento em lote, consulte [Carga de lote](ts-limits.md#limits.batch-load).

# Práticas recomendadas de carregamento em lote
<a name="batch-load-best-practices"></a>

O carregamento em lote funciona melhor (alto throughput) ao seguir as seguintes condições e recomendações:

1. Os arquivos CSV enviados para ingestão são pequenos, especificamente com um tamanho de arquivo de 100 MB a 1 GB, para melhorar o paralelismo e a velocidade de ingestão.

1. Evite ingerir dados simultaneamente na mesma tabela (por exemplo, usando a operação da WriteRecords API ou uma consulta agendada) quando o carregamento do lote estiver em andamento. Isso pode causar um controle de utilização e a tarefa de carregamento em lote falhará.

1. Não adicione, modifique ou remova arquivos do bucket do S3 usado no carregamento em lote enquanto a tarefa de carregamento em lote estiver em execução.

1. Não exclua nem revogue permissões de tabelas ou fontes, nem reporte buckets do S3 que tenham tarefas de carregamento em lote agendadas ou em andamento.

1. Ao ingerir dados com um conjunto de valores de dimensão de alta cardinalidade, siga as orientações em [Recomendações para particionar registros de várias medidas](data-modeling.md#data-modeling-multi-measure-partitioning).

1. Certifique-se de testar a exatidão dos dados enviando um pequeno arquivo. Você será cobrado por todos os dados enviados para carregamento em lote, independentemente da exatidão. Para obter mais informações sobre a definição de preços, consulte [Definição de preços do Amazon Timestream](https://aws.amazon.com/timestream/pricing/).

1. Não retome uma tarefa de carregamento em lote a menos que `ActiveMagneticStorePartitions` esteja abaixo de 250. O trabalho pode ter um controle de utilização e falhar. O envio de vários trabalhos ao mesmo tempo para o mesmo banco de dados deve reduzir o número.

Veja a seguir as práticas recomendadas do console:

1. Use o [construtor](batch-load-using-console.md#batch-load-using-visual-builder) somente para uma modelagem de dados mais simples que usa apenas um nome de medida para registros de várias medidas.

1. Para modelagem de dados mais complexa, use JSON. Por exemplo, use JSON ao usar vários nomes de medidas ao usar registros de várias medidas. 

Para obter mais informações sobre o Timestream sobre as LiveAnalytics melhores práticas, consulte. [Práticas recomendadas](best-practices.md)

# Preparando um arquivo de dados de carregamento em lote
<a name="batch-load-preparing-data-file"></a>

Um arquivo de dados de origem tem valores separados por delimitador. O termo mais específico, de valores separados por vírgulas (CSV), é usado genericamente. Os separadores de coluna válidos incluem vírgulas e barras retas. Os registros são separados por novas linhas. Os arquivos devem ser armazenados no Amazon S3. Quando você cria uma nova tarefa de carregamento em lote, a localização dos dados de origem é especificada por um ARN para o arquivo. Um arquivo contém cabeçalhos. Uma coluna representa o registro de data e hora. Pelo menos uma outra coluna representa uma medida.

Os buckets S3 usados com carregamento em lote devem estar na mesma região do Timestream da LiveAnalytics tabela usada no carregamento em lote. Não adicione nem remova arquivos do bucket do S3 usado no carregamento em lote após o envio da tarefa de carregamento em lote. Para obter informações sobre como trabalhar com buckets do S3, consulte [Conceitos básicos do Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/GetStartedWithS3.html).

**nota**  
Os arquivos CSV gerados por alguns aplicativos, como o Excel, podem conter uma marca de ordem de bytes (BOM) que entra em conflito com a codificação esperada. O fluxo de tempo para tarefas de carregamento LiveAnalytics em lote que fazem referência a um arquivo CSV com um BOM gera um erro quando elas são processadas programaticamente. Para que isso não aconteça, você pode remover o BOM, que é um caractere invisível.  
Por exemplo, você pode salvar o arquivo de um aplicativo como o Notepad\$1\$1, que permite especificar uma nova codificação. Você também pode usar uma opção programática que lê a primeira linha, remove o caractere da linha e grava o novo valor na primeira linha do arquivo.  
Ao salvar do Excel, há várias opções de CSV. Salvar com uma opção CSV diferente pode evitar o problema descrito. Mas você deve verificar o resultado, pois uma alteração na codificação pode afetar alguns caracteres.

## Parâmetros do formato CSV
<a name="batch-load-data-file-options"></a>

Você usa caracteres de escape quando representa um valor que, de outra forma, é reservado pelos parâmetros de formato. Por exemplo, se o caractere de aspa for uma aspa dupla, para representar uma aspa dupla nos dados, coloque o caractere de escape antes das aspas duplas.

Para obter informações sobre quando especificar isso ao criar uma tarefa de carregamento em lote, consulte [Criar uma tarefa de carregamento em lote](batch-load-using-console.md#console_timestream.create-batch-load.using-console).


| Parâmetro | Opções | 
| --- | --- | 
| Separador de colunas | (Vírgula (',') \$1 Barra reta ('\$1') \$1 Ponto e vírgula (';') \$1 Tabulação ('/t') \$1 Espaço em branco (' ')) | 
| Caractere de escape | nenhuma | 
| Caractere de citação | Console: (Aspas duplas (“) \$1 Aspas simples (')) | 
| Valor nulo | Espaço em branco (' ') | 
| Cortar espaço em branco | Console: (Não \$1 Sim) | 

# Mapeamentos de modelos de dados para carregamento em lote
<a name="batch-load-data-model-mappings"></a>

O seguinte discute o esquema para mapeamentos de modelos de dados e fornece um exemplo.

## Esquema de mapeamentos do modelo de dados
<a name="batch-load-data-model-mappings-schema"></a>

A sintaxe da solicitação `CreateBatchLoadTask` e um objeto `BatchLoadTaskDescription` retornado por uma chamada para o `DescribeBatchLoadTask` inclui um objeto `DataModelConfiguration` que inclui o `DataModel` para carregamento em lote. Ele `DataModel` define mapeamentos dos dados de origem armazenados no formato CSV em um local do S3 para um Timestream de destino para banco de dados e tabela. LiveAnalytics 

O `TimeColumn` campo indica a localização dos dados de origem para o valor a ser mapeado para a `time` coluna da tabela de destino no Timestream for. LiveAnalytics O `TimeUnit` especifica a unidade para o `TimeColumn`, e pode ser qualquer opção dentre `MILLISECONDS`, `SECONDS`, `MICROSECONDS` ou `NANOSECONDS`. Também há mapeamentos para dimensões e medidas. Os mapeamentos de dimensões são compostos por colunas de origem e campos de destino. 

Para obter mais informações, consulte [DimensionMapping](https://docs.aws.amazon.com/timestream/latest/developerguide/API_DimensionMapping). Os mapeamentos para medidas têm duas opções, `MixedMeasureMappings` e `MultiMeasureMappings`.

Para resumir, a `DataModel` contém mapeamentos de uma fonte de dados em um local do S3 para um Timestream de destino para a tabela a seguir. LiveAnalytics 
+ Tempo
+ Dimensões
+ Medidas

Se possível, recomendamos que você mapeie os dados de medida para registros de várias medidas no Timestream for. LiveAnalytics Para obter informações sobre os benefícios de registros de várias medidas, consulte [Registros de várias medidas](writes.md#writes.writing-data-multi-measure). 

Se várias medidas nos dados de origem forem armazenadas em uma linha, você poderá mapear essas várias medidas para registros de várias medidas no Timestream para uso. LiveAnalytics `MultiMeasureMappings` Se houver valores que devem ser mapeados para um registro de medida única, você pode usar `MixedMeasureMappings`. 

Tanto `MixedMeasureMappings` quanto `MultiMeasureMappings` incluem `MultiMeasureAttributeMappings`. Registros de várias medidas são suportados, independentemente da necessidade de registros de medida única.

Se somente registros de destino de várias medidas forem necessários no Timestream for LiveAnalytics, você poderá definir mapeamentos de medidas na estrutura a seguir.

```
CreateBatchLoadTask
    MeasureNameColumn
    MultiMeasureMappings
        TargetMultiMeasureName
        MultiMeasureAttributeMappings array
```

**nota**  
Recomendamos utilizar `MultiMeasureMappings` sempre que possível.

Se forem necessários registros de destino de medida única no Timestream for LiveAnalytics, você poderá definir mapeamentos de medida na estrutura a seguir.

```
CreateBatchLoadTask
    MeasureNameColumn
    MixedMeasureMappings array
        MixedMeasureMapping
            MeasureName
            MeasureValueType
            SourceColumn
            TargetMeasureName
            MultiMeasureAttributeMappings array
```

Quando você usa `MultiMeasureMappings`, a matriz `MultiMeasureAttributeMappings` é sempre necessária. Quando você usa a matriz `MixedMeasureMappings`, se `MeasureValueType` for `MULTI` para um determinado `MixedMeasureMapping`, `MultiMeasureAttributeMappings` é necessário para este `MixedMeasureMapping`. Caso contrário, `MeasureValueType` indica o tipo de medida para o registro de medida única.

De qualquer forma, há uma matriz de `MultiMeasureAttributeMapping` disponível. Você define os mapeamentos para registros de várias medidas em cada `MultiMeasureAttributeMapping` da seguinte forma:

`SourceColumn`  
A coluna nos dados de origem que está localizada no Amazon S3.

`TargetMultiMeasureAttributeName`  
O nome do nome de várias medidas de destino na tabela de destino. Essa entrada é necessária quando `MeasureNameColumn` não é fornecido. Se `MeasureNameColumn` for fornecido, o valor dessa coluna será utilizado como nome de várias medidas.

`MeasureValueType`  
Um dentre `DOUBLE`, `BIGINT` `BOOLEAN`, `VARCHAR` ou `TIMESTAMP`.

## Mapeamentos de modelos de dados com exemplo `MultiMeasureMappings`
<a name="batch-load-data-model-mappings-example-multi"></a>

Este exemplo demonstra o mapeamento para registros de várias medidas, a abordagem preferida, que armazena cada valor de medida em uma coluna dedicada. Você pode baixar um exemplo de CSV em [Amostra CSV](samples/batch-load-sample-file.csv.zip). A amostra tem os seguintes cabeçalhos para mapear para uma coluna de destino em um Timestream for table. LiveAnalytics 
+ `time`
+ `measure_name`
+ `region`
+ `location`
+ `hostname`
+ `memory_utilization`
+ `cpu_utilization`

Identifique as colunas `time` e `measure_name` no arquivo CSV. Nesse caso, eles são mapeados diretamente para o Timestream para colunas de LiveAnalytics tabelas com os mesmos nomes.
+ `time` é mapeado para `time`
+ `measure_name` é mapeado para `measure_name` (ou o valor escolhido)

Ao usar a API, você especifica `time` no campo `TimeColumn` e um valor de unidade de tempo compatível, como `MILLISECONDS` no `TimeUnit` campo. Eles são correspondentes ao **Nome da coluna de origem** e à **Entrada de hora do registro de data e hora** no console. Você pode agrupar ou particionar registros usando o `measure_name`, que é definido com a chave `MeasureNameColumn`.

Na amostra, `region`, `location` e `hostname` são dimensões. As dimensões são mapeadas em uma matriz de objetos `DimensionMapping`.

Para medidas, o valor se `TargetMultiMeasureAttributeName` tornará uma coluna na tabela Timestream for LiveAnalytics . Você pode manter o mesmo nome, como neste exemplo. Ou você pode especificar um novo nome. `MeasureValueType` é um dentre `DOUBLE`, `BIGINT`, `BOOLEAN`, `VARCHAR` ou `TIMESTAMP`. 

```
{
  "TimeColumn": "time",
  "TimeUnit": "MILLISECONDS",
  "DimensionMappings": [
    {
      "SourceColumn": "region",
      "DestinationColumn": "region"
    },
    {
      "SourceColumn": "location",
      "DestinationColumn": "location"
    },
    {
      "SourceColumn": "hostname",
      "DestinationColumn": "hostname"
    }
  ],
  "MeasureNameColumn": "measure_name",
  "MultiMeasureMappings": {
    "MultiMeasureAttributeMappings": [
      {
        "SourceColumn": "memory_utilization",
        "TargetMultiMeasureAttributeName": "memory_utilization",
        "MeasureValueType": "DOUBLE"
      },
      {
        "SourceColumn": "cpu_utilization",
        "TargetMultiMeasureAttributeName": "cpu_utilization",
        "MeasureValueType": "DOUBLE"
      }
    ]
  }
}
```

![\[Visual builder interface showing column mappings for timestream data attributes and types.\]](http://docs.aws.amazon.com/pt_br/timestream/latest/developerguide/images/column-mapping.jpg)


## Mapeamentos de modelos de dados com exemplo `MixedMeasureMappings`
<a name="batch-load-data-model-mappings-example-mixed"></a>

Recomendamos que você use essa abordagem somente quando precisar mapear registros de medida única no Timestream para. LiveAnalytics

# Usando o carregamento em lote com o console
<a name="batch-load-using-console"></a>

A seguir estão as etapas para usar o carregamento em lote com o Console de gerenciamento da AWS. Você pode baixar um exemplo de CSV em [Amostra CSV](samples/batch-load-sample-file.csv.zip).

**Topics**
+ [Acessar o carregamento em lote](#console_timestream.access-batch-load.using-console)
+ [Criar uma tarefa de carregamento em lote](#console_timestream.create-batch-load.using-console)
+ [Retomar uma tarefa de carregamento em lote](#console_timestream.resume-batch-load.using-console)
+ [Usar o criador visual](#batch-load-using-visual-builder)

## Acessar o carregamento em lote
<a name="console_timestream.access-batch-load.using-console"></a>

Siga estas etapas para acessar o carregamento em lote usando o Console de gerenciamento da AWS.

1. Abra o [Console do Amazon Timestream](https://console.aws.amazon.com/timestream).

1. No painel de navegação, escolha **Ferramentas de gerenciamento** e, em seguida, escolha **Tarefas de carregamento em lote**.

1. A partir daqui, você pode ver a lista de tarefas de carregamento em lote e detalhar uma determinada tarefa para obter mais detalhes. Você também pode criar e retomar tarefas.

## Criar uma tarefa de carregamento em lote
<a name="console_timestream.create-batch-load.using-console"></a>

Para criar uma tarefa de carregamento em lote usando Console de gerenciamento da AWS, siga estas etapas.

1. Abra o [Console do Amazon Timestream](https://console.aws.amazon.com/timestream).

1. No painel de navegação, escolha **Ferramentas de gerenciamento** e, em seguida, escolha **Tarefas de carregamento em lote**.

1. Escolha **Criar tarefa de carregamento em lote**.

1. Em **Destino de importação**, escolha o seguinte.
   + **Banco de dados de destino**: selecione o nome do banco de dados criado em [Criar um banco de dados](console_timestream.md#console_timestream.db.using-console).
   + **Tabela de destino**: selecione o nome da tabela criada em [Criar uma tabela](console_timestream.md#console_timestream.table.using-console).

   Se necessário, você pode adicionar uma tabela desse painel com o botão **Criar nova tabela**.

1. Em **Localização da fonte de dados S3** em **Fonte de dados**, selecione o bucket do S3 em que os dados de origem estão armazenados. Use o botão **Procurar no S3** para visualizar os recursos do S3 aos quais a AWS conta ativa tem acesso ou insira a URL de localização do S3. A fonte de dados deve estar localizada na mesma região.

1. Em **Configurações de formato de arquivo** (seção expansível), você pode usar as configurações padrão para analisar os dados de entrada. Você também pode escolher **Configurações avançadas**. A partir daí, você pode escolher os **parâmetros do formato CSV** e selecionar os parâmetros para analisar os dados de entrada. Para informações sobre esses parâmetros, consulte [Parâmetros do formato CSV](batch-load-preparing-data-file.md#batch-load-data-file-options).

1. Em **Configurar mapeamento do modelo de dados**, configure o modelo de dados. Para obter orientações adicionais sobre o modelo de dados, consulte [Mapeamentos de modelos de dados para carregamento em lote](batch-load-data-model-mappings.md)
   + Em **Mapeamento do modelo de dados**, escolha **Entrada de configuração de mapeamento** e escolha uma das opções a seguir.
     + **Construtor visual** — Para mapear dados visualmente, escolha **TargetMultiMeasureName**ou **MeasureNameColumn**. Em seguida, mapeie as colunas no **Visual Builder**.

       O Visual Builder detecta e carrega automaticamente os cabeçalhos das colunas de origem do arquivo da fonte de dados quando um único arquivo CSV é selecionado como fonte de dados. Escolha o atributo e o tipo de dados para criar seu mapeamento.

       Para obter informações sobre como usar o visual builder, consulte [Usar o criador visual](#batch-load-using-visual-builder).
     + **Editor JSON**: um editor JSON de formato livre para configurar seu modelo de dados. Escolha essa opção se você estiver familiarizado com o Timestream for LiveAnalytics e quiser criar mapeamentos avançados de modelos de dados.
     + **Arquivo JSON do S3**: selecione um arquivo de modelo JSON que você armazenou no S3. Escolha essa opção se você já configurou um modelo de dados e deseja reutilizá-lo para cargas em lote adicionais.

1. Em **Localização dos logs de erro do S3** em **Relatório do log de erro**, selecione a localização do S3 que será usada para reportar erros. Para obter informações sobre como utilizar esse relatório, consulte [Usando relatórios de erro de carregamento em lote](batch-load-using-error-reports.md).

1. Em **Tipo de chave de criptografia**, selecione uma das seguintes opções.
   + **Chave gerenciada pelo Amazon S3 (SSE-S3)**: uma chave de criptografia que o Amazon S3 cria, gerencia e usa para você.
   + **AWS KMS key (SSE-KMS)** — Uma chave de criptografia protegida por AWS Key Management Service ().AWS KMS

1. Escolha **Próximo**.

1. Na página **Revisar e criar**, revise as configurações e edite conforme necessário.
**nota**  
Não é possível alterar as configurações da tarefa de carregamento em lote após sua criação. Os tempos de conclusão da tarefa vão variar com base na quantidade de dados que estão sendo importados.

1. Escolha **Criar tarefa de carregamento em lote**.

## Retomar uma tarefa de carregamento em lote
<a name="console_timestream.resume-batch-load.using-console"></a>

Quando você seleciona uma tarefa de carregamento em lote com o status “Progresso interrompido” que ainda pode ser retomada, você é instruído a retomar a tarefa. Também há um banner com um botão **Retomar tarefa** quando você visualiza os detalhes dessas tarefas. As tarefas retomáveis têm uma data de validade. Depois que essa data expirar, não será possível retomar as tarefas.

## Usar o criador visual
<a name="batch-load-using-visual-builder"></a>

Você pode usar o Visual Builder para mapear colunas de dados de origem de um ou mais arquivos CSV armazenados em um bucket do S3 para colunas de destino em um Timestream para tabela. LiveAnalytics 

**nota**  
Seu perfil precisará da permissão `SelectObjectContent` para o arquivo. Sem isso, será necessário adicionar e excluir colunas manualmente.

### Modo de carregamento automático de colunas de origem
<a name="batch-load-using-visual-builder-auto-load"></a>

O Timestream for LiveAnalytics pode verificar automaticamente o arquivo CSV de origem em busca de nomes de colunas se você especificar apenas um bucket. Quando não há mapeamentos existentes, você pode escolher **Importar colunas de origem**.

1. Com a opção **Visual builder** selecionada nas **Configurações de entrada da configuração de mapeamento**, defina a entrada de hora do registro de data e hora. `Milliseconds`é a configuração padrão.

1. Clique no botão **Carregar colunas de origem** para importar os cabeçalhos das colunas encontrados no arquivo de dados de origem. A tabela será preenchida com os nomes dos cabeçalhos da coluna de origem do arquivo da fonte de dados.

1. Escolha o **Nome da coluna da tabela de destino**, o **Tipo de atributo do Timestream** e o **Tipo de dados** para cada coluna de origem.

   Para obter detalhes sobre essas colunas e valores possíveis, consulte [Mapear campos](#batch-load-using-visual-builder-mapping-fields).

1. Use o drag-to-fill recurso para definir o valor de várias colunas ao mesmo tempo.

### Adicionar colunas de origem manualmente
<a name="batch-load-using-visual-builder-manually-add"></a>

Se você estiver usando um bucket ou prefixo CSV e não um único CSV, poderá adicionar e excluir mapeamentos de colunas do editor visual com os botões **Adicionar mapeamento de coluna** e **Excluir mapeamento de coluna**. Também há um botão para redefinir os mapeamentos.

### Mapear campos
<a name="batch-load-using-visual-builder-mapping-fields"></a>
+ **Nome da coluna de origem**: o nome de uma coluna no arquivo de origem que representa uma medida a ser importada. O Timestream for LiveAnalytics pode preencher esse valor automaticamente quando você usa colunas de origem de **importação**.
+ **Nome da coluna da tabela de destino**: entrada opcional que indica o nome da coluna da medida na tabela de destino.
+ **Tipo de atributo Timestream**: o tipo de atributo dos dados na coluna de origem especificada, como `DIMENSION`.
  + **TIMESTAMP**: especifica quando uma medida foi coletada.
  + **MULTI**: várias medidas são representadas.
  + **DIMENSION**: metadados de séries temporais.
  + **MEASURE\$1NAME**: esse é o nome da medida para registros de medida única.
+ **Tipo de dados**: o tipo de coluna Timestream, como `BOOLEAN`.
  + **BIGINT**: um número inteiro de 64 bits.
  + **BOOLEAN**: os dois valores verdadeiros da lógica: verdadeiro e falso.
  + **DOUBLE**: número de precisão variável de 64 bits.
  + **TIMESTAMP**: uma instância no tempo que usa tempo de precisão de nanossegundos em UTC e rastreia o tempo desde a época do Unix.

# Usando o carregamento em lote com o AWS CLI
<a name="batch-load-using-cli"></a>

**Configuração**

Para começar a usar o carregamento em lote, siga estas etapas.

1. Instale o AWS CLI usando as instruções em[Acessando o Amazon LiveAnalytics Timestream para usar o AWS CLI](Tools.CLI.md).

1. Execute o comando a seguir para verificar se os comandos CLI do Timestream foram atualizados. Verifique se create-batch-load-task está na lista.

   `aws timestream-write help`

1. Prepare uma fonte de dados usando as instruções em [Preparando um arquivo de dados de carregamento em lote](batch-load-preparing-data-file.md).

1. Para criar banco de dados e tabela usando as instruções em [Acessando o Amazon LiveAnalytics Timestream para usar o AWS CLI](Tools.CLI.md).

1. Criar um bucket do S3 para a saída do relatório. O bucket deve estar na mesma Região. Para ter informações sobre os buckets, consulte [Criar, configurar e trabalhar com buckets do Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/creating-buckets-s3.html).

1. Crie uma tarefa de carregamento em lote. Para obter as etapas, consulte [Criar uma tarefa de carregamento em lote](#batch-load-using-cli-create-task).

1. Confirmar o status da tarefa. Para obter as etapas, consulte [Descrever a tarefa de carregamento em lote](#batch-load-using-cli-describe-task).

## Criar uma tarefa de carregamento em lote
<a name="batch-load-using-cli-create-task"></a>

Você pode criar uma tarefa de carregamento em lote com o comando `create-batch-load-task`. Ao criar uma tarefa de carregamento em lote usando a CLI, você pode usar um parâmetro JSON, `cli-input-json`, que permite agregar os parâmetros em um único fragmento JSON. Você também pode separar esses detalhes usando vários outros parâmetros, inclusive `data-model-configuration`, `data-source-configuration`, `report-configuration`, `target-database-name` e `target-table-name`.

Para obter um exemplo, consulte [Criar exemplo de tarefa de carregamento em lote](#batch-load-using-cli-example)

## Descrever a tarefa de carregamento em lote
<a name="batch-load-using-cli-describe-task"></a>

Você pode recuperar uma descrição da tarefa de carregamento em lote da seguinte forma.

```
aws timestream-write describe-batch-load-task --task-id <value>
```

Veja a seguir uma resposta de exemplo.

```
{
    "BatchLoadTaskDescription": {
        "TaskId": "<TaskId>",
        "DataSourceConfiguration": {
            "DataSourceS3Configuration": {
                "BucketName": "test-batch-load-west-2",
                "ObjectKeyPrefix": "sample.csv"
            },
            "CsvConfiguration": {},
            "DataFormat": "CSV"
        },
        "ProgressReport": {
            "RecordsProcessed": 2,
            "RecordsIngested": 0,
            "FileParseFailures": 0,
            "RecordIngestionFailures": 2,
            "FileFailures": 0,
            "BytesIngested": 119
        },
        "ReportConfiguration": {
            "ReportS3Configuration": {
                "BucketName": "test-batch-load-west-2",
                "ObjectKeyPrefix": "<ObjectKeyPrefix>",
                "EncryptionOption": "SSE_S3"
            }
        },
        "DataModelConfiguration": {
            "DataModel": {
                "TimeColumn": "timestamp",
                "TimeUnit": "SECONDS",
                "DimensionMappings": [
                    {
                        "SourceColumn": "vehicle",
                        "DestinationColumn": "vehicle"
                    },
                    {
                        "SourceColumn": "registration",
                        "DestinationColumn": "license"
                    }
                ],
                "MultiMeasureMappings": {
                    "TargetMultiMeasureName": "test",
                    "MultiMeasureAttributeMappings": [
                        {
                            "SourceColumn": "wgt",
                            "TargetMultiMeasureAttributeName": "weight",
                            "MeasureValueType": "DOUBLE"
                        },
                        {
                            "SourceColumn": "spd",
                            "TargetMultiMeasureAttributeName": "speed",
                            "MeasureValueType": "DOUBLE"
                        },
                        {
                            "SourceColumn": "fuel",
                            "TargetMultiMeasureAttributeName": "fuel",
                            "MeasureValueType": "DOUBLE"
                        },
                        {
                            "SourceColumn": "miles",
                            "TargetMultiMeasureAttributeName": "miles",
                            "MeasureValueType": "DOUBLE"
                        }
                    ]
                }
            }
        },
        "TargetDatabaseName": "BatchLoadExampleDatabase",
        "TargetTableName": "BatchLoadExampleTable",
        "TaskStatus": "FAILED",
        "RecordVersion": 1,
        "CreationTime": 1677167593.266,
        "LastUpdatedTime": 1677167602.38
    }
}
```

## Listar tarefas de carregamento em lote
<a name="batch-load-using-cli-list-tasks"></a>

Você pode listar as tarefas de carregamento em lote da seguinte forma.

```
aws timestream-write list-batch-load-tasks
```

Uma saída é exibida da seguinte forma.

```
{
    "BatchLoadTasks": [
        {
            "TaskId": "<TaskId>",
            "TaskStatus": "FAILED",
            "DatabaseName": "BatchLoadExampleDatabase",
            "TableName": "BatchLoadExampleTable",
            "CreationTime": 1677167593.266,
            "LastUpdatedTime": 1677167602.38
        }
    ]
}
```

## Retomar a tarefa de carregamento em lote
<a name="batch-load-using-cli-resume-task"></a>

Você pode retomar uma tarefa de carregamento em lote da seguinte forma.

```
aws timestream-write resume-batch-load-task --task-id <value>
```

Uma resposta pode indicar sucesso ou conter informações de erro.

## Criar exemplo de tarefa de carregamento em lote
<a name="batch-load-using-cli-example"></a>

**Example**  

1. Crie um Timestream para o LiveAnalytics banco de dados nomeado `BatchLoad` e uma tabela chamada. `BatchLoadTest` Verifique e, se necessário, ajuste os valores para `MemoryStoreRetentionPeriodInHours` e `MagneticStoreRetentionPeriodInDays`.

   ```
   aws timestream-write create-database --database-name BatchLoad \
   
   aws timestream-write create-table --database-name BatchLoad \
   --table-name BatchLoadTest \
   --retention-properties "{\"MemoryStoreRetentionPeriodInHours\": 12, \"MagneticStoreRetentionPeriodInDays\": 100}"
   ```

1. Usando o console, crie um bucket S3 e copie o arquivo `sample.csv` para esse local. Você pode baixar um exemplo de CSV em [Amostra CSV](samples/batch-load-sample-file.csv.zip).

1. Usando o console, crie um bucket S3 para o Timestream LiveAnalytics para escrever um relatório se a tarefa de carregamento em lote for concluída com erros.

1. Crie uma tarefa de carregamento em lote. Certifique-se de substituir *\$1INPUT\$1BUCKET* e *\$1REPORT\$1BUCKET* com os buckets que você criou nas etapas anteriores.

   ```
   aws timestream-write create-batch-load-task \
   --data-model-configuration "{\
               \"DataModel\": {\
                 \"TimeColumn\": \"timestamp\",\
                 \"TimeUnit\": \"SECONDS\",\
                 \"DimensionMappings\": [\
                   {\
                     \"SourceColumn\": \"vehicle\"\
                   },\
                   {\
                     \"SourceColumn\": \"registration\",\
                     \"DestinationColumn\": \"license\"\
                   }\
                 ],
                 \"MultiMeasureMappings\": {\
                   \"TargetMultiMeasureName\": \"mva_measure_name\",\
                   \"MultiMeasureAttributeMappings\": [\
                     {\
                       \"SourceColumn\": \"wgt\",\
                       \"TargetMultiMeasureAttributeName\": \"weight\",\
                       \"MeasureValueType\": \"DOUBLE\"\
                     },\
                     {\
                       \"SourceColumn\": \"spd\",\
                       \"TargetMultiMeasureAttributeName\": \"speed\",\
                       \"MeasureValueType\": \"DOUBLE\"\
                     },\
                     {\
                       \"SourceColumn\": \"fuel_consumption\",\
                       \"TargetMultiMeasureAttributeName\": \"fuel\",\
                       \"MeasureValueType\": \"DOUBLE\"\
                     },\
                     {\
                       \"SourceColumn\": \"miles\",\
                       \"MeasureValueType\": \"BIGINT\"\
                     }\
                   ]\
                 }\
               }\
             }" \
   --data-source-configuration "{
               \"DataSourceS3Configuration\": {\
                 \"BucketName\": \"$INPUT_BUCKET\",\
                 \"ObjectKeyPrefix\": \"$INPUT_OBJECT_KEY_PREFIX\"
               },\
               \"DataFormat\": \"CSV\"\
             }" \
   --report-configuration "{\
               \"ReportS3Configuration\": {\
                 \"BucketName\": \"$REPORT_BUCKET\",\
                 \"EncryptionOption\": \"SSE_S3\"\
               }\
             }" \
   --target-database-name BatchLoad \
   --target-table-name BatchLoadTest
   ```

   O comando anterior retorna a seguinte saída.

   ```
   {
       "TaskId": "TaskId "
   }
   ```

1. Verifique o progresso da tarefa. Certifique-se de *\$1TASK\$1ID* substituir pela ID da tarefa que foi retornada na etapa anterior.

   ```
   aws timestream-write describe-batch-load-task --task-id $TASK_ID 
   ```
**Exemplo de saída de**  

```
{
    "BatchLoadTaskDescription": {
        "ProgressReport": {
            "BytesIngested": 1024,
            "RecordsIngested": 2,
            "FileFailures": 0,
            "RecordIngestionFailures": 0,
            "RecordsProcessed": 2,
            "FileParseFailures": 0
        },
        "DataModelConfiguration": {
            "DataModel": {
                "DimensionMappings": [
                    {
                        "SourceColumn": "vehicle",
                        "DestinationColumn": "vehicle"
                    },
                    {
                        "SourceColumn": "registration",
                        "DestinationColumn": "license"
                    }
                ],
                "TimeUnit": "SECONDS",
                "TimeColumn": "timestamp",
                "MultiMeasureMappings": {
                    "MultiMeasureAttributeMappings": [
                        {
                            "TargetMultiMeasureAttributeName": "weight",
                            "SourceColumn": "wgt",
                            "MeasureValueType": "DOUBLE"
                        },
                        {
                            "TargetMultiMeasureAttributeName": "speed",
                            "SourceColumn": "spd",
                            "MeasureValueType": "DOUBLE"
                        },
                        {
                            "TargetMultiMeasureAttributeName": "fuel",
                            "SourceColumn": "fuel_consumption",
                            "MeasureValueType": "DOUBLE"
                        },
                        {
                            "TargetMultiMeasureAttributeName": "miles",
                            "SourceColumn": "miles",
                            "MeasureValueType": "DOUBLE"
                        }
                    ],
                    "TargetMultiMeasureName": "mva_measure_name"
                }
            }
        },
        "TargetDatabaseName": "BatchLoad",
        "CreationTime": 1672960381.735,
        "TaskStatus": "SUCCEEDED",
        "RecordVersion": 1,
        "TaskId": "TaskId ",
        "TargetTableName": "BatchLoadTest",
        "ReportConfiguration": {
            "ReportS3Configuration": {
                "EncryptionOption": "SSE_S3",
                "ObjectKeyPrefix": "ObjectKeyPrefix ",
                "BucketName": "amzn-s3-demo-bucket"
            }
        },
        "DataSourceConfiguration": {
            "DataSourceS3Configuration": {
                "ObjectKeyPrefix": "sample.csv",
                "BucketName": "amzn-s3-demo-source-bucket"
            },
            "DataFormat": "CSV",
            "CsvConfiguration": {}
        },
        "LastUpdatedTime": 1672960387.334
    }
}
```

# Usando o carregamento em lote com o AWS SDKs
<a name="batch-load-using-sdk"></a>

Para obter exemplos de como criar, descrever e listar tarefas de carregamento em lote com o AWS SDKs [Criar tarefa de carregamento em lote](code-samples.create-batch-load.md)[Descrever a tarefa de carregamento em lote](code-samples.describe-batch-load.md), consulte[Listar tarefas de carregamento em lote](code-samples.list-batch-load-tasks.md),, [Retomar a tarefa de carregamento em lote](code-samples.resume-batch-load-task.md) e.

# Usando relatórios de erro de carregamento em lote
<a name="batch-load-using-error-reports"></a>

As tarefas de carregamento em lote têm um dos seguintes valores de status:
+ `CREATED` (**Criado**): a tarefa foi criada.
+ `IN_PROGRESS` (**Em andamento**): a tarefa está em andamento.
+ `FAILED` (**Falha**): a tarefa foi concluída. Mas um ou mais erros foram detectados.
+ `SUCCEEDED` (**Concluído**): a tarefa foi concluída sem erros.
+ `PROGRESS_STOPPED` (**Progresso interrompido**): a tarefa foi interrompida, mas não foi concluída. Você pode tentar retomar a tarefa.
+ `PENDING_RESUME` (**Retomar pendente**): a tarefa está pendente para ser retomada.

Quando há erros, um relatório do log de erros é criado no bucket do S3 definido para isso. Os erros são categorizados como TaskErrors ou FileErrors em matrizes separadas. Veja a seguir um exemplo de relatório de erro.

```
{
    "taskId": "9367BE28418C5EF902676482220B631C",
    "taskErrors": [],
    "fileErrors": [
        {
            "fileName": "example.csv",
            "errors": [
                {
                    "reason": "The record timestamp is outside the time range of the data ingestion window.",
                    "lineRanges": [
                        [
                            2,
                            3
                        ]
                    ]
                }
            ]
        }
    ]
}
```