DynamoDBExportDataFormat - AWS Data Pipeline

DynamoDBExportDataFormat

将架构应用于 DynamoDB 表以使其可供 Hive 查询访问。将 DynamoDBExportDataFormatHiveCopyActivity 对象和 DynamoDBDataNodeS3DataNode 输入和输出一起使用。DynamoDBExportDataFormat 具有以下优势:

  • 提供 DynamoDB 和 Amazon S3 支持

  • 允许您在 Hive 查询中按特定列筛选数据

  • 导出 DynamoDB 中的所有属性(即使您有一个稀疏架构)

注意

DynamoDB 布尔类型不会映射到 Hive 布尔类型。不过,可以将 DynamoDB 整数值 0 或 1 映射到 Hive 布尔类型。

示例

以下示例说明如何使用 HiveCopyActivityDynamoDBExportDataFormat 将数据从一个 DynamoDBDataNode 复制到另一个 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" } ] }

语法

可选字段 描述 槽类型
column 具有该数据节点描述的数据的各个字段指定的数据类型的列名。例如:hostname STRING String
parent 槽将继承自的当前对象的父级。 引用对象,例如,"parent":{"ref":"myBaseObjectId"}

运行时字段 描述 槽类型
@version 用来创建对象的管道版本。 String

系统字段 描述 槽类型
@error 用于描述格式不正确的对象的错误消息 String
@pipelineId 该对象所属的管道的 ID String
@sphere 对象的范围指明对象在生命周期中的位置:组件对象产生实例对象,后者执行尝试对象 String