AWS Data Pipeline 不再向新客户提供。的现有客户 AWS Data Pipeline 可以继续照常使用该服务。了解更多
本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
HiveCopyActivity
在EMR集群上运行 Hive 查询。 HiveCopyActivity
可以更轻松地在 DynamoDB 表之间复制数据。 HiveCopyActivity
接受 HiveQL 语句,用于在列和行级别筛选来自 DynamoDB 的输入数据。
示例
以下示例说明如何使用 HiveCopyActivity
和 DynamoDBExportDataFormat
将数据从一个 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" } ] }
语法
对象调用字段 | 描述 | 槽类型 |
---|---|---|
schedule | 该对象在计划间隔的执行中调用。用户必须指定对另一个对象的计划引用,以便设置该对象的依赖项执行顺序。用户可以通过在对象上显式设置时间表来满足此要求,例如,指定 “schedule”: {"ref”: "DefaultSchedule“}。在大多数情况下,最好将计划引用放在默认管道对象上,以便所有对象继承该计划。或者,如果管道有一个计划树 (计划位于主计划中),用户可以创建具有计划引用的父对象。有关示例可选计划配置的更多信息,请参阅 https://docs.aws.amazon.com/datapipeline/latest/DeveloperGuide/dp-object-schedule.html。 | 参考对象,例如 “日程安排”:{“ref”:” myScheduleId “} |
所需的组 (下列选项之一是必需的) | 描述 | 槽类型 |
---|---|---|
runsOn | 指定在其上运行的集群。 | 引用对象,例如 runsOn ““: {" ref”:” myResourceId “} |
workerGroup | 工作线程组。这可用于路由任务。如果您提供 runsOn 值并且存在 workerGroup ,则将忽略 workerGroup |
String |
可选字段 | 描述 | 槽类型 |
---|---|---|
attemptStatus | 来自远程活动的最近报告的状态。 | String |
attemptTimeout | 远程工作完成的超时时间。如果设置此字段,则可能会重试未在设定的开始时间内完成的远程活动。 | 周期 |
dependsOn | 指定与另一个可运行对象的依赖关系。 | 引用对象,例如 dependsOn ““: {" ref”:” myActivityId “} |
failureAndRerun模式 | 描述依赖项失败或重新运行时的使用者节点行为。 | 枚举 |
filterSql | 一个 Hive SQL 语句片段,用于筛选要复制的 DynamoDB 或 Amazon S3 数据的子集。过滤器应仅包含谓词,不能以WHERE 子句开头,因为它是自动 AWS Data Pipeline 添加的。 |
String |
input | 输入数据源。这必须是 S3DataNode 或 DynamoDBDataNode 。如果您使用 DynamoDBNode ,请指定 DynamoDBExportDataFormat 。 |
参考对象,例如 “输入”:{"ref”:” myDataNode Id "} |
lateAfterTimeout | 管道启动后经过的时间,在此时间内,对象必须完成。仅当计划类型未设置为 ondemand 时才会触发。 |
周期 |
maxActiveInstances | 组件的并发活动实例的最大数量。重新运行不计入活动实例数中。 | 整数 |
maximumRetries | 失败后的最大重试次数。 | 整数 |
onFail | 当前对象失败时要运行的操作。 | 引用对象,例如 onFail ““: {" ref”:” myActionId “} |
onLateAction | 在尚未计划对象或对象仍未完成的情况下将触发的操作。 | 引用对象,例如 onLateAction ““: {" ref”:” myActionId “} |
onSuccess | 当前对象成功时要运行的操作。 | 引用对象,例如 onSuccess ““: {" ref”:” myActionId “} |
output | 输出数据源。如果输入是 S3DataNode ,则这必须是 DynamoDBDataNode 。否则,这可以是 S3DataNode 或 DynamoDBDataNode 。如果您使用 DynamoDBNode ,请指定 DynamoDBExportDataFormat 。 |
参考对象,例如 “输出”:{"ref”:” myDataNode Id "} |
parent | 槽将继承自的当前对象的父级。 | 引用对象,例如 “父对象”:{"ref”:” myBaseObject Id "} |
pipelineLogUri | Amazon S3URI,例如 's3://BucketName/Key/' ,用于上传管道的日志。 |
String |
postActivityTaskConfig | 要运行的活动后配置脚本。它由 Amazon S3 中的 shell 脚本和参数列表组成。URI | 参考对象,例如 “postActivityTaskConfig”:{“ref”:” myShellScript ConfigId “} |
preActivityTaskConfig | 要运行的活动前配置脚本。它由 Amazon S3 中的 shell 脚本和参数列表组成。URI | 参考对象,例如 “preActivityTaskConfig”:{“ref”:” myShellScript ConfigId “} |
precondition | (可选) 定义先决条件。在满足所有先决条件之前,数据节点不会被标记 READY “”。 | 参考对象,例如 “前提条件”:{“ref”:” myPreconditionId “} |
reportProgressTimeout | 远程工作对 reportProgress 的连续调用的超时时间。如果设置此字段,则未报告指定时段的进度的远程活动可能会被视为停滞且已重试。 |
周期 |
resizeClusterBefore正在跑步 | 在执行此活动前,重新调整集群的大小,以适应指定为输入或输出的 DynamoDB 数据节点。注意如果您的活动使用 |
布尔值 |
resizeClusterMax实例 | 调整大小算法可以请求的最大实例数的限制 | 整数 |
retryDelay | 两次重试之间的超时时间。 | 周期 |
scheduleType | 计划类型允许您指定应在间隔的结尾还是开头计划您管道定义中的对象。时间序列风格计划表示在每次间隔的结尾计划实例,而 Cron 风格计划表示应在每次间隔的开头计划实例。按需计划让您可以在每次激活时运行一次管道。这意味着,您不需要克隆或重新创建管道以再次运行它。如果您使用按需计划,则必须在默认对象中指定该计划,并且必须是唯一为管道中的对象 scheduleType 指定的计划。要使用按需管道,您只需为后续每次运行调用该 ActivatePipeline 操作即可。值包括:cron、ondemand 和 timeseries。 | 枚举 |
运行时字段 | 描述 | 槽类型 |
---|---|---|
@activeInstances | 当前计划的有效实例对象的列表。 | 引用对象,例如 activeInstances ““: {" ref”:” myRunnableObject Id "} |
@actualEndTime | 该对象的执行完成时间。 | DateTime |
@actualStartTime | 该对象的执行开始时间。 | DateTime |
cancellationReason | cancellationReason 如果此对象已取消,则为。 | String |
@cascadeFailedOn | 对象在其上失败的依赖项链的描述。 | 引用对象,例如 cascadeFailedOn ““: {" ref”:” myRunnableObject Id "} |
emrStepLog | Amazon EMR 步骤日志仅在EMR活动尝试时可用。 | String |
errorId | errorId 如果此对象失败,则为。 | String |
errorMessage | errorMessage 如果此对象失败,则为。 | String |
errorStackTrace | 该对象失败时显示的错误堆栈跟踪。 | String |
@finishedTime | 该对象完成其执行的时间。 | DateTime |
hadoopJobLog | Hadoop 作业日志可用于尝试进行EMR基于活动的情况。 | String |
@healthStatus | 对象的运行状况,反映进入终止状态的上个对象实例成功还是失败。 | String |
@healthStatusFromInstanceId | 进入终止状态的上个实例对象的 ID。 | String |
@ T healthStatusUpdated ime | 上次更新运行状况的时间。 | DateTime |
hostname | 已执行任务尝试的客户端的主机名。 | String |
@lastDeactivatedTime | 上次停用该对象的时间。 | DateTime |
@ T latestCompletedRun ime | 已完成执行的最新运行的时间。 | DateTime |
@latestRunTime | 已计划执行的最新运行的时间。 | DateTime |
@nextRunTime | 计划下次运行的时间。 | DateTime |
reportProgressTime | 远程活动报告进度的最近时间。 | DateTime |
@scheduledEndTime | 对象的计划结束时间。 | DateTime |
@scheduledStartTime | 对象的计划开始时间。 | DateTime |
@status | 该对象的状态。 | String |
@version | 用来创建对象的管道版本。 | String |
@waitingOn | 该对象在其上处于等待状态的依赖项列表的描述。 | 引用对象,例如 waitingOn ““: {" ref”:” myRunnableObject Id "} |
系统字段 | 描述 | 槽类型 |
---|---|---|
@error | 用于描述格式不正确的对象的错误消息。 | String |
@pipelineId | 该对象所属的管道的 ID。 | String |
@sphere | 对象的范围指明对象在生命周期中的位置:组件对象产生实例对象,后者执行尝试对象。 | String |