提示:通用限制
1)无论是否配置「并行装载设置」项,在进行数据开发时,要注意大小写规范,最好是统一为大写格式,否则会出现报错;比如在进行数据查询时,将查询内容统一大小写或者将查询内容加引号。
2)在 CloudberryDB 数据库中,字段名的长度限制:
最大 64 个字符;若使用英文字母、数字或下划线,最多可支持 64 个字符;若包含中文字符(每个汉字占 2-4 个字符),实际字符数会减少。
建议使用小写字母、数字、下划线组合来命名;避免以数字开头或包含特殊字符。
数据开发-定时任务
读取
1)「数据同步」、「参数赋值」、「全局赋值参数」、「数据转换-DB表输入」、「SQL 脚本」的数据来源支持:CloudberryDB。
注:配置方式不支持「存储过程」。
2)作为定时任务来源端时,支持 并行取数 功能。
3)支持读取分区表数据。
4)支持展示 表描述。
写入
1)「数据同步」、「数据转换-DB表输出」的数据去向支持:CloudberryDB。
2)作为定时任务目标端时,支持写入数据到已存在的分区表,不支持 DDL同步。
3)目标表为自动建表时,支持指定分布键。
4)自动建表设置主键后,点击「分区键设置」按钮,支持指定分区键。如下图所示:
注:仅支持一级分区。

配置方式参见读取、创建、写入分区表,有如下区别:
范围分区和列表分区分区名称支持为空,为空时按照位置自动取名(相当于不指定名称,数据库会自动取名,不需要FDL处理)
范围分区有两种方式来指定范围(支持指定包含或不包含)
1)方式一:起始值和结束值必填,在起始结束值都合法的时候,才支持指定间隔,来自动划分分区,举例:「start (date '2015-01-01') end (date '2020-12-31') every (interval '1 year')」
字段类型为日期时,间隔支持指定年月日
字段类型为数字时,间隔支持指定正整数
2)方式二:单独指定「大于等于XXX」「小于等于XXX」条件
注:方式一和方式二指定的分区允许共存。
支持指定默认分区。
写入方式
定时任务中设置数据输出到 CloudberryDB 数据库时。「写入方式」界面如下图所示:

1)支持 事务控制 功能。
2)「装载方式」介绍如下表所示:
| 装载方式 | 说明 | |||||||
|---|---|---|---|---|---|---|---|---|
| 并行装载 | 1)gpfdist 默认使用 15500 端口 2)二进制类型字段不支持在勾选「启用并行装载」的时候同步 3)支持写入 JSON 类型字段,但仍不支持写入二进制字段 4)主键冲突策略可选择:主键相同,忽略输入源的数据、主键相同,记录为脏数据、主键相同,覆盖目标表的数据 5)开启 脏数据容忍 后,并行装载方式失败后,需要通过 GPLOAD 内置的错误表逻辑,获取到脏数据信息,正确记录脏数据;如果没有开启脏数据容忍,则节点直接报错 6)以 gpfdist 协议做并行装载,支持插入/更新/删除数据写入方式 7)并行装载在大数据量、大规模集群场景下性能优于 COPY 8)配置数据连接时需按照 配置并行装载设置 步骤操作,配置并行装载设置 注:若选择并行装载方式,需要进行权限指定。 | |||||||
| COPY装载 | 若选择 COPY 装载方式,需要在目标数据库先创建 fdl_temp 模式用来存放临时表,需要用户有建表、建指定模式的权限(如果已由 DBA 建好模式并赋权,数据库用户可不需要建schema的权限) 选择该方式时,支持写入二进制字段、JSON 字段
采用 COPY 装载方式+普通装载方式时: COPY 装载方式失败后,需要尝试将该批数据使用「普通装载」写入,写入异常将统计进入脏数据,当前这一批数据写完后,下一批继续优先尝试使用 COPY 进行装载 | |||||||
| 普通装载 | 以 JDBC 做串行装载 1)向 CloudberryDB 写入数据时,不建议选择该方式 2)若只从 CloudberryDB 读取数据,建议按照 不配置并行装载设置 步骤配置数据连接 |
定时任务中特殊场景说明:
| 特殊场景 | 处理策略 |
|---|---|
| COPY 方案装载时,源端待装载的单批数据中,存在 N 条(N>1)主键相同的数据。 一批数据中多条源端数据,更新目标端的一条数据,不知道要用哪条更新,造成装载异常 | 默认取首条数据,如果数据异常,用户可以在前置步骤中手动去重 |
| 并行装载方案装载时,源端待装载的单批数据中,存在N条(N>1)主键相同的数据。 一批数据中多条源端数据,更新目标端的一条数据,不知道要用哪条更新,造成装载异常 | |
| 开启了脏数据容忍,COPY 失败的时候转 JDBC ,然后装载速率变很慢 | 情况一:如果用户同步的字段中没有二进制字段,可以考虑使用GP并行装载 情况二:如果用户同步的字段中有二进制字段,目前只能接受此问题 |
实时管道
1)CloudberryDB 数据源作为目标表,支持 无主键同步
2)实时管道任务中支持写入至 CloudberryDB 数据库。管道任务配置请参见:数据管道概述
3)实时管道任务自动建表支持指定分区键。如下图所示:

4)实时管道任务目标端为 CloudberryDB 时,若目标表为手动创建的且包含时间戳字段(记录数据在数据库中实际新增和更新的时间),需要给时间戳字段设置个默认值:((EXTRACT(EPOCH FROM CURRENT_TIMESTAMP) * 1000)::bigint),否则增量后时间戳字段会为空。
5)当数据通过 COPY 装载失败时,重新使用 JDBC 装载,重新装载再失败时,识别为脏数据,并正常记录,以保证数据正常。
6)使用 CloudberryDB 作为目标表时,都是用的 COPY 装载模式,需要在目标数据库先创建 fdl_temp 模式用来存放临时表,因此需要给该数据连接账号赋予在对应数据库创建模式的权限。详情参见:配置Greenplum数据源
