Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
En utilisant le chargement par lots avec le AWS CLI
Configuration
Pour commencer à utiliser le chargement par lots, suivez les étapes suivantes.
-
Installez le AWS CLI en suivant les instructions fournies à l'adresseAccès à Amazon Timestream LiveAnalytics pour utiliser le AWS CLI.
-
Exécutez la commande suivante pour vérifier que les CLI commandes Timestream ont été mises à jour. Vérifiez que cela create-batch-load-task figure dans la liste.
aws timestream-write help
-
Préparez une source de données en suivant les instructions figurant à l'adressePréparation d'un fichier de données de chargement par lots.
-
Créez une base de données et une table en suivant les instructions de l'adresseAccès à Amazon Timestream LiveAnalytics pour utiliser le AWS CLI.
-
Créez un compartiment S3 pour la sortie du rapport. Le compartiment doit se trouver dans la même région. Pour plus d'informations sur les compartiments, consultez Création, configuration et utilisation des compartiments Amazon S3.
-
Créez une tâche de chargement par lots. Pour les étapes, consultez Création d'une tâche de chargement par lots.
-
Confirmez le statut de la tâche. Pour les étapes, consultez Décrire la tâche de chargement par lots.
Création d'une tâche de chargement par lots
Vous pouvez créer une tâche de chargement par lots à l'aide de la create-batch-load-task
commande. Lorsque vous créez une tâche de chargement par lots à l'aide duCLI, vous pouvez utiliser un JSON paramètre qui vous permet d'agréger les paramètres en un seul JSON fragment. cli-input-json
Vous pouvez également séparer ces détails à l'aide de plusieurs autres paramètresdata-model-configuration
, notammentdata-source-configuration
,report-configuration
,target-database-name
, ettarget-table-name
.
Pour obtenir un exemple, veuillez consulter Exemple de création d'une tâche de chargement par lots.
Décrire la tâche de chargement par lots
Vous pouvez récupérer la description d'une tâche de chargement par lots comme suit.
aws timestream-write describe-batch-load-task --task-id
<value>
Voici un exemple de réponse.
{ "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 } }
Lister les tâches de chargement par lots
Vous pouvez répertorier les tâches de chargement par lots comme suit.
aws timestream-write list-batch-load-tasks
Une sortie apparaît comme suit.
{ "BatchLoadTasks": [ { "TaskId": "
<TaskId>
", "TaskStatus": "FAILED", "DatabaseName": "BatchLoadExampleDatabase", "TableName": "BatchLoadExampleTable", "CreationTime": 1677167593.266, "LastUpdatedTime": 1677167602.38 } ] }
Reprendre la tâche de chargement par lots
Vous pouvez reprendre une tâche de chargement par lots comme suit.
aws timestream-write resume-batch-load-task --task-id
<value>
Une réponse peut indiquer un succès ou contenir des informations d'erreur.
Exemple de création d'une tâche de chargement par lots
-
Créez un flux temporel pour la LiveAnalytics base de données nommée
BatchLoad
et une table nommée.BatchLoadTest
Vérifiez et, si nécessaire, ajustez les valeurs pourMemoryStoreRetentionPeriodInHours
etMagneticStoreRetentionPeriodInDays
.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}"
-
À l'aide de la console, créez un compartiment S3 et copiez le
sample.csv
fichier à cet emplacement. Vous pouvez télécharger un extrait CSV sur sample CSV. -
À l'aide de la console, créez un compartiment S3 pour que Timestream LiveAnalytics rédige un rapport si la tâche de chargement par lots aboutit à des erreurs.
-
Créez une tâche de chargement par lots. Assurez-vous de remplacer
$INPUT_BUCKET
et par$REPORT_BUCKET
les compartiments que vous avez créés au cours des étapes précédentes.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 BatchLoadTestLa commande précédente renvoie le résultat suivant.
{ "TaskId": "
TaskId
" } -
Vérifiez l'avancement de la tâche. Assurez-vous de le
$TASK_ID
remplacer par l'identifiant de tâche renvoyé à l'étape précédente.aws timestream-write describe-batch-load-task --task-id
$TASK_ID
Exemple de sortie
{ "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 } }