AWS Data Pipeline 现已不再向新客户提供。AWS Data Pipeline 的现有客户可以继续正常使用该服务。了解更多
SqlActivity
在数据库上运行 SQL 查询 (脚本)。
示例
以下是该对象类型的示例。
{ "id" : "MySqlActivity", "type" : "SqlActivity", "database" : { "ref": "MyDatabaseID" }, "script" : "SQLQuery" | "scriptUri" :s3://scriptBucket/query.sql, "schedule" : { "ref": "MyScheduleID" }, }
语法
| 必填字段 | 描述 | 槽类型 |
|---|---|---|
| database | 要在其上运行提供的 SQL 脚本的数据库。 | 引用对象,例如,"database":{"ref":"myDatabaseId"} |
| 对象调用字段 | 描述 | 槽类型 |
|---|---|---|
| schedule |
该对象在计划间隔的执行中调用。您必须指定对另一个对象的计划引用,以便设置该对象的依赖项执行顺序。您可以明确地针对该对象设置计划,例如通过指定 在大多数情况下,最好将计划引用放在默认管道对象上,以便所有对象继承该计划。 如果管道有一个嵌套在主计划中的计划树,则可以创建具有计划引用的父对象。有关示例可选计划配置的更多信息,请参阅 https://docs.aws.amazon.com/datapipeline/latest/DeveloperGuide/dp-object-schedule.html。 |
引用对象,例如,"schedule":{"ref":"myScheduleId"} |
| 所需的组 (下列选项之一是必需的) | 描述 | 槽类型 |
|---|---|---|
| script | 要运行的 SQL 脚本。您必须指定 script 或 scriptUri。在将脚本存储在 Amazon S3 中时,脚本不会计算为表达式。在将脚本存储在 Amazon S3 中时,为 scriptArgument 指定多个值会很有用。 | 字符串 |
| scriptUri | 一个 URI,指定要在此活动中执行的 SQL 脚本的位置。 | 字符串 |
| 所需的组 (下列选项之一是必需的) | 描述 | 槽类型 |
|---|---|---|
| runsOn | 运行活动或命令的计算资源。例如,Amazon EC2 实例或 Amazon EMR 集群。 | 引用对象,例如,"runsOn":{"ref":"myResourceId"} |
| workerGroup | 工作线程组。这可用于路由任务。如果您提供 runsOn 值并且存在 workerGroup,则将忽略 workerGroup |
字符串 |
| 可选字段 | 描述 | 槽类型 |
|---|---|---|
| attemptStatus | 来自远程活动的最近报告的状态。 | 字符串 |
| attemptTimeout | 远程工作完成的超时时间。如果设置此字段,则可能会重试未在设定的开始时间内完成的远程活动。 | 周期 |
| dependsOn | 指定与另一个可运行对象的依赖关系。 | 引用对象,例如,"dependsOn":{"ref":"myActivityId"} |
| failureAndRerunMode | 描述依赖项失败或重新运行时的使用者节点行为。 | 枚举 |
| input | 输入数据的位置。 | 引用对象,例如,"input":{"ref":"myDataNodeId"} |
| lateAfterTimeout | 自管道的计划开始时间后的时段,对象运行必须在该时段内开始。 | 周期 |
| maxActiveInstances | 组件的并发活动实例的最大数量。重新运行不计入活动实例数中。 | 整数 |
| maximumRetries | 失败后的最大重试次数 | 整数 |
| onFail | 当前对象失败时要运行的操作。 | 引用对象,例如,"onFail":{"ref":"myActionId"} |
| onLateAction | 在自管道的计划开始时间后的时段 (由“lateAfterTimeout”指定) 内未计划对象或对象仍未完成时应触发的操作。 | 引用对象,例如,"onLateAction":{"ref":"myActionId"} |
| onSuccess | 当前对象成功时要运行的操作。 | 引用对象,例如,"onSuccess":{"ref":"myActionId"} |
| output | 输出数据的位置。这仅在从脚本 (例如,#{output.tablename}) 中引用以及通过在输出数据节点中设置“createTableSql”来创建输出表时会很有用。SQL 查询的输出不会写入输出数据节点。 |
引用对象,例如,"output":{"ref":"myDataNodeId"} |
| parent | 槽将继承自的当前对象的父级。 | 引用对象,例如,"parent":{"ref":"myBaseObjectId"} |
| pipelineLogUri | 用于上传管道日志的 S3 URI (例如“s3://BucketName/Key/”)。 | 字符串 |
| precondition | (可选) 定义先决条件。在满足所有先决条件之前,数据节点不会标记为“READY”。 | 引用对象,例如,"precondition":{"ref":"myPreconditionId"} |
| 队列 | [仅 Amazon Redshift] 对应于 Amazon Redshift 中的 query_group 设置,允许您根据在队列中的放置位置来分配并发活动以及确定它们的优先级。Amazon Redshift 将同时连接的数量限制为 15。有关更多信息,请参阅《Amazon Redshift 数据库开发人员指南》中的向队列分配查询。 | 字符串 |
| reportProgressTimeout | 远程工作对 reportProgress 的连续调用的超时时间。如果设置此字段,则未报告指定时段的进度的远程活动可能会被视为停滞且已重试。 | 周期 |
| retryDelay | 两次重试之间的超时时间。 | 周期 |
| scheduleType |
计划类型允许您指定应在间隔的结尾还是开头计划您管道定义中的对象。值包括:
|
枚举 |
| scriptArgument | 脚本的变量列表。或者,您可以直接在脚本字段中放置表达式。在将脚本存储在 Amazon S3 中时,scriptArgument 的多个值会很有用。示例:#{format(@scheduledStartTime, "YY-MM-DD HH:MM:SS"}\n#{format(plusPeriod(@scheduledStartTime, "1 day"), "YY-MM-DD HH:MM:SS"} | 字符串 |
| 运行时字段 | 描述 | 槽类型 |
|---|---|---|
| @activeInstances | 当前计划的有效实例对象的列表。 | 引用对象,例如,"activeInstances":{"ref":"myRunnableObjectId"} |
| @actualEndTime | 该对象的执行完成时间。 | 日期时间 |
| @actualStartTime | 该对象的执行开始时间。 | 日期时间 |
| cancellationReason | 该对象被取消时显示的 cancellationReason。 | 字符串 |
| @cascadeFailedOn | 对象在其上失败的依赖项链的描述。 | 引用对象,例如,"cascadeFailedOn":{"ref":"myRunnableObjectId"} |
| emrStepLog | 仅在尝试 EMR 活动时可用的 EMR 步骤日志 | 字符串 |
| errorId | 该对象失败时显示的 errorId。 | 字符串 |
| errorMessage | 该对象失败时显示的 errorMessage。 | 字符串 |
| errorStackTrace | 该对象失败时显示的错误堆栈跟踪。 | 字符串 |
| @finishedTime | 该对象完成其执行的时间。 | 日期时间 |
| hadoopJobLog | 在尝试基于 EMR 的活动时可用的 Hadoop 任务日志。 | 字符串 |
| @healthStatus | 对象的运行状况,反映进入终止状态的上个对象实例成功还是失败。 | 字符串 |
| @healthStatusFromInstanceId | 进入终止状态的上个实例对象的 ID。 | 字符串 |
| @healthStatusUpdatedTime | 上次更新运行状况的时间。 | 日期时间 |
| hostname | 已执行任务尝试的客户端的主机名。 | 字符串 |
| @lastDeactivatedTime | 上次停用该对象的时间。 | 日期时间 |
| @latestCompletedRunTime | 已完成执行的最新运行的时间。 | 日期时间 |
| @latestRunTime | 已计划执行的最新运行的时间。 | 日期时间 |
| @nextRunTime | 计划下次运行的时间。 | 日期时间 |
| reportProgressTime | 远程活动报告进度的最近时间。 | 日期时间 |
| @scheduledEndTime | 对象的计划结束时间。 | 日期时间 |
| @scheduledStartTime | 对象的计划开始时间。 | 日期时间 |
| @status | 该对象的状态。 | 字符串 |
| @version | 用来创建对象的管道版本。 | 字符串 |
| @waitingOn | 该对象在其上处于等待状态的依赖项列表的描述。 | 引用对象,例如,"waitingOn":{"ref":"myRunnableObjectId"} |
| 系统字段 | 描述 | 槽类型 |
|---|---|---|
| @error | 用于描述格式不正确的对象的错误消息。 | 字符串 |
| @pipelineId | 该对象所属的管道的 ID。 | 字符串 |
| @sphere | 对象的范围指明对象在生命周期中的位置:组件对象产生实例对象,后者执行尝试对象。 | 字符串 |