搭配 使用批次載入 AWS CLI - Amazon Timestream

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

搭配 使用批次載入 AWS CLI

設定

若要開始使用批次載入,請執行下列步驟。

  1. AWS CLI 使用 的指示安裝 使用 存取 Amazon Timestream for LiveAnalytics AWS CLI

  2. 執行下列命令,以確認 Timestream CLI命令已更新。驗證 create-batch-load-task是否在清單中。

    aws timestream-write help

  3. 使用 中的指示準備資料來源準備批次載入資料檔案

  4. 使用 中的指示建立資料庫和資料表使用 存取 Amazon Timestream for LiveAnalytics AWS CLI

  5. 建立報告輸出的 S3 儲存貯體。儲存貯體必須位於相同的區域。如需儲存貯體的詳細資訊,請參閱建立、設定和使用 Amazon S3 儲存貯體

  6. 建立批次載入任務。如需這些步驟,請參閱 建立批次載入任務

  7. 確認任務的狀態。如需這些步驟,請參閱 描述批次載入任務

建立批次載入任務

您可以使用 create-batch-load-task命令建立批次載入任務。當您使用 建立批次載入任務時CLI,您可以使用 JSON 參數 cli-input-json,可讓您將參數彙總到單一JSON片段。您也可以使用包括 data-model-configurationdata-source-configuration、、 report-configurationtarget-database-name和 等幾個其他參數來分開這些詳細資訊target-table-name

如需範例,請參閱 建立批次載入任務範例

描述批次載入任務

您可以擷取批次載入任務描述,如下所示。

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

以下是回應範例:

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

列出批次載入任務

您可以列出批次載入任務,如下所示。

aws timestream-write list-batch-load-tasks

輸出顯示如下。

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

繼續批次載入任務

您可以繼續批次載入任務,如下所示。

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

回應可以指出成功或包含錯誤資訊。

建立批次載入任務範例

  1. 為名為 的 LiveAnalytics 資料庫BatchLoad和名為 的資料表建立 TimestreamBatchLoadTest。驗證 ,並視需要調整 MemoryStoreRetentionPeriodInHours和 的值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. 使用主控台建立 S3 儲存貯體,並將sample.csv檔案複製到該位置。您可以在範例 下載CSV範例。 CSV

  3. 使用主控台為 建立 S3 儲存貯體, LiveAnalytics 以便在批次載入任務完成時寫入報告。

  4. 建立批次載入任務。請務必將 $INPUT_BUCKET$REPORT_BUCKET 取代為您在上述步驟中建立的儲存貯體。

    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

    上述命令會傳回下列輸出。

    { "TaskId": "TaskId " }
  5. 檢查任務的進度。請確定您使用上一個步驟中傳回的任務 ID $TASK_ID取代 。

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

範例輸出

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