本文为您介绍如何基于Dataphin构建Shell类型的离线计算任务。

前提条件

完成上传JSON资源包,详情请参见新建资源

背景信息

Shell任务中引用到的JSON资源包需提前创建,因此需要您在资源管理中上传JSON资源包,然后在Shell任务中引用。本文以MySQL数据库为例为您介绍,请您下载JSON文件

新建Shell任务的权限限制,详情请参见数据开发权限列表

操作步骤

  1. 登录Dataphin控制台
  2. 在Dataphin控制台页面,选择工作区地域后,单击进入Dataphin>>
    您可以通过以下方式,快速进入数据开发模块:
    • 单击快速开始相关工作区域的数据研发
    • 单击快速进入研发项目区域的DevBasic项目,选择开发数据的项目空间。
    说明
    • 如果您通过快速开始相关工作进入数据开发模块,则跳过步骤3。
    • 如果您通过快速进入研发项目进入数据开发模块,则跳过步骤3和4。
  3. 在Dataphin首页,单击顶部菜单栏的研发
  4. 在数据开发页面,单击项目名称后的test图标后,单击DevBasic页签,选择数据开发的项目空间(DevBasic项目)。
    如果您当前访问的是DevBasic项目,且项目空间为您的数据开发空间,则不需要选择项目空间。
  5. 进入计算任务页面。
    1. 在数据开发页面,单击数据处理页签。
      如果进入数据开发页面后,系统默认进入数据处理页签,则无需再次单击数据处理页签。
    2. 数据处理页签,单击左侧导航栏agaga计算任务图标。
  6. 计算任务页面,进入新建文件对话框。
    • 单击计算任务后的图标,选择通用脚本 > SHELL
    • 单击项目名称后的图标,选择数据处理 > 计算任务 > SHELL
    • 开发首页,单击SHELL后的图标。
  7. 编写并运行代码。
    1. 新建文件对话框,配置参数。
      参数 描述
      名称 填写离线计算任务的名称,例如DataX。
      调度类型 选择任务的调度类型。调度类型包括:
      • 周期性节点:自动参与系统的周期性调度。
      • 手动节点:需要手动触发任务的运行。
      描述 填写对任务的简单描述。
      选择目录 选择离线计算任务的目录。
    2. 单击确定
    3. 代码编写页面,编写Shell离线计算任务的代码。
      代码示例如下。
      @required_resource{required_memory=2Gb;required_cpus=1.0}
      @resource_reference{"datax.json"}
      python $DATA_HOME/bin/datax.py --jvm '-Xms2g -Xmx2g' datax.json
      其中,
      • required_resource{},自定义配置所需的资源大小。
      • 系统已内置DataX_Home为DataX的安装目录,DataX入口在DataX安装的bin文件下。
      • --jvm '-Xms2g -Xmx2g'指定DataX实际运行时的JVM内存,建议您将内存的大小设置成与required_resource中的required_memory一致。
      对于所需资源较小的DataX任务,您可以使用如下代码示例。
      @resource_reference{"datax.json"}
      python $DATA_HOME/bin/datax.py datax.json
    4. 检查代码。
      代码编写完成后,单击预编译,系统帮助您检查编写的SQL代码的语法。

      如果预编译失败,您可以单击页面上方的格式化,系统自动帮助您调整语法格式。调整完格式,您可以单击刷新,刷新页面上的代码。

    5. 单击页面右上角的执行,运行代码。
  8. 配置调度参数。
    • 如果离线计算任务的调度类型为周期性节点,则需要配置调度参数,详情请参见调度配置
    • 如果离线计算任务的调度类型为手动节点,需要手动触发任务的调度。
  9. 在代码编写页面,保存、提交和发布Shell任务。
    1. 单击页面右上方的图标,保存代码。
    2. 单击页面右上方的图标,提交代码。
    3. 提交备注对话框,填写备注信息。
    4. 单击确定并提交
    5. 发布Shell任务至生产环境。
      • 如果您的开发模式是Dev-Prod模式,则需要发布Shell任务,详情请参见管理发布任务
      • 如果您的开发模式是Basic模式,则提交成功的Shell任务,即可参与生产环境的调度。