本文介绍通过应用集成实现从数据库源表到目标表的数据集成转换。完成从数据库源表定期读取数据,然后写入目标表,过程中如果两者数据结构存在差异可以加入数据映射逻辑步骤。

前提条件

  • 在阿里云容器服务Kubernetes版上创建了Database服务。具体操作步骤,请参见使用镜像快速创建无状态Deployment应用
  • 已经在Database创建contact表和todo表,并在contact表写入数据。本场景从contact表读取数据,然后存入todo表。
  • 本地已经安装MySQL客户端。

背景信息

通过集成流配置可以实现从源数据库表中读取数据,并将数据写入到目标数据库表中。

本文创建的集成将实现以下功能:
  1. 从数据库的contact表中定期读取数据。
  2. 将读取到的数据写入到数据库的todo表中。

创建连接

本示例中会用到Database,所以需要借助连接器创建对应的连接。

创建Database连接,请参见创建连接

创建空白集成

  1. 登录应用集成控制台
  2. 在顶部菜单栏,选择地域。
  3. 在左侧导航栏,选择集成 > 集成列表
  4. 集成列表页面,选择目标工作空间,然后单击新建集成
  5. 新建集成面板,选择创建方式为空白流,选择目标环境,输入集成名称,然后单击创建
  6. 集成创建后,进入集成设计页面,选择接下来的操作。
    • 在右上角单击保存,创建一个空集成。
    • 在页面左上角单击图标,在列表中单击Flow,创建集成流。

创建集成流

  1. 集成设计页面左上角,单击图标,在列表中单击Flow,创建集成流。
    也可以在页面中,选择点击创建 > Flow,创建集成流。
  2. 选择触发器,实现从Database的contact表中定期读取数据。
    1. 创建新集成流对话框,输入名称,选择Database作为触发器,然后单击创建选择触发器-Database
    2. 选择操作对话框,单击Periodic SQL invocation右侧的选择选择operation
    3. 步骤配置对话框,设置SQL语句周期,然后单击确定步骤配置-设置SQL语句
      本场景中SQL语句设置为select * from contact周期设置为6000,单位ms。
    4. 设置outputDataShape对话框,在选择schema列表中选择任意类型,然后单击创建
    创建完成后,集成流即包含了从Database的contact表定期读取数据的触发器。从contact定期读取数据
  3. 在集成流中添加Database连接,实现数据写入到Database的todo表。
    1. 在集成流中Periodic SQL invocation后单击图标。
    2. 选择组件类型对话框,单击连接,然后单击Database连接。
    3. 选择操作对话框,单击Invoke SQL右侧的选择选择operation-Invoke SQL
    4. 步骤配置对话框,设置SQL语句,然后单击确定步骤配置-设置SQL语句
      本场景中SQL语句设置为insert into todo (task, completed) values (:#task, 0)
    5. 设置inputDataShape对话框,在选择schema列表中选择任意类型,然后单击创建
    创建完成后,集成流中即包含了将数据写入到Database的todo表的连接。读取数据-写入数据
  4. 在集成流中添加数据映射器,完成字段映射。
    1. 鼠标悬停在集成流中Periodic SQL invocation右侧的上,然后单击图标。
    2. 选择组件类型对话框,单击逻辑步骤,然后单击data-mapper(数据映射器)
    3. Source > 1-SQL Result > Document RootTarget > 2-SQL Parameter之间单击字段进行映射,然后单击确认
      本场景以源表first_name字段和目标表task字段进行映射为例。字段映射
    4. 设置对话框,在选择schema列表中选择任意类型,然后单击创建
  5. 集成设计页面右上角,单击保存,保存集成流。
    数据库表数据读取和写入处理的集成流创建完成。读取数据-字段映射-写入数据
    注意 返回集成设计页面时,请及时在页面右上角单击保存,以免添加的步骤丢失。

部署集成

集成创建并保存后,需要对集成进行部署。具体操作,请参见部署集成示例

结果验证

  • todo表数据对比。
    • 使用MySQL客户端连接Datebase服务器,在MySQL客户端输入select * from todo查询todo表是否含有从contact表读取的数据。
    • 您也可以在contact表新增一组数据,然后在todo表查看task字段的值是否是新增的first_name字段的值。
  • 验证集成部署是否正常运行。

    查看目标集成的执行记录,其执行日志状态是否为SUCCESS