Para obtener capacidades similares a las de Amazon Timestream para LiveAnalytics, considere Amazon Timestream para InfluxDB. Ofrece una ingesta de datos simplificada y tiempos de respuesta a las consultas en milisegundos de un solo dígito para realizar análisis en tiempo real. Obtenga más información aquí.
Uso de la carga por lotes con AWS CLI
Configuración
Para empezar a usar la carga por lotes, realice los siguientes pasos:
-
Instale la AWS CLI según las instrucciones en Acceso a Amazon Timestream para LiveAnalytics mediante la AWS CLI.
-
Ejecute el siguiente comando para verificar que se hayan actualizado los comandos de la CLI de Timestream. Compruebe que create-batch-load-task esté en la lista.
aws timestream-write help -
Prepare un origen de datos según las instrucciones en Preparación de un archivo de datos de carga por lotes.
-
Cree una base de datos y una tabla según las instrucciones de Acceso a Amazon Timestream para LiveAnalytics mediante la AWS CLI.
-
Cree un bucket de S3 para la salida de informes. El bucket debe estar en la misma región. Para obtener más información sobre buckets, consulte Creación, configuración y uso de buckets de Amazon S3.
-
Cree una tarea de carga de lotes. Para ver los pasos, consulte Creación de una tarea de carga de lotes.
-
Confirme el estado de la tarea. Para ver los pasos, consulte Descripción de la tarea de carga por lotes.
Creación de una tarea de carga de lotes
Puede crear una tarea de carga por lotes con el comando create-batch-load-task. Al crear una tarea de carga por lotes mediante la CLI, puede usar un parámetro JSON, cli-input-json, que le permite agregar los parámetros en un único fragmento de JSON. También puede separar esos detalles mediante otros varios parámetros, como data-model-configuration, data-source-configuration, report-configuration, target-database-name y target-table-name.
Para ver un ejemplo, consulta Ejemplo de creación de una tarea de carga por lotes
Descripción de 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 } }
Enumeración de tareas de carga por lotes
Puede enumerar las tareas de carga por lotes de la siguiente manera.
aws timestream-write list-batch-load-tasks
Aparece una salida como se muestra a continuación.
{ "BatchLoadTasks": [ { "TaskId": "<TaskId>", "TaskStatus": "FAILED", "DatabaseName": "BatchLoadExampleDatabase", "TableName": "BatchLoadExampleTable", "CreationTime": 1677167593.266, "LastUpdatedTime": 1677167602.38 } ] }
Reanudación de 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
-
Cree una base de datos de Timestream para LiveAnalytics con un nombre
BatchLoady una tabla con el nombreBatchLoadTest. Compruebe y, si es necesario, ajuste los valores deMemoryStoreRetentionPeriodInHoursyMagneticStoreRetentionPeriodInDays.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}" -
Con la consola, cree un bucket de S3 y copie el archivo
sample.csven esa ubicación. Puede descargar un archivo CSV de muestra en CSV de muestra. -
Con la consola, cree un bucket de S3 para que Timestream para LiveAnalytics redacte un informe si la tarea de carga por lotes finaliza con errores.
-
Cree una tarea de carga de lotes. Asegúrese de reemplazar
$INPUT_BUCKETy$REPORT_BUCKETcon los buckets 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 BatchLoadTestEl comando anterior devuelve la siguiente salida:
{ "TaskId": "TaskId" } -
Compruebe el progreso de la tarea. Asegúrese de reemplazar
$TASK_IDcon el identificador 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": "amzn-s3-demo-bucket" } }, "DataSourceConfiguration": { "DataSourceS3Configuration": { "ObjectKeyPrefix": "sample.csv", "BucketName": "amzn-s3-demo-source-bucket" }, "DataFormat": "CSV", "CsvConfiguration": {} }, "LastUpdatedTime": 1672960387.334 } }