历史版本28 :配置Greenplum数据源 返回文档
编辑时间: 内容长度:图片数:目录数: 修改原因:

目录:

1. 概述编辑

1.1 版本

FineDataLink 版本功能变动
4.0.4
  • 「管理系统>数据连接>数据连接管理」中,可新建 Greenplum(并行装载)数据连接

  • 数据输入适配 Greenplum、Greenplum(并行装载)

  • 数据输出适配 Greenplum、Greenplum(并行装载)

4.0.14部署包内置GP(并行装载)的gpfdist文件
4.0.29新建数据连接时,GreenPlum(并行装载)Pivotal Greenplum Database数据源,合并为Pivotal Greenplum Database
4.1.2
  • 定时任务中,Greenplum 数据源支持 COPY 方式写入数据,支持写入二进制字段和 JSON 字段

  • 并行装载方式支持写入 JSON 类型字段

  • 并行装载方式,支持插入/更新/删除数据写入方式;主键冲突策略可选择:主键相同,忽略输入源的数据主键相同,记录为脏数据

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装载。说明如下表所示:

装载方式
区别
并行装载
  • 支持写入 JSON 字段,不支持写入二进制字段

  • 并行装载在大数据量、大规模集群场景下性能优于 COPY

  • 配置数据连接时需按照本文第二章步骤操作,配置并行装载设置

COPY装载
  • 支持写入二进制字段、JSON 字段

  • 配置数据连接时,参考本文第三章即可,不用配置并行装载设置

  • 若选择 COPY 装载方式,需要在目标数据库先创建 fdl_temp 模式用来存放临时表,需要用户有建表、建指定模式的权限(如果已由 DBA 建好模式并赋权,数据库用户可不需要建schema的权限)

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 。

最终效果如下图所示:

1688978841470042.png

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.png

2)输入连接信息。驱动选择「自定义」,并勾选 2.2.1 节上传的驱动。

模式需要连接数据库后才可以选择,所以需要先点击「点击连接数据库」后,再选择「模式」。如下图所示:

3)若需要向 Greenplum 数据库写入数据,需要配置「并行装载设置」项。如下图所示:

1693885238715906.png

配置项说明
服务器地址-节点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 数据库时。「写入方式」界面如下图所示:

1701154625970471.png

装载方式介绍如下表所示:

装载方式
说明
并行装载

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 ,然后装载速率变很慢

情况一:

如果用户同步的字段中没有二进制字段,可以考虑使用并行装载方式

情况二:

如果用户同步的字段中有二进制字段,则只能接受此问题,采取以下方案:

  • 关闭脏数据容忍

  • 开启脏数据容忍,设置比较小的脏数据容忍量

  • 开启脏数据容忍,配合任务超时控制任务执行时间