1. 概述编辑
1.1 版本
FineDataLink 版本 | 功能变动 |
---|---|
4.0.4 |
|
4.0.14 | 部署包内置GP(并行装载)的gpfdist文件 |
4.0.29 | 新建数据连接时,GreenPlum(并行装载)和Pivotal Greenplum Database数据源,合并为Pivotal Greenplum Database |
4.1.2 |
|
1.2 应用场景
用户在定时任务中,需要将业务库数据抽取至 Greenplum 数据库进行分析,在相对小的时间窗口内完成大数据量的数据装载。
1.3 功能简介
4.0.4 版本数据源类型和数据输出适配 Greenplum、Greenplum(并行装载)数据库,Greenplum 作为输出库时,支持并行装载以提升数据装载速度。
1.4 注意事项
1.4.1 数据管道任务
数据管道使用 GreenPlum 或者 Greenplum(并行装载)作为目标表时,都是用的 COPY 装载模式,需要在目标数据库先创建 fdl_temp 模式用来存放临时表,因此需要给该数据连接账号赋予在对应数据库创建模式的权限。
1.4.2 定时任务
定时任务中若向 Greenplum 中写入数据时,「写入方式>装载方式」中推荐选择并行装载或COPY装载。说明如下表所示:
装载方式 | 区别 |
---|---|
并行装载 |
|
COPY装载 |
|
2. 配置并行装载设置编辑
使用场景:向 Greenplum 中写入数据,且同步数据中不包含二进制字段。
2.1 前提条件
2.1.1 确认数据库版本
Greenplum(并行装载)支持的版本为:5.X 和 6.X 。
2.1.2 确认数据库数据类型
并行装载方式不可同步二进制类型字段,如果选择了此类字段进行装载,则在装载时报错(直接抛出数据库装载时报错),二进制字段只能通过 JDBC 方式进行装载,也就是使用本文第三章中的数据连接。
2.1.3 放置 gpfdist 文件
gpfdist 文件相关操作及存放位置说明如下表所示:
FDL 工程 | 操作 | gpfdist 文件位置 |
---|---|---|
1)4.0.14 之前版本 2)用户的工程是从 4.0.14 之前版本升级到 4.0.21 之前版本 | 参考本节内容 | %FineDataLink%\webapps\webroot\WEB-INF |
用户的工程是从 4.0.14 之前版本升级到 4.0.21 及之后版本 | %FineDataLink%\webapps\webroot\WEB-INF\assist | |
用户使用 4.0.14 及之后版本的安装包部署工程 | 忽略本节内容 | - |
Linux 系统:
Linux系统:gpfdist_linux.tar.gz
1)下载该压缩包后,直接将该压缩包上传到 Linux 服务器上,然后解压到:%FineDataLink%\webapps\webroot\WEB-INF\assist下。
注:安装目录中不支持包含空格,否则会导致 gpload 读取不到文件。
2)将 bin 文件夹中的 gpfdist 文件与 lib 文件夹放在同一层级上,删除 bin 文件夹。
3)将 gpfdist_linux 文件夹名称修改为 gpfdist 。
最终效果如下图所示:
Windows 系统:
1)获取安装包。
在%FineDataLink%\webapps\webroot\WEB-INF\assist下面建一个 gpfdist 文件夹,将获取的包编辑成 exe 后放到文件夹内。
2)检查数据库所在服务器是否能访问到 FDL 工程服务器的 15500 端口,原因为:FDL 生成了 csv 文件,数据库直接读取 csv 文件来装载。
3)检查创建数据连接的账号权限已经拥有建立模式和建表的权限。
注:Windows 下 gpfdist 需要基于源码再自行编译 gpfdist.exe 才能使用(Linux 已编译)。在 Win 版本中,暂不随集成 gpfdist 相关组件,Linux 版本集成。
注2:最大单行数据大小支持 1M(Win最大支持值),不允许修改。
2.2 建立数据连接步骤
2.2.1 上传驱动
下载驱动包,并将其上传至 FineDataLink 中,如何上传详情可参见:驱动管理
驱动包下载 |
---|
PostgreSQL驱动,请下载最新版 |
2.2.2 配置数据连接
1)登录 FineDataLink,点击「管理系统>数据连接>数据连接管理>新建数据连接」,选择「Pivotal Greenplum Database」。如下图所示:
注1:如果非管理员用户想要配置数据连接,需要管理员给其分配管理系统下数据连接节点的权限,具体操作请查看 数据连接管理权限
注2:4.0.29 之前版本,数据连接选择 GreenPlum(并行装载) 。
2)输入连接信息。驱动选择「自定义」,并勾选 2.2.1 节上传的驱动。
模式需要连接数据库后才可以选择,所以需要先点击「点击连接数据库」后,再选择「模式」。如下图所示:
3)若需要向 Greenplum 数据库写入数据,需要配置「并行装载设置」项。如下图所示:
配置项 | 说明 |
---|---|
服务器地址-节点1 | 输入 2.1.3 节 gpfdist 服务地址,要求配置 FDL 所在服务器上能被 SEG 访问到的 IP 当数据平台所在环境为集群环境时,展示多个配置项,配置项均为可输入下拉框,配置名为:服务器地址-节点X |
复用临时表 | 是否复用临时表(复用临时表在高频装载时,可有效降低系统表膨胀速度) 勾选后,实际运行时,将自动尝试新建「gpfdist_temp」模式并使用 |
临时文件条数限制 | 默认值:100000;范围:10000~100000000;必填 落盘的临时文件条数;配置值可根据用户环境的磁盘大小、网络速率调整 |
临时文件大小限制(MB) | 默认值:1024;范围:10~102400;必填 落盘的文件大小限制;满足条数与文件大小任一限制时,停止数据文件写入操作,立即进行文件装载 |
4)点击「测试连接」,连接成功即可保存。
3. 不配置并行装载设置编辑
使用场景:
只是从 Greenplum 数据库中读取数据。
向 Greenplum 中写入数据,且同步数据中包含二进制字段。
3.1 数据库版本
5.X 和 6.X 。
3.2 建立数据连接步骤
与本文 2.2 节不同的是,无需配置「并行装载设置」项。
4. 使用数据源编辑
4.1 使用说明
注1:无论是否配置「并行装载设置」项,在进行数据开发时,要注意大小写规范,最好是统一为大写格式,否则会出现报错;比如在进行数据查询时,将查询内容统一大小写或者将查询内容加引号。
注2:针对不同数据库的特性,FineDataLink 屏蔽了不支持的功能入口。详情请参见:不同数据源的功能支持说明
定时任务支持读取和写入 Greenplum 数据库。定时任务开发请参见:数据开发概述
数据管道任务中支持写入至 Greenplum 数据库。管道任务配置请参见:数据管道概述
数据服务支持 Greenplum 数据库,但需要配置「并行装载设置」项。数据服务请参见:数据服务概述
定时任务中设置数据输出到 Greenplum 数据库时。「写入方式」界面如下图所示:
「装载方式」介绍如下表所示:
装载方式 | 说明 |
---|---|
并行装载 | 1)gpfdist 默认使用 15500 端口 2)二进制类型字段不支持在勾选「启用并行装载」的时候同步 3)4.1.2 及之后版本,支持写入 JSON 类型字段 4)4.1.2 及之后版本,主键冲突策略可选择:主键相同,忽略输入源的数据、主键相同,记录为脏数据、主键相同,覆盖目标表的数据 5)开启 脏数据容忍 后,并行装载方式失败后,需要通过 GPLOAD 内置的错误表逻辑,获取到脏数据信息,正确记录脏数据;如果没有开启脏数据容忍,则节点直接报错 6)以 gpfdist 协议做并行装载,4.1.2 之前版本不支持插入/更新/删除数据写入方式,4.1.2 及之后版本支持该写入方式 |
COPY装载(4.1.2 版本新增) | 1)选择该方式时,支持写入二进制字段、JSON 字段 2)写入方式选择「直接将数据写入目标表」时,目标表有主键或配置主键映射后,支持三种主键冲突策略:主键相同,忽略输入源的数据、主键相同,记录为脏数据、主键相同,覆盖目标表的数据 3)开启 脏数据容忍 后,COPY 装载方式失败后,需要尝试将该批数据使用「普通装载」写入,写入异常将统计进入脏数据,当前这一批数据写完后,下一批继续优先尝试使用 COPY 进行装载 关闭脏数据容忍后,COPY 失败时直接报错,不再降级至普通 JDBC 处理 若选择 COPY 装载方式,需要在目标数据库先创建 fdl_temp 模式用来存放临时表,需要用户有建表、建指定模式的权限(如果已由 DBA 建好模式并赋权,数据库用户可不需要建schema的权限) |
普通装载 | 以 JDBC 做串行装载 |
4.2 定时任务中特殊场景说明
特殊场景 | 处理策略 |
---|---|
COPY方案装载时,源端待装载的单批数据中,存在 N 条(N>1)主键相同的数据。 一批数据中多条源端数据,更新目标端的一条数据,不知道要用哪条更新,造成装载异常 | 默认取首条数据,如果数据异常,用户可以在前置步骤中手动去重 |
并行装载方案装载时,源端待装载的单批数据中,存在N条(N>1)主键相同的数据。 一批数据中多条源端数据,更新目标端的一条数据,不知道要用哪条更新,造成装载异常 | |
开启了脏数据容忍,COPY失败的时候转 JDBC ,然后装载速率变很慢 | 情况一: 如果用户同步的字段中没有二进制字段,可以考虑使用并行装载方式 情况二: 如果用户同步的字段中有二进制字段,则只能接受此问题,采取以下方案:
|