Usando o carregamento em lote com o AWS CLI - Amazon Timestream

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 com o AWS CLI

Configuração

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

  1. Instale o AWS CLI usando as instruções emAcessando o Amazon LiveAnalytics Timestream para usar o AWS CLI.

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

    aws timestream-write help

  3. Prepare uma fonte de dados usando as instruções emPreparando um arquivo de dados de carregamento em lote.

  4. Crie um banco de dados e uma tabela usando as instruções emAcessando o Amazon LiveAnalytics Timestream para usar o AWS CLI.

  5. Crie um bucket do S3 para a saída do relatório. O bucket deve estar na mesma região. Para obter mais informações sobre buckets, consulte Criação, configuração e trabalho com buckets do Amazon S3.

  6. Crie uma tarefa de carregamento em lote. Para obter as etapas, consulte Criar uma tarefa de carregamento em lote.

  7. Confirme o status da tarefa. Para obter as etapas, consulte Descrever a tarefa de carregamento em lote.

Criar uma tarefa de carregamento em lote

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

Para obter um exemplo, consulte Exemplo de criação de tarefa de carregamento em lote

Descrever a tarefa de carregamento em lote

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

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

aws timestream-write list-batch-load-tasks

Uma saída aparece 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

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

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

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

Exemplo de criação de tarefa de carregamento em lote

  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 MagneticStoreRetentionPeriodInDays e.

    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}"
  2. Usando o console, crie um bucket S3 e copie o sample.csv arquivo para esse local. Você pode baixar uma amostra CSV em amostra CSV.

  3. 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.

  4. Crie uma tarefa de carregamento em lote. Certifique-se de substituir $INPUT_BUCKET e $REPORT_BUCKET 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 " }
  5. Verifique o progresso da tarefa. Certifique-se de $TASK_ID 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

{ "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": "test-report-bucket" } }, "DataSourceConfiguration": { "DataSourceS3Configuration": { "ObjectKeyPrefix": "sample.csv", "BucketName": "test-input-bucket" }, "DataFormat": "CSV", "CsvConfiguration": {} }, "LastUpdatedTime": 1672960387.334 } }