配置MySQL输出组件

MySQL输出组件用于向MySQL数据源写入数据。同步其他数据源的数据至MySQL数据源的场景中,完成源数据源的信息配置后,需要配置MySQL输出组件的目标数据源。本文为您介绍如何配置MySQL输出组件。

前提条件

操作步骤

  1. 请参见离线管道组件开发入口,进入离线单条管道脚本的开发页面。

  2. 按照以下操作指引,进入MySQL输出配置对话框。

    单击组件库->单击输出->拖动MySQL输出组件至画布->连接image图标->单击image配置图标。

    image

  3. MySQL输出配置对话框,配置参数。

    参数

    说明

    步骤名称

    即MySQL输出组件的名称。Dataphin自动生成步骤名称,您也可以根据业务场景修改。命名规则如下:

    • 只能包含汉字、字母、下划线(_)、数字。

    • 不能超过64个字符。

    数据源

    在数据源下拉列表中,展示所有MySQL类型的数据源,包括您已拥有同步写权限的数据源和没有同步写权限的数据源。

    • 对于没有同步写权限的数据源,您可以单击数据源后的申请,申请数据源的同步写权限。具体操作,请参见申请、续期和交还数据源权限

    • 如果您还没有MySQL类型的数据源,单击新建,创建数据源。具体操作,请参见创建MySQL数据源

    选择输出数据的目标表。

    如果MySQL数据源中没有数据同步的目标表,则您可以通过一键生成目标表的功能,简单快速的生成目标表。详细的操作步骤如下:

    1. 单击一键生成目标表。Dataphin会自动为您匹配创建目标表的代码,包括目标表名称(默认为来源表名)、字段类型(基于Dataphin字段做了初步的转换)等信息。如下图所示:

      image

    2. 您可以根据业务情况修改创建目标表的SQL脚本后,单击新建

      目标表新建成功后,Dataphin自动将新建的目标表作为输出数据的目标表。一键生成目标表用于为开发环境、生产环境创建数据同步的目标表。Dataphin默认为您选中生产环境建表,如果生产环境已经有同名且结构相同的数据表,则您无需勾选生产环境建表。

      说明
      • 如果开发环境或生产环境存在同名的表,单击新建后,Dataphin会报已存在该表的错误。

      • 没有匹配项时,也支持根据手动输入的表名进行集成。

    加载策略

    选择数据写入目标表的策略。加载策略包括:

    • 追加数据(insert into):即在目标表的已有的数据基础上追加数据,且不修改历史数据;当主键/约束冲突时,会提示脏数据错误。

    • 主键冲突时覆盖(replace into):即在主键/约束冲突时,会先删除整行主键重复的旧数据,再插入新数据。

    • 主键冲突时更新(on duplicate key update):即在主键/约束冲突时,会在已存在的记录上更新映射字段的数据。

    批量写入数据量

    一次性写入的数据量大小,可同时设置批量写入条数,写入时系统将按两个配置中先达到上限的量进行写入,默认32M

    批量写入条数

    默认2048条。数据同步写入时,采用攒批写入策略,其中设定的参数包括批量写入条数批量写入数据量

    • 当读取到的数据量累积至设定的任一上限(即达到批量写入的数据量或条数限制)时,系统将认为已攒满一批数据,并立即将这批数据一次性写入目标端。

    • 建议设置批量写入的数据量为32MB,对于批量插入的条数上限,可以根据单条记录的实际大小灵活调整,通常设定为一个较大值以充分利用批次写入的优势。例如,若单条记录大小约为1KB,可将批量插入字节大小设为16MB,同时考虑到这一条件,将批量插入条数设定为大于16MB除以单条记录大小1KB的结果(即大于16384条),这里假设设置为20000条。如此配置后,系统将会依据批量插入的字节大小来触发批次写入操作,每当累积的数据量达到16MB时,就会执行一次写入动作。

    准备语句

    非必填项。数据导入前对数据库执行的SQL脚本。

    比如为了满足服务的持续可用性,当前步骤写数据执行前先创建目标表Target_A,执行写入到目标表Target_A,当前步骤写数据执行完成后,对数据库中持续提供服务的表Service_B重命名成Temp_C,然后将表Target_A重命名为Service_B,最后删除Temp_C。

    结束语句

    非必填项。数据导入后对数据库执行的SQL脚本。

    输入字段

    根据上游组件的输出,为您展示输入字段。

    输出字段

    为您展示输出字段。支持进行以下操作:

    • 字段管理:单击字段管理选择输出字段。

      image

      • 单击gaagag图标,将已选的输入字段移入未选的输入字段

      • 单击agfag图标,将未选的输入字段移入已选的输入字段

    • 批量添加:单击批量添加,支持JSON、TEXT格式、DDL格式批量配置

      • 以JSON格式批量配置,例如:

        // 示例:
        [{
          "name": "user_id",
          "type": "String"
         },
         {
          "name": "user_name",
          "type": "String"
         }]
        说明

        name表示引入的字段名称,type表示引入后的字段类型。例如,"name":"user_id","type":"String"表示把字段名为user_id的字段引入,设置字段类型为String。

      • 以TEXT格式批量配置,例如:

        // 示例:
        user_id,String
        user_name,String
        • 行分隔符用于分隔每个字段的信息,默认为换行符(\n),可支持换行符(\n)、分号(;)、点(.)。

        • 列分隔符用于分隔字段名与字段类型,默认英文逗号(,)。

      • 以DDL格式批量配置,例如:

        CREATE TABLE tablename (
            id INT PRIMARY KEY,
            name VARCHAR(50),
            age INT
        );
    • 新建输出字段:单击+新建输出字段,根据页面提示填写字段和选择类型

    映射关系

    根据上游的输入和目标表的字段,可以手动选择字段映射。快速映射包括同行映射同名映射

    • 同名映射:对字段名称相同的字段进行映射。

    • 同行映射:源表和目标表的字段名称不一致,但字段对应行的数据需要映射。只映射同行的字段。

  4. 单击确认,完成MySQL输出组件的属性配置。