【问题标题】:Amazon SWF vs Data Pipeline for Pig Scripts用于 Pig 脚本的 Amazon SWF 与 Data Pipeline
【发布时间】:2014-09-04 20:24:19
【问题描述】:

您好,我想在 Amazon EMR 上运行一个每日数据导入猪脚本。我应该使用简单工作流还是数据管道来安排和监控作业?我尝试通过数据管道,但它似乎需要一个输出。如果我正在运行自定义猪脚本,这个输出会进入什么?他们是否希望您使用默认的预制 pig 脚本来执行数据导入任务/作业?

在我的例子中,我有一个猪脚本,它从 S3 输入中获取并执行一些数据转换,然后推送到 dynamodb。试图在数据管道中安排这个猪脚本,我看到有一个猪活动类型和一个 s3 到 dynamodb 模板,但我不知道如何自定义/修改它,以便它运行我的猪脚本并在它去之前转换数据发电机分贝。这个过程中s3和dynamodb映射设置在哪里?由于 pig 脚本从 s3 导入并单独导出到 dynamodb,是否是多余的?

【问题讨论】:

    标签: amazon-swf amazon-data-pipeline


    【解决方案1】:

    简单的工作流程对于管理工作流程很有用。 非常简单来说,它是一个队列,具有许多功能,如历史跟踪、信号、计时器等。

    当您需要 ETL 类型的引擎时,数据管道非常有用。它为您提供了定期调度任务、处理不同任务之间的依赖关系和故障重试处理的能力。它还让您不必担心启动和关闭 EMR / EC2 等资源。

    您始终可以通过编写自己的状态机在 SWF 之上构建所有这些东西。但是 IMO,最好将 Data Pipeline 用于您的用例。


    要使用 Data Pipeline 运行自定义 Pig 作业,您应该能够禁用暂存。

    阶段 = 假

    'stage' 是 PigActivity 上的一个可选字段。

    {
      "name": "DefaultActivity",
      "id": "ActivityId_1",
      "type": "PigActivity",
      "stage": "false",
      "scriptUri": "s3://bucket/query",
      "scriptVariable": [
        "param1=value1",
        "param2=value2"
      ],
      "schedule": {
        "ref": "ScheduleId_l"
      },
      "runsOn": {
        "ref": "EmrClusterId_1"
      }
    }
    

    【讨论】:

      猜你喜欢
      • 2015-02-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-01-05
      • 1970-01-01
      • 2014-12-28
      • 2015-04-04
      • 1970-01-01
      相关资源
      最近更新 更多