1. 概述编辑
1.1 版本
FineReport 版本 | 插件版本 | 功能变动 |
---|---|---|
11.0 | V1.6 |
|
V1.7 |
|
1.2 应用场景
当用户需要将数据从一个数据库抽取到另一个数据库时,就可以使用离线同步节点。
2. 示例编辑
2.1 创建任务
在数据平台中创建一个任务,创建完成后双击进入任务设计页面,如下图所示:
2.2 拖入离线同步节点
拖入离线同步节点,如下图所示:
2.3 配置数据来源
1)双击「离线同步」进入它的详细设置页面,配置数据来源,如下图所示:
数据源类型:选择数据源类型,当前可选择的数据来源有:MySQL、SQL Server、Oracle、PostgreSQL、Rest API
注:RestAPI 数据来源的设置方式不同于其他数据来源,其设置介绍参见文档:数据来源类型为RestAPI
数据连接:选择对应的数据连接;
SQL语句:输入取数的 SQL 语句;
2)点击「数据预览」用户可查看当前语句对应的数据表内容,但预览数据行数不超过5行,可能会与实际数据存在差异。如下图所示:
2.4 配置数据去向
配置数据的去向,如下图所示:
数据源类型:选择目标数据库用来存放抽取过来的数据,当前可选择的数据库类型有:MySQL、SQL Server、Oracle、PostgreSQL
数据连接:选择数据去向对应的数据连接
目标表:可选择「已存在表」和「自动建表」,详细请参见本文 2.4.1 和 2.4.2 节。
写入策略和主键冲突:
写入策略 | 主键冲突 | 含义 |
---|---|---|
直接将数据写入目标表 | 遇主键冲突,停止写入并报错 | 遇到写入的数据和目标表中的数据主键冲突时,报错并停止任务执行 |
遇主键冲突,忽略输入源的相同主键数据 | 遇到写入的数据和目标表中的数据主键冲突时,忽略主键相同的数据行,插入主键不相同的数据 | |
遇主键冲突,更新目标表的相同主键数据 | 遇到写入的数据和目标表中的数据主键冲突时,将写入的数据覆盖目标库中主键相同的数据 | |
表内无主键,无须设置主键冲突处理策略 | 无主键,不设置主键冲突策略 | |
清空目标表,再写入数据 | - | 先将目标表中的数据清空,然后再将数据写入 |
注:数据量较大情况下,“直接将数据写入目标表”会比“清空目标表,再写入数据”执行效率更高,因为前者方案需要先清空目标表数据,再将来源表的数据全量抽取至目标表中;后者方案中,直接利用目标表的主键,将来源表数据和目标表数据进行比对,若数据有变化即更新,若数据无变化则不更新,相比方案一,更新的数据会更少,所以抽数速度更快。
2.4.1 目标表选择「已存在表」
在目标数据库中选择一张已存在的数据表作为目标表,要注意的是目标表的表结构要与抽取过来的数据表表结构一致。
选择「已存在表」,并从目标数据库中选择出目标表public.tata,如下图所示:
2.4.2 目标表选择「自动建表」
系统为用户在目标数据库中创建一张表作为目标表,且自动创建的目标表与抽取过来的数据表表结构一致。
1)选择「自动建表」,并给新建的表命名。如下图所示:
注1:表名称可以为数字、字母、下划线、不允许为中文、特殊字符。
注2:表名称不允许与已存在的表重名,若重名系统则会提示:数据库内存在同名表。
2)点击「查看建表语句」,可以查看系统为了建表自动生成的语句,如下图所示:
用户可以点击下方的「复制」按钮直接复制语句,并用复制的语句在数据库中直接新建表。但需要注意的是,在数据库自行完成建表后,目标表需要切换为「已存在表」。
2.5 配置字段映射
1)配置好数据来源和数据去向后,点击「下一步」,如下图所示:
2)进入字段映射界面。系统会自动将字段名和字段类型相同的字段匹配做映射,若用户需要匹配的字段名不同,可以手动调整匹配关系。如下图所示:
点击「确定」,离线同步设置完成。
2.6 运行离线同步
鼠标右击离线同步节点,选择「运行节点」。若运行日志无报错,即运行成功。如下图所示:
3. 功能变动编辑
3.1 数据源类型下拉框支持手动编辑
设置「数据来源」和「数据去向」的数据源类型时,数据库表只能通过下拉框选择,当库内表数量过多时,会导致很难快速找到要用的表。
针对上述问题,插件 1.6 版本对下拉框进行了优化,现在下拉框可直接编辑,输入内容后可模糊搜索数据库表,如下图所示:
3.2 字段映射界面增加刷新按钮
针对源表的字段、字段类型发生改变时,字段映射界面无法获取最新的源表字段问题。
插件 1.6 版本在字段映射界面新增刷新按钮:重新获取,点击按钮后重新获取源头字段和源头字段的类型,并初始化字段映射界面。
3.3 字段映射界面可删除字段
有时候用户希望能够选择性地使用获取到的来源字段,插件 1.6 版本在字段映射界面新增「编辑映射」入口实现改功能。
点击「编辑映射」后,可在编辑页面勾选需要删除的字段,然后点击右上角「删除映射行」,二次确认后再点击「确定」删除相应字段。
但是还没结束,不要忘了点击右下角「确定」,保存设置,如下图所示:
说明:
由于提供了左表删除字段的功能,所以当左表字段大于右表字段时,不会再有 toast 报错,直接显示出来左右表字段。
字段映射对应逻辑不变,默认按照字段顺序对应,如果右表字段比左表少,则对应的字段位置为空。
进入字段映射界面时,不管是否删除了一些字段,目标表字段下拉框里,都可以选择到全量的字段,也就是已删除的字段仍然能够选到。
如果配置完字段映射,目标表的字段名发生了改变,则重新进入字段映射界面时,目标表字段位置为空,如果字段名未改变,只是字段类型、长度发生了变化,则直接展示最新的字段类型、长度。