一、版本说明
| Flink 版本 | 说明 |
| 1.13 | 仅支持 Sink |
| 1.14 | 暂不支持 |
| 1.16 | 仅支持 Sink |
| 1.18 | 仅支持 Sink |
| 1.20 | 仅支持 Sink |
二、使用范围
可以作为 Sink 使用。目前支持写入 DLC 托管的原生表。
三、DDL 定义
CREATE TABLE `eason_internal_test`( `name` STRING, `age` INT) WITH ( 'connector' = 'iceberg-inlong', 'catalog-database' = 'test', 'catalog-table' = 'eason_internal_test', 'default-database' = 'test', 'catalog-name' = 'HYBRIS', 'qcloud.dlc.secret-id' = 'xxx', 'qcloud.dlc.secret-key' = 'xxx', 'qcloud.dlc.region' = 'ap-guangzhou', 'qcloud.dlc.jdbc.url' = 'jdbc:dlc:dlc.internal.tencentcloudapi.com?task_type=SparkSQLTask&database_name=test&datasource_connection_name=DataLakeCatalog®ion=ap-guangzhou&data_engine_name=dailai_test', 'user.appid' = '1257058945');
四、通用参数
| 参数值 | 必填 | 默认值 | 描述 |
| connector | 是 | 无 | connector 类型,必须填 iceberg-inlong |
| catalog-database | 是 | 无 | DLC 内表所在的数据库名称 |
| catalog-table | 是 | 无 | DLC 内表名称 |
| default-database | 是 | 无 | DLC 内表所在的数据库名称 |
| catalog-name | 是 | 无 | catalog 名称,必须填 HYBRIS |
| qcloud.dlc.secret-id | 是 | 无 | DLC 用户的 secretId,从 https://console.cloud.tencent.com/cam/capi 中获取 |
| qcloud.dlc.secret-key | 是 | 无 | DLC 用户的 secretKey,从 https://console.cloud.tencent.com/cam/capi 中获取 |
| qcloud.dlc.region | 是 | 无 | DLC 所在地域,必须填 ap-地域 格式 |
| qcloud.dlc.jdbc.url | 是 | 无 | DLC jdbc 接入 URL,格式见 JDBC 访问 |
| user.appid | 是 | 无 | DLC 用户的 appid |
| sink.ignore.changelog | 否 | 是 | 是否忽略 delete 数据,默认为 false,设为 true 则进入 append mode |
五、DLC 表配置
Upsert 模式– DLC 建表语句CREATE TABLE `bi_sensor`( `uuid` string, `id` string, `type` string, `project` string, `properties` string, `sensors_id` string, `time` int, `hour` int) PARTITIONED BY (`time`);– 将目标表设为 v2 表,允许 upsertALTER TABLE `bi_sensor` SET TBLPROPERTIES ('format-version'='2','write.metadata.delete-after-commit.enabled' = 'true', 'write.metadata.previous-versions-max' = '100', 'write.metadata.metrics.default' = 'full', 'write.upsert.enabled'='true', 'write.distribution-mode'='hash');– oceanus sink DDL,dlc 的主键和分区字段必须在 flink 定义的主键字段中create table bi_sensors ( `uuid` STRING, `id` STRING, `type` STRING, `project` STRING, `properties` STRING, `sensors_id` STRING, `time` int, `hour` int, PRIMARY KEY (`uuid`, `time`) NOT ENFORCED) with (…)
注意:若你写入的 DLC 是基于元数据加速桶的,需要参考如下操作流程。
六、客户为 Oceanus 集群设置元数据加速桶的 DLC 权限
1. 进入 数据湖计算 DLC 控制台,单击全局配置 > 存储配置 > 元数据加速桶配置。
2. 选择需要写入的托管桶,单击配置。
3. 单击新增权限配置,网络选择创建 Oceanus 集群时绑定的子网。Oceanus 集群子网可以在集群信息中查看。
4. 为作业添加配置高级参数,详情请参见高级参数。
flink.hadoop.fs.AbstractFileSystem.ofs.impl: com.qcloud.chdfs.fs.CHDFSDelegateFSAdapterflink.hadoop.fs.ofs.impl: com.qcloud.chdfs.fs.CHDFSHadoopFileSystemAdapterflink.hadoop.fs.ofs.tmp.cache.dir: /tmp/chdfs/flink.hadoop.fs.ofs.upload.flush.flag: trueflink.hadoop.fs.ofs.user.appid: 客户的 appidflink.hadoop.fs.cosn.trsf.fs.ofs.user.appid: 客户的 appidflink.hadoop.fs.cosn.trsf.fs.ofs.bucket.region: cos 所在地域(例如:弗吉尼亚对应 na-ashburn,广州对应 ap-guangzhou)flink.hadoop.fs.cosn.trsf.fs.ofs.tmp.cache.dir: /tmp/chdfs# 注意:使用 hadoop 用户权限则添加下面参数,使用 flink 用户无需添加containerized.taskmanager.env.HADOOP_USER_NAME: hadoopcontainerized.master.env.HADOOP_USER_NAME: hadoop