关于VVR 11及以上版本的With参数说明。
版本参数移除说明
为优化系统架构、提升维护效率,对VVR 8及以下版本中的部分历史参数进行了调整与移除。您可以根据下方不同的列表,查询已经移除的历史版本参数与相应的替代方案。
WITH参数
通用
参数 | 说明 | 数据类型 | 是否必填 | 默认值 | 备注 |
connector | 表类型。 | String | 是 | 无 | 固定值为 |
dbname | 数据库名称。 | String | 是 | 无 | 可以通过在dbname参数后添加特定的后缀来指定连接某个计算组。例如某张维表希望连接特定的计算组read_warehouse,可以通过 |
tablename | 表名称。 | String | 是 | 无 | 如果Schema不为Public时,则tablename需要填写为 |
username |
| String | 是 | 无 |
重要 为了避免您的AK信息泄露,建议您使用变量的方式填写AccessKey取值,详情请参见项目变量。 |
password |
| String | 是 | 无 | |
endpoint | Hologres服务地址。 | String | 是 | 无 | 详情请参见访问域名。 |
connection.pool.size | 单个Flink 表在任务中所创建的JDBC连接池大小。 | Integer | 否 | 5 | 如果作业性能不足,建议您增加连接池大小。连接池大小和数据吞吐成正比。此参数仅对维表和结果表生效。 |
connection.pool.name | 连接池名称。同一个TaskManager中,配置相同名称的连接池的表可以共享连接池。 | String | 否 |
| 默认取值为 您可以按需配置此参数,例如作业中有维表A,B以及结果表C,D,E五张hologres表,可以A表和B表使用pool1,C表和D表使用pool2,E表流量较大,单独使用pool3。 说明
|
connection.fixed.enabled | 是否使用轻量级连接模式 | Boolean | 否 | 无 | Hologres 的连接数是有上限的,在 Hologres2.1 版本起,实时写入支持使用不受连接数限制的轻量级连接。 说明
|
connection.max-idle-ms | JDBC连接的空闲时间。 | Long | 否 | 60000 | 超过这个空闲时间,连接就会断开释放掉,下次使用时自动创建。单位为毫秒。 |
connection.ssl.mode | 是否启用SSL(Secure Sockets Layer)传输加密,以及启用采用何种模式。 | String | 否 | disable |
说明
|
connection.ssl.root-cert.location | 当传输加密模式需要证书时,配置证书的路径。 | String | 否 | 无 | 当connection.ssl.mode配置为verify-ca或者verify-full时,需要同时配置CA证书的路径。证书可以使用实时计算控制台的文件管理功能上传至平台,上传后文件存放在/flink/usrlib目录下。例如,需要使用的CA证书文件名为certificate.crt,则上传后参数取值应该为 说明 CA证书获取方式见传输加密-下载CA证书。 |
retry-count | 当连接故障时,写入和查询的重试次数。 | Integer | 否 | 10 | 无。 |
retry-sleep-step-ms | 每次重试时递增的等待时间。 | Long | 否 | 5000 | 单位为毫秒。例如,默认值 5000(即 5 秒)时,第一次重试等待 5 秒,第二次等待 10 秒,依此类推。 |
meta-cache-ttl-ms | 本地缓存TableSchema信息的过期时间。 | Long | 否 | 600000 | 单位为毫秒。 |
源表独有
参数 | 说明 | 数据类型 | 是否必填 | 默认值 | 备注 |
source.binlog | 是否消费Binlog数据。 | Boolean | 否 | true |
|
source.binlog.read-mode | 读取模式。 | ENUM | 否 | AUTO |
说明 AUTO 模式的自动选择逻辑如下:
|
source.binlog.change-log-mode | CDC 源表支持哪些ChangeLog 。 | ENUM | 否 | UPSERT |
说明 如果下游包含回撤算子(例如使用ROW_NUMBER OVER WINDOW去重),则需要设置upsertSource为true,此时源表会以Upsert方式从Hologres中读取数据。 |
source.binlog.startup-mode | Binlog数据消费模式。 | ENUM | 否 | INITIAL |
说明 如果设置了startTime或者在启动界面选择了启动时间,则binlogStartupMode强制使用timestamp模式,其他消费模式不生效,即startTime参数优先级更高。 |
source.binlog.batch-size | 批量读取Binlog的数据行数。 | Integer | 否 | 512 | 无。 |
source.binlog.request-timeout-ms | 读取Binlog数据超时等待时间。 | Long | 否 | 300000 | 单位为毫秒。 说明 如果发生timeout,可能的原因是作业下游算子处理源表数据太慢导致反压。 |
source.binlog.partition-binlog-mode | 消费分区表Binlog模式。 | Enum | 否 | DISABLE |
|
source.binlog.partition-binlog-lateness-timeout-minutes | 在DYNAMIC模式下消费分区表,允许延迟的最大超时时间。 | Boolean | 否 | 60 |
例如:如果动态分区以DAY为单位,分区是20240920,允许数据最大延迟是1小时,对于这个分区,其消费会在2024-09-21 01:00:00关闭,而不是在2024-09-21 00:00:00停止消费。
如果按天分区,其最大值为24 * 60 = 1440(min),DYNAMIC模式大多数时间只会同时消费一张表,在延迟时间内可能同时消费两个分区。 |
source.binlog.partition-values-to-read | 在STATIC模式下消费分区表,指定所需消费的分区,分区值之间使用','进行分隔。 | String | 否 | 无 |
|
startTime | 启动位点的时间。 | String | 否 | 无 | 格式为yyyy-MM-dd hh:mm:ss。如果没有设置该参数,且作业没有从State恢复,则从最早的Binlog开始消费Hologres数据。 |
source.scan.fetch-size | 批量读取时攒批大小。 | Integer | 否 | 512 | 无。 |
source.scan.timeout-seconds | 批量读取时超时时间。 | Integer | 否 | 60 | 单位为秒。 |
source.scan.filter-push-down.enabled | 全量读取阶段是否进行filter下推。 | Boolean | 否 | false |
|
结果表独有
参数 | 说明 | 数据类型 | 是否必填 | 默认值 | 备注 |
sink.write-mode | 写入模式。 | ENUM | 否 | INSERT |
|
sink.on-conflict-action | 主键冲突处理策略。 | ENUM | 否 | INSERT_OR_UPDATE |
|
sink.create-missing-partition | 当写入分区表时,是否根据分区值自动创建不存在的分区表。 | Boolean | 否 | false |
|
sink.delete-strategy | 撤回消息的处理策略。 | String | 否 | 无 |
说明 启用NON_PK_FIELD_TO_NULL选项可能会导致记录中只有主键,其他所有列都为null。 |
sink.ignore-null-when-update.enabled | 当sink.on-conflict-action='INSERT_OR_UPDATE'时,是否忽略更新写入数据中的Null值。 | Boolean | 否 | false |
说明 仅 |
sink.default-for-not-null-column.enabled | 如果将Null值写入Hologres表中Not Null且无默认值的字段,是否允许连接器帮助填充一个默认值。 | Boolean | 否 | true |
说明 仅 |
sink.remove-u0000-in-text.enabled | 如果写入时字符串类型包含\u0000非法字符,是否允许连接器帮助去除。 | Boolean | 否 | true |
|
sink.partial-insert.enabled | 是否只插入INSERT语句中定义的字段。 | Boolean | 否 | false |
说明
|
sink.deduplication.enabled | 写入攒批过程中,是否进行去重。 | Boolean | 否 | true |
说明
|
sink.aggressive-flush.enabled | 是否启用激进提交模式。 | Boolean | 否 | false | 设置为true时,即便攒批未达到预期条数,连接在空闲时将会被强制提交。在流量较小时,可以有效减少数据写入的延时。 说明 仅 |
sink.insert.check-and-put.column | 启用条件更新能力,并指定检查的字段名。 | String | 否 | 无 | 参数取值必须设置为Hologres表存在的字段名。 重要
|
sink.insert.check-and-put.operator | 条件更新操作的比较操作符。 | String | 否 | GREATER | 比较新record的check字段与表中旧值,符合条件判断操作符时进行更新。目前支持配置为GREATER、GREATER_OR_EQUAL、EQUAL、NOT_EQUAL、LESS、LESS_OR_EQUAL、IS_NULL、IS_NOT_NULL。 |
sink.insert.check-and-put.null-as | 当条件更新时,如果旧数据为null,则将该null值视为此参数配置的有效值。 | String | 否 | 无 | 由于在PostgreSQL中,任何值与NULL进行比较的结果均为FALSE,因此当表中的原有数据为NULL时,进行更新操作时需要设置一个NULL-AS作为参数,相当于SQL中的COALESCE函数。 |
sink.insert.batch-size | INSERT模式,Hologres Sink节点数据攒批条数(不是来一条数据处理一条,而是攒一批再处理)的最大值。 | Integer | 否 | 512 |
|
sink.insert.batch-byte-size | INSERT模式,Hologres Sink节点数据攒批字节数(不是来一条数据处理一条,而是攒一批再处理)的最大值。 | Long | 否 | 2*1024*1024字节,即2 MB | |
sink.insert.flush-interval-ms | INSERT模式,Hologres Sink节点数据攒批写入Hologres的最长等待时间。 | Long | 否 | 10000 |
维表独有
参数 | 说明 | 数据类型 | 是否必填 | 默认值 | 备注 |
lookup.read.batch-size | 点查Hologres维表时,攒批处理的最大条数。 | Integer | 否 | 256 | 无。 |
lookup.read.timeout-ms | 维表点查的超时时间。 | Long | 否 | 默认值为0,表示不会超时 | 无。 |
lookup.read.column-table.enabled | 是否使用列存表做维表 | Boolean | 否 | false | 列存表做维表时性能较差,因此维表默认仅支持行存表或者行列混存表。如果必须使用列存表做维表则需要设置此参数。 |
lookup.insert-if-not-exists | 是否插入不存在的数据 | Boolean | 否 | false | 如果点查发现维表中不存在当前数据,则插入当前数据。 |
cache | 缓存策略。 | String | 否 | None | Hologres仅支持None和LRU两种缓存策略。 |
cacheSize | 缓存大小。 | Integer | 否 | 10000 | 选择LRU缓存策略后,可以设置缓存大小。单位为条。 |
cacheTTLMs | 缓存更新时间间隔。 | Long | 否 | 见备注列。 | 单位为毫秒。cacheTTLMs默认值和cache的配置有关:
|
cacheEmpty | 是否缓存join结果为空的数据。 | Boolean | 否 | true |
重要 请根据实际业务场景决定是否启用此开关。若您希望在作业运行时关联新插入维表中的记录,请关闭此选项,或是将 |
async | 是否异步返回数据。 | Boolean | 否 | false |
说明 异步返回数据是无序的。 |