Uso de la carga por lotes con AWS CLI - Amazon Timestream

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.

Uso de la carga por lotes con AWS CLI

Configuración

Para empezar a utilizar la carga por lotes, siga los siguientes pasos.

  1. Instálelo AWS CLI siguiendo las instrucciones que aparecen enAcceder a Amazon Timestream LiveAnalytics para usar el AWS CLI.

  2. Ejecute el siguiente comando para comprobar que los comandos CLI de Timestream se han actualizado. Compruebe que create-batch-load-task esté en la lista.

    aws timestream-write help

  3. Prepare una fuente de datos siguiendo las instrucciones dePreparación de un archivo de datos de carga por lotes.

  4. Cree una base de datos y una tabla siguiendo las instrucciones deAcceder a Amazon Timestream LiveAnalytics para usar el AWS CLI.

  5. Cree un depósito de S3 para la producción de informes. El depósito debe estar en la misma región. Para obtener más información sobre los buckets, consulte Crear, configurar y trabajar con buckets de Amazon S3.

  6. Cree una tarea de carga por lotes. Para ver los pasos, consulte Cree una tarea de carga por lotes.

  7. Confirme el estado de la tarea. Para ver los pasos, consulte Describa la tarea de carga por lotes.

Cree una tarea de carga por lotes

Puede crear una tarea de carga por lotes con el create-batch-load-task comando. Al crear una tarea de carga por lotes mediante la CLI, puede usar un parámetro JSONcli-input-json, que le permite agregar los parámetros en un único fragmento de JSON. También puedes separar esos detalles mediante varios otros parámetrosdata-model-configuration, como data-source-configurationreport-configuration,target-database-name, ytarget-table-name.

Para ver un ejemplo, consulte Ejemplo de creación de una tarea de carga por lotes.

Describa la tarea de carga por lotes

Puede recuperar la descripción de una tarea de carga por lotes de la siguiente manera.

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

A continuación, se muestra un ejemplo de respuesta.

{ "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 } }

Enumere las tareas de carga por lotes

Puede enumerar las tareas de carga por lotes de la siguiente manera.

aws timestream-write list-batch-load-tasks

El resultado aparece de la siguiente manera.

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

Reanude la tarea de carga por lotes

Puede reanudar una tarea de carga por lotes de la siguiente manera.

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

Una respuesta puede indicar que se ha realizado correctamente o contener información sobre un error.

Ejemplo de creación de una tarea de carga por lotes

  1. Cree un flujo temporal para la LiveAnalytics base de datos denominada BatchLoad y una tabla denominada. BatchLoadTest Compruebe y, si es necesario, ajuste los valores de MemoryStoreRetentionPeriodInHours y. 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}"
  2. Con la consola, cree un bucket de S3 y copie el sample.csv archivo en esa ubicación. Puede descargar un archivo CSV de muestra en un archivo CSV de muestra.

  3. Con la consola, cree un depósito de S3 para que Timestream escriba un informe si la tarea de carga por lotes finaliza con errores. LiveAnalytics

  4. Cree una tarea de carga por lotes. Asegúrese de reemplazar $INPUT_BUCKET y por $REPORT_BUCKET los depósitos que creó en los pasos 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

    El comando anterior devuelve el siguiente resultado.

    { "TaskId": "TaskId " }
  5. Compruebe el progreso de la tarea. Asegúrese de $TASK_ID reemplazarla por la ID de tarea que se devolvió en el paso anterior.

    aws timestream-write describe-batch-load-task --task-id $TASK_ID

Ejemplo de resultado

{ "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 } }