OneNET应用开发环境 由浅入深应用开发环境
应用开发环境介绍 初识应用开发环境 开发入门 开发进阶
开发指南
开发应用 定义数据对象 创建聚合对象 开发脚本 管理事件 开发流 配置审批流程 开发标准页面 开发高级页面 开发商业流 配置连接器 开发Email发送功能 配置工作流 开发报表 自定义BO 管理平台

开发作业

一个ETL作业通常包含很多小作业、转换等。本节介绍如何开发一个简单的ETL作业,实现从应用开发环境数据库中抽取User表的增量数据,经过转换后加载到租户自建库中,方便对数据进行集中处理。

背景信息

使用ETL引擎,您可以从应用开发环境数据库中抽取数据,并进行数据转换,将数据加载到租户自建库中。ETL在数据转换方面提供了很灵活的各种操作功能,例如在数据输入输出之间,可进行检验、连接、分割、合并、转置、排序、过滤、替换等操作。

前提条件

已创建外部数据库(如MySQL类型数据库),并获取到数据库相关信息,例如数据库IP、端口、数据库名、登录用户名以及密码等。

操作步骤

  1. 在首页单击“管理”。
  2. 选择“ETL 引擎(Beta) > 作业开发”。
  3. 新建转换,实现从应用开发环境数据库抽取数据并输出到租户自建库中。

    一个简单的转换通常包括数据输入、一些数据转换步骤、数据输出、错误处理几个流程。

    1. 单击,选择“转换”。新建一个转换。

      图 1 新建转换

    2. 从输入中选择“获取系统信息”拖曳至右侧空白区域,双击该图标,字段“名称”配置为“collect_time”,“类型”配置为“系统日期(可变)”。单击“确定”。

      该配置目的是获取当前时间。

      图 2 拖曳并配置“获取系统信息”

    3. 从脚本中选择“JavaScript脚本”拖曳至右侧。

      “JavaScript脚本”用于执行JavaScript代码。

    4. 按住“Shift”,选择“获取系统信息”连线至“JavaScript脚本”,连接两个图标。

    5. 双击“JavaScript脚本”图标。

      弹出“JavaScript代码”配置框。

    6. 在“JavaScript代码”中将脚本配置为“var dataString=date2str(collect_time, 'yyyy-MM-dd hh:mm:ss')”,单击“确定”。

      该配置用于将日期转换成字符,赋值给变量“dataString”。

      图 3 配置“JavaScript代码”

    7. 从Bingo中选择“Bingo查询”拖曳至右侧。

      Bingo文件中图元是我们基于ETL进行定制开发的。功能介绍如下:

      • “Bingo Rest”用于从外部Rest接口获取数据。

        表 1 Bingo Rest配置说明

        页签

        参数

        说明

        General

        URL

        外部Rest接口的URL地址。

        从字段中获取URL?

        控制是否从字段中获取Rest接口的URL。

        URL字段

        如果勾选了“从字段中获取URL?”,请配置URL字段名。

        Http method

        下拉框选择Rest方法:

        • POST
        • GET

        是否后台批量查询?

        控制是否后台批量查询数据。

        若不勾选,根据用户的入参只查询一次。

        批量采集模式

        如果勾选了“是否后台批量查询?”,请配置批量采集模式,分为如下三种方式:

        • cursor:外部接口返回结果需要携带“cursor”字段,系统根据此返回字段值循环查询,直到此字段值返回为空。
        • pagination:系统会将查询记录自动分页,并将页码字段值+1,系统循环调接口查询记录,直到记录返回为空。
        • offset:系统将“offset”字段值累加返回的记录条数,并循环调接口查询记录,直到记录返回为空。

        cursor字段/PageNum字段/Offset字段

        分别对应三种批量采集模式传的字段名称。

        记录结果字段

        记录查询数据结果字段。

        Headers

        字段

        原始的消息头输入参数名。可以从上一步骤获取,也可以手动输入字段名。

        新字段名

        更名后的消息头输入参数名。需要手动输入。

        Parameters

        字段

        原始的输入参数名。

        可以从上一步骤获取,也可以手动输入字段名。

        新字段名

        更名后的输入参数名。需要手动输入。

        Body

        从字段中获取body?

        控制是否从字段中获取消息体。

        Body字段

        如果勾选了“从字段中获取body?”,请配置Body字段名。

        -

        可支持直接输入消息体内容。

      • “Bingo查询”用于按照一定的条件从应用开发环境数据库中抽取数据。如何配置在下面步骤会进行介绍。

      • “输出到Bingo”用于把数据输出到应用开发环境数据库中。您需要配置目标对象和字段映射关系。

        图 4 配置“输出到Bingo”

      • “文件输出到OBS”:用于将文件输出到OBS的存储桶中。

        在“文件输出OBS”上配置OBS终端节点ID、OBS用户的访问密钥 ID(Access key ID)和秘密访问密钥(Secret access key),选择存储桶以及桶上具体的文件名。选择“字段”页签,单击“获取字段”可将上一步输出的字段全部显示,您可根据需要选中具体字段所在行按“Delete”删除不需要的字段。选择“内容”页签可以配置文件内容格式。单击“确定”完成配置。

        图 5 配置“文件输出到OBS”1

        图 6 配置输出到文件的字段

        图 7 配置文件内容格式

      • “OBS文件输入”用于从OBS的存储桶中获取文件数据作为输出。在“OBS文件输入”上配置OBS终端节点ID、OBS用户的访问密钥 ID(Access key ID)和秘密访问密钥(Secret access key),选择存储桶以及桶上具体的文件名。单击“确定”进行数据输出。

        图 8 配置“OBS文件输入”

8.  按住“Shift”,选择“JavaScript代码”连线至“Bingo查询”,选择“主输出步骤”连接两个元素。
9.  双击“Bingo查询”图标。

    弹出“Bingo查询”配置框。

10. 在“Bingo查询”中单击“浏览”选择用户表“User”,在“查询所需的关键字”中配置当表中字段“creatData”取值小于变量“dataString”取值,单击“获取返回字段”,“查询表返回的值”区域会出现从应用开发环境数据库中取出的用户表中的哪些字段数据。单击“确定”。

    该配置表示从应用开发环境数据库中抽取截止目前生成的用户业务数据。

    **图 9**  配置“Bingo查询”<a name="fig10922192475114"></a>  
    ![](../../image/B-i-n-g-o-_-z-h/figures/配置-Bingo查询.png "配置-Bingo查询")

11. 从输出中选择“表输出”拖曳至右侧。

    “表输出”用于配置抽取数据的输出源。即外部数据库。

12. 按住“Shift”,选择“Bingo查询”连线至“表输出”,选择“主输出步骤”连接两个元素。
13. 双击“Table output”图标。

    弹出“表输出”配置框。

14. 在“表输出”中单击“数据库连接”所在行后的“新建”,如[图11](#fig1292314243516)所示配置外部数据库信息(包括数据库连接名、数据库类型、数据库IP、数据库名、端口、登录用户名以及密码)。配置外部数据库后,在“数据库连接”后的下拉框中选择建好的数据库。在“目标表”后单击“浏览”,如[图12](#fig209231224175118)所示选择具体导入的用户表。“提交记录数量”配置为“1000”,表示每1000条记录提交一次。

    **图 10**  配置“表输出”<a name="fig11923102415511"></a>  
    ![](../../image/B-i-n-g-o-_-z-h/figures/配置-表输出.png "配置-表输出")

    **图 11**  新建数据库<a name="fig1292314243516"></a>  
    ![](../../image/B-i-n-g-o-_-z-h/figures/新建数据库.png "新建数据库")

    **图 12**  选择目标表<a name="fig209231224175118"></a>  
    ![](../../image/B-i-n-g-o-_-z-h/figures/选择目标表.png "选择目标表")

15. 在“表输出”中选择“数据库字段”,勾选“指定数据库字段”,单击“输入字段映射”。

    **图 13**  选择“数据库字段”<a name="fig99231024115110"></a>  
    ![](../../image/B-i-n-g-o-_-z-h/figures/选择-数据库字段.png "选择-数据库字段")

16. 在“映射匹配”中单击“猜一猜”,系统会自动将源字段和目标字段进行映射。检查无误后,选择未匹配的源字段和目标字段,单击“Add”,映射结果显示在右侧。单击“确定”。

    **图 14**  进行字段映射<a name="fig6923724175112"></a>  
    ![](../../image/B-i-n-g-o-_-z-h/figures/进行字段映射.png "进行字段映射")

17. 在“表输出”中单击“确定”。
18. 从流程中选择“空操作(什么也不做)”拖曳至右侧。

    “空操作(什么也不做)”用于配置当上一步出现报错时进行的逻辑处理,即什么也不做。如果不拖曳该元素,当上一步报错时,整个流程将会被中断。

19. 按住“Shift”,选择“Bingo lookup”连线至“Dummy (do nothing \)”,选择“错误处理步骤”连接两个元素。

    ![](../../image/B-i-n-g-o-_-z-h/figures/zh-cn_image_0152271873.png)

20. 在编辑的转换页面上方单击![](../../image/B-i-n-g-o-_-z-h/figures/zh-cn_image_0151949996.png),设置该转换所在的文件夹和名称,例如该转换名称设置为“get\_user\_data\_from\_bingo”。

    **图 15**  保存转换并配置名称<a name="fig149251224165113"></a>  
    ![](../../image/B-i-n-g-o-_-z-h/figures/保存转换并配置名称.png "保存转换并配置名称")
  1. 返回“作业”编辑页面,从通用中选择“START”拖曳至右侧。
  2. 从通用中选择“转换”拖曳至右侧。
  3. 双击“Transformation”图标。

    弹出“转换”配置框。

  4. 在“转换”中单击“浏览”,选择之前创建的转换。单击“确定”。

    图 16 选择转换

  5. 按住“Shift”,选择“START”连线至“Transformation”,连接两个元素。

  6. 从通用中选择“成功”拖曳至右侧。
  7. 按住“Shift”,选择“Transformation”连线至“Success”,连接两个元素。

    图 17 连接元素

  8. 在编辑的作业页面上方单击,设置该作业所在的文件夹和该作业名称,例如该作业名称设置为“get_user_data”。

    图 18 保存作业并配置名称

  9. 在打开的作业页面上方单击,单击“Run”执行该作业。

    执行后,可在执行结果中查看日志,检查该作业是否执行成功。

    图 19 执行作业

results matching ""

    No results matching ""