DynamoDB ExportDataFormat - AWS Data Pipeline

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

DynamoDB ExportDataFormat

將結構定義套用至 DynamoDB 資料表,以便透過 Hive 查詢存取該資料表。搭配 HiveCopyActivity 物件及 DynamoDBDataNodeS3DataNode 輸入和輸出使用 DynamoDBExportDataFormatDynamoDBExportDataFormat 具有下列優點:

  • 同時提供 DynamoDB 援和 Amazon S3 支援

  • 可讓您在 Hive 查詢中透過特定資料行篩選資料

  • 從 DynamoDB 匯出所有屬性,即使您有稀疏結構描述

注意

DynamoDB Boolean (布林) 類型不會映射到 Hive Boolean (布林) 類型。但是,您可以將 DynamoDB 整數值 0 或 1 映射到 Hive Boolean 類型。

範例

以下範例會示範如何使用 HiveCopyActivityDynamoDBExportDataFormat 來將資料從一個 DynamoDBDataNode 複製到另一個,同時根據時間戳記來進行篩選。

{ "objects": [ { "id" : "DataFormat.1", "name" : "DataFormat.1", "type" : "DynamoDBExportDataFormat", "column" : "timeStamp BIGINT" }, { "id" : "DataFormat.2", "name" : "DataFormat.2", "type" : "DynamoDBExportDataFormat" }, { "id" : "DynamoDBDataNode.1", "name" : "DynamoDBDataNode.1", "type" : "DynamoDBDataNode", "tableName" : "item_mapped_table_restore_temp", "schedule" : { "ref" : "ResourcePeriod" }, "dataFormat" : { "ref" : "DataFormat.1" } }, { "id" : "DynamoDBDataNode.2", "name" : "DynamoDBDataNode.2", "type" : "DynamoDBDataNode", "tableName" : "restore_table", "region" : "us_west_1", "schedule" : { "ref" : "ResourcePeriod" }, "dataFormat" : { "ref" : "DataFormat.2" } }, { "id" : "EmrCluster.1", "name" : "EmrCluster.1", "type" : "EmrCluster", "schedule" : { "ref" : "ResourcePeriod" }, "masterInstanceType" : "m1.xlarge", "coreInstanceCount" : "4" }, { "id" : "HiveTransform.1", "name" : "Hive Copy Transform.1", "type" : "HiveCopyActivity", "input" : { "ref" : "DynamoDBDataNode.1" }, "output" : { "ref" : "DynamoDBDataNode.2" }, "schedule" : { "ref" : "ResourcePeriod" }, "runsOn" : { "ref" : "EmrCluster.1" }, "filterSql" : "`timeStamp` > unix_timestamp(\"#{@scheduledStartTime}\", \"yyyy-MM-dd'T'HH:mm:ss\")" }, { "id" : "ResourcePeriod", "name" : "ResourcePeriod", "type" : "Schedule", "period" : "1 Hour", "startDateTime" : "2013-06-04T00:00:00", "endDateTime" : "2013-06-04T01:00:00" } ] }

語法

選用欄位 描述 槽類型
欄位 針對此資料節點描述的資料,含每個欄位所指定之資料類型的欄位名稱。例如:hostname STRING 字串
parent 目前物件的父系,其插槽會被繼承。 引用對象,例如「父」:{「ref」:「myBaseObjectID」}

執行時間欄位 描述 槽類型
@version 建立物件使用的管道版本。 字串

系統欄位 描述 槽類型
@error 描述格式錯誤物件的錯誤 字串
@pipelineId 此物件所屬管道的 ID 字串
@sphere 物件範圍代表其在生命週期中的位置:Component 物件會引發執行 Attempt 物件的 Instance 物件 字串