本文为您介绍如何使用Shell执行数据集成任务。

前提条件

使用Shell执行数据集成任务前,您需要进行以下准备工作:
  • 创建Shell节点任务,详情请参见Shell节点
  • 添加自定义资源组,详情请参见新增自定义资源组
    说明 此处的自定义资源组需要在资源组列表 > 自定义资源组页面添加。

操作步骤

  1. 进入数据开发页面。
    1. 登录DataWorks控制台
    2. 在左侧导航栏,单击工作空间列表
    3. 单击相应工作空间后的进入数据开发
  2. 数据开发页面,双击打开已经创建的Shell节点。在Shell节点编辑页面,输入下述代码。
    shell_datax_home='/home/admin/shell_datax'
    mkdir -p ${shell_datax_home}
    shell_datax_config=${shell_datax_home}/${ALISA_TASK_ID}
    echo '''
    {
        "job": {
            "setting": {
                "speed": {
                    "channel": 1
                },
                "errorLimit": {
                    "record": 0,
                    "percentage": 0.02
                }
            },
            "content": [
                {
                    "reader": {
                        "name": "streamreader",
                        "parameter": {
                            "column": [
                                {
                                    "value": "${bdp.system.bizdate}",
                                    "type": "string"
                                },
                                {
                                    "value": "${bdp.system.cyctime}",
                                    "type": "string"
                                },
                                {
                                    "value": "${params1}__${params2}",
                                    "type": "string"
                                },
                                {
                                    "value": 19890427,
                                    "type": "long"
                                },
                                {
                                    "value": "1989-06-04 00:00:00",
                                    "type": "date"
                                },
                                {
                                    "value": true,
                                    "type": "bool"
                                },
                                {
                                    "value": "test",
                                    "type": "bytes"
                                }
                            ],
                            "sliceRecordCount": 10
                        }
                    },
                    "writer": {
                        "name": "streamwriter",
                        "parameter": {
                            "print": true,
                            "encoding": "UTF-8"
                        }
                    }
                }
            ]
        }
    }
    ''' > ${shell_datax_config}
    
    params1=$1
    params2=$2
    datax_params='-p "-Dparams1=${params1} -Dparams2=${params2}"'
    echo "`date '+%Y-%m-%d %T'` shell datax config: ${shell_datax_config}"
    echo "`date '+%Y-%m-%d %T'` shell datax params: -p \"-Dparams1=${params1} -Dparams2=${params2}\""
    /home/admin/datax3/bin/datax.py ${shell_datax_config} -p "-Dparams1=${params1} -Dparams2=${params2}"
    shell_datax_run_result=$?
    
    rm ${shell_datax_config}
    
    if [ ${shell_datax_run_result} -ne 0 ]
    then
        echo "`date '+%Y-%m-%d %T'` shell datax ended failed :("
        exit -1
    fi
    echo "`date '+%Y-%m-%d %T'` shell datax ended success~")
    代码说明如下:
    • 生成临时数据集成配置文件,您只需要修改配置文件内容即可,详情请参见GitHub
    • 读取的调度参数分别为$1$2,详情请参见调度参数
    • 执行数据集成任务,进行数据同步。
    • 删除临时文件。
    • 返回任务成功或失败的判断结果,0代表成功。
  3. 单击右侧的调度配置进行系统参数的配置,详情请参见调度配置
  4. 配置完成后,提交发布Shell节点。
  5. 单击页面右上角的运维中心,进入运维中心页面。
  6. 在左侧导航栏,单击周期运维任务 > 周期任务
  7. 展开周期任务列表,单击相应节点后的更多 > 修改资源组
  8. 修改资源组对话框,选择资源组,单击确定
  9. 单击相应节点后的测试,并查看测试结果。