历史版本36 :数据同步概述 返回文档
编辑时间: 内容长度:图片数:目录数: 修改原因:

目录:

1. 概述编辑

[helpvideo]3256[/helpvideo]

1.1 版本说明

FineDataLink 版本功能变动
1.6
  • 新增「自动建表」功能,详情参见本文 3.2 节

  • 下拉框支持模糊搜索,详情参见本文 4.1 节

  • 字段映射界面增加刷新按钮,详情参见本文 3.3 节

1.7

字段映射界面可编辑映射并删除字段映射关系,详情参见本文 3.3 节

1.9允许指定一个或多个字段作为比对字段,来更新目标表中的数据,详情参见本文 3.2 节
2.1

字段映射时支持模糊匹配,可选择映射方式,详情参见本文 3.3 节

2.2

数据来源支持服务器数据集,支持从 CSV、Excel 文件中读取数据

3.0

原「离线同步」节点更名为「数据同步」

3.7数据去向中若选择自动建表」字段映射Tab下可删除表字段、修改表字段展示顺序、修改表字段长度、修改字段类型,详情参见本文 2.3 节

4.0.1「数据去向」中若选择自动建表」字段映射Tab下修改表字段展示顺序的方式,从点击调整字段顺序调整为拖拽调整字段顺序,详情参见本文 2.3 节
4.0.13
  • 「数据来源」支持 MongoDB 和简道云

  • 支持自动将数据同步内容生成「数据转换」节点,详情参见本文 2.2 节

4.0.14
  • 「数据来源」支持「FTP/SFTP」数据源

  • 「数据来源」支持「服务器本地目录」数据源

4.0.18

「数据去向」中写入方式分为四类:

  • 目标表无主键写入

  • 目标表有主键写入,包含 3 种冲突策略

  • 清空目标表再写入数据

  • 插入/更新/删除数据(灰化,仅支持在数据转换中使用

详情请参见本文 2.3 节内容

1.2 应用场景

用户希望将大量的数据直接抽取同步写入数据库中,且想要同步的数据不需要非常复杂的处理步骤,就可以使用「数据同步」节点。如下图所示:

1.3 功能简介

通过「设置需要抽取的数据」>「设置需要写入的数据表」>「调整数据表字段」将数据直接抽取并写入数据库中。

  • 数据来源:设置源表,从哪个数据库的哪张表抽取数据,可写 SQL 语句

  • 数据去向:设置目标表,抽取的数据保存到哪个数据库的哪张表下,可存放到已有的表,也支持自动新建一个表

  • 字段映射:设置源表跟目标表之间的字段映射关系,支持手动调整映射关系

注:数据同步后的定时更新可以参考:数据更新专题

1.4 前提条件

拥有能够进行数据开发的 FineDataLink 系统用户:用户管理

对用户进行了数据开发权限分配:数据平台使用权限定时任务管理权限

配置了需要接入FineDataLink 作为数据来源的数据连接,详情参见:[通用]配置数据连接

2. 示例编辑

此处给出一个示例,演示从一个 SQLite 数据库的客户表中将华北地区的所有数据,抽取到另一个 MySQL 数据库中去。

2.1 创建任务

新建一个 ETL 任务,将一个「数据同步」节点拖到设计界面,点击该节点进行设置。

2022-11-15_15-35-39.gif

2.2 设置数据来源

数据源类型选择「SQLite」,数据连接选择「FRDemo」,SQL 语句填写:select * from 客户 where 地区='华北'

配置选项说明
数据源类型FineDataLink支持的数据源 (支持数据读取的数据库)
数据连接连接到源数据库,配置数据连接的方法参见文档 [通用]配置数据连接
SQL 语句
通过 SQL 从源数据库的表中查询取数,且支持引用定时任务中的参数,参数的定义和使用方式可参见文档 自定义参数
数据预览可查看当前语句对应的数据,一般用来检查语句写得对不对,预览时最多只显示 20 行且与实际数据可能存在差异

此时可以先用「数据预览」看下取数效果,如下图所示:

2022-11-15_15-40-49.gif

此时若发现取出的数据需要进行一些复杂的操作,例如行列转换数据关联JSON解析等数据处理和转换,则可以使用「生成数据转换」功能,将根据数据同步节点的数据来源和去向设置,新增一个「数据转换」节点,你可以使用数据转换替代数据同步进行复杂的数据处理工作,如下图所示:

2022-11-15_15-48-02.gif

注1:当「循环容器」内的「数据同步」「参数赋值」快速转「数据转换」时,生成的「数据转换」限制在循环容器内。

注2:若「数据同步」、「参数赋值」前后有节点连线,转「数据转换」时,生成的「数据转换」不影响原先节点连线关系。

2.3 设置数据去向

数据源类型选择「MySQL」,数据连接选择「etlwendy」,由于没有事先建表,所以目标表选择「自动建表」,并给表命名为「customcopy」。

如下图所示:

32.png

数据去向一些设置的介绍和注意事项如下:

配置选项说明
数据源类型FineDataLink定时任务支持的数据源 (支持数据读取的数据库)
数据连接连接到目标数据库,配置数据连接的方法参见文档 [通用]配置数据连接
目标表

「已存在表」是选择目标数据库中已有的表来存放数据

「自动建表」是直接在目标数据库中新建一张表来存放

注:若选择「自动建表」,未指定模式时,会使用数据库默认模式,而不是数据连接中的模式。

写入方式

数据写入目标数据库表的方式,可以选择「追加写入数据」/「清空目标表再写入数据」

注:「插入/更新/删除数据」灰化无法选择,仅支持在数据转换中使用「插入/更新/删除数据」方式

写入方式详细介绍如下表所示:

写入方式
说明
备注
追加写入数据

1)若没有主键,直接将数据写入到目标表中

2)若存在主键,主键冲突策略为:

  • 主键冲突,覆盖目标表的数据

  • 主键冲突,忽略输入源的数据

  • 主键冲突,停止写入并报错

33.png

-
清空目标表再写入数据直接先把目标表清空掉,然后再写入数据有无主键均可以选择
插入/更新/删除数据灰化显示,不可选择,仅「数据转换」节点中内可选-

2.4 设置字段映射

字段映射就是查看或修改源表跟目标表的字段关系,此处用默认的即可,如下图所示:

数据映射一些设置的介绍和注意事项如下:

配置项
说明
映射方式选择源表字段跟目标表字段的映射方式,有两种分别是「同名映射」和「同行映射」
建表语句如果设置「数据去向」时是「自动建表」的,那么就会有这个入口,点开后可查看和复制建表语句,如果自动建表不满足要求,可粘贴到 SQL脚本 修改并建表
编辑映射用户能够选择性地使用获取到的来源字段,不想写入的字段删除映射字段即可
重新获取源表的字段、字段类型发生改变时,点击该按钮可重新获取,并初始化字段映射界面

两种映射方式的匹配逻辑如下:

映射方式匹配逻辑
同名映射

按照目标表字段与来源表字段字符重合的情况匹配,整体逻辑为:

1)根据来源字段,在目标表中寻找同名(字符完全相同)字段对其进行匹配

2)没有同名字段时:

  1. 寻找目标表中包含来源表字段字符的字段,或者来源表中包含目标表字段字符的字段,对其进行匹配

  2. 如果存在多个字符符合上述条件,则按照字段在目标表中出现的顺序进行优先级区分,出现顺序靠前的优先级高,匹配时优先展示

  3. 已被匹配的字段不再被匹配,即不存在多个源头字段对应同一个目标表字段的情况

3)如果在目标表中找不到同名或者包含目标表字段字符的字段,则右侧映射字段显示为空

同行映射源头字段和目标表字段按顺序匹配:同行则建立映射关系

使用时一些需要注意的点:

1)映射时删除了一些来源表字段,那么切换映射方式后,还是会根据剩下来的这些字段进行调整

2)手动将映射方式从默认项「同名映射」切换到「同行映射」,点击「重新获取」字段,获取的字段将按照「同行映射」的方式自动匹配

3)以下两种场景会出现目标表无字段可匹配源头表的情况,在这两种情况下,右侧目标表字段可展示为空:

  • 同名映射:目标表不存在包含源头表字段的字段

  • 同行映射:源头表字段数量大于目标表字段数量

4)映射时,如果右侧目标表有空字段,会出现提示图标,悬浮在其上方提示:目标表字段存在空值

注:如果字段映射里目标表中缺少比对字段,那么写入数据时就会找不到比对字段。所以字段映射时必须包含比对字段。

2.5 运行节点

右键节点后选择「运行节点」,下方运行日志出现执行成功信息即表示节点执行成功。

2022-11-15_16-03-54.gif

节点运行成功后,可以看到 MySQL 数据库中多了一张表 customcopy,如下图所示: