数据开发治理平台 WeData DLC 数据源(数据源列表)

这篇说说腾讯云DLC离线单表读写节点配置,涵盖数据来源、库表选择、切割键、筛选条件及写入模式(overwrite/append/upsert),并列出数据类型转换规则与常见问题(null转空字符串报错可用IFNULL解决)。 读取配置:支持选择或手动输入库表,切割键建议用主键或索引列。 写入配置:支持三种写入模式,可配置前置/后置SQL及DLC引擎。 类型转换:读取时INTEGER转LONG,写入时LONG转INTE。

相关产品
数据开发治理平台 WeData 产品页,含版本规格、价格与购买入口。

一、DLC 离线单表读取节点配置

参数 说明
数据来源 可用的 DLC 数据源。
库 支持选择、或者手动输入需读取的库名称。默认将数据源绑定的数据库作为默认库,其他数据库需手动输入库名称。当数据源网络不连通导致无法直接拉取库信息时,可手动输入数据库名称。在数据集成网络连通的情况下,仍可进行数据同步。
表 支持选择、或者手动输入需读取的表名称。
切割键 指定用于数据分片的字段,指定后将启动并发任务进行数据同步。你可以将源数据表中某一列作为切分键,建议使用主键或有索引的列作为切分键。
筛选条件(选填) 在实际业务场景中,通常会选择当天的数据进行同步,将 where 条件指定为 gmt_create>$bizdate。where 条件可以有效地进行业务增量同步。如果不填写 where 语句,包括不提供 where 的 key 或 value,数据同步均视作同步全量数据。
高级设置(选填) 可根据业务需求配置参数。

二、DLC 离线单表写入节点配置

参数 说明
数据去向 需要写入的 DLC 数据源。
Catalog 需要写入的 DLC Catalog 目录。
库 支持选择、或者手动输入需写入的库名称。默认将数据源绑定的数据库作为默认库,其他数据库需手动输入库名称。当数据源网络不连通导致无法直接拉取库信息时,可手动输入数据库名称。在数据集成网络连通的情况下,仍可进行数据同步。
表 支持选择、或者手动输入需写入的表名称。当数据源网络不连通导致无法直接拉取表信息时,可手动输入表名称。在数据集成网络连通的情况下,仍可进行数据同步。当来源表为 MySQL、ES、Kafka 类型,支持一键建立目标表。
写入模式 DLC 写入支持三种模式:overwrite:覆盖原有数据写入。append:追加写入,主键冲突时报错。upsert:更新写入,根据用户指定的唯一键进行判断,唯一键相同时更新数据,唯一键不同时追加数据。请确保唯一键的正确性,避免写入报错。
DLC 引擎 DLC 写入使用的引擎。
前置 SQL(选填) 执行同步任务之前执行的 SQL 语句,根据数据源类型对应的正确 SQL 语法填写 SQL。
后置 SQL(选填) 执行同步任务之后执行的 SQL 语句,根据数据源类型对应的正确 SQL 语法填写 SQL。
高级设置(选填) 可根据业务需求配置参数。

三、读取

DLC 数据类型 内部类型
INTEGER LONG
FLOAT、DOUBLE、DECIMAL DOUBLE
STRING、VARCHAR、CHAR、ARRAY STRING
TIMESTAMP、DATE、TIMESTAMP WITH TIME ZONE DATE
BOOLEAN BOOLEAN

四、写入

内部类型 DLC 数据类型
LONG INTEGER
DOUBLE FLOAT、DOUBLE、DECIMAL
STRING STRING、MAP、STRUCT
DATE TIMESTAMP、DATE、TIMESTAMP WITH TIME ZONE
BOOLEAN BOOLEAN
BYTES BINARY

五、1. DLC 字段实际值为 null 但读出的值为'空字符串,导致转为 LONG 类型报脏数据

问题原因:

由于集成 DLC 读取任务是向 DLC 提交查询 sql,DLC 引擎处理完毕后集成直接读取的结果文件,文件中会把 null 处理成空字符串,而在集成这边又不支持处理成指定值。

解决方案:

在配置任务时使用 DLC 函数 IFNULL 进行转换,将值的预处理在 DLC 引擎那边完成。其它类似情况都可参考使用 DLC 函数。

六、DLC 脚本 Demo

如果你配置离线任务时,使用脚本模式的方式进行配置,你需要在任务脚本中按照脚本的统一格式要求编写脚本中的 reader 参数和 writer 参数。

{ "job": { "content": [ { "reader": { "name": "DLCreader", "parameter": { "password": "******", "resultFormat": "CSV", "hadoopConfig": { "service.region": "ap-beijing", "fs.cosn.userinfo.secretId": "***", "service.engine.type": "BATCH", "service.jwt.secret": "******", "executor.secret.key": "***", "owner.uin": "******", "operator.uin": "******", "fs.cosn.trsf.fs.ofs.tmp.cache.dir": "/tmp/", "DLC.spark.executor.num": "2", "DLC.spark.executor.max.num": "5", "tmp.token.open": "true", "fs.cosn.userinfo.secretKey": "***", "fs.cosn.impl": "org.apache.hadoop.fs.CosFileSystem", "fs.cosn.trsf.fs.ofs.user.appid": "******", "user.appid": "******", "executor.secret.id": "***", "fs.cosn.tmp.dir": "/tmp/hadoop_cos", "fs.cosn.credentials.provider": "com.tencent.wedata.datax.plugin.reader.DLCreader.provider.WeDataCredentialsProvider", "gateway.url": "***", "fs.cosn.bucket.region": "ap-beijing", "DLC.spark.driver.size": "large", "fs.cosn.trsf.fs.ofs.bucket.region": "ap-beijing", "DLC.spark.executor.size": "medium" }, "column": ["id", "name"], "connection": [ { "jdbcUrl": ["jdbc:DLC:DLC.internal.tencentcloudapi.com?task_type=SparkSQLTask&database_name=source_database&datasource_connection_name=DataLakeCatalog&region=ap-beijing&data_engine_name=source_engine"], "table": ["source_table"] } ], "where": "id>10", "skipHeader": "true", "splitPk": "id", "username": "***" } }, "transformer": [], "writer": { "name": "DLCwriter", "parameter": { "endpoint": "DLC.internal.tencentcloudapi.com", "secretKey": "***", "dbName": "sink_database", "hadoopConfig": { "fs.cosn.userinfo.region": "ap-beijing", "service.region": "ap-beijing", "qcloud.DLC.credential.provider.class": "com.tencent.wedata.datax.plugin.writer.DLCwriter.provider.WeDataDLCCredentialProvider", "service.engine.type": "BATCH", "service.jwt.secret": "******", "executor.secret.key": "***", "owner.uin": "******", "operator.uin": "******", "fs.cosn.posix_bucket.fs.impl": "org.apache.hadoop.fs.CosNFileSystem", "tmp.token.open": "true", "DLC.spark.executor.num": "1", "DLC.spark.executor.max.num": "3", "request.identity.token": "******", "fs.lakefs.impl": "org.apache.hadoop.fs.lakefs.LakeFileSystem", "fs.cosn.impl": "org.apache.hadoop.fs.CosFileSystem", "user.appid": "******", "executor.secret.id": "***", "service.secret.id": "***", "fs.cosn.credentials.provider": "com.tencent.wedata.datax.plugin.writer.DLCwriter.provider.WeDataFsCosCredentialsProvider", "service.endpoint": "DLC.internal.tencentcloudapi.com", "gateway.url": "***", "DLC.spark.driver.size": "medium", "service.secret.key": "***", "DLC.spark.executor.size": "medium" }, "column": ["id", "name"], "jdbcUrl": "jdbc:DLC:DLC.internal.tencentcloudapi.com?task_type=SparkSQLTask&database_name=sink_database&datasource_connection_name=DataLakeCatalog&region=ap-beijing&data_engine_name=sink_engine", "secretId": "***", "writeMode": "overwrite", "region": "ap-beijing", "tableName": "sink_table", "on": [] } } } ], "setting": { "errorLimit": { "record": 0 }, "speed": { "byte": -1, "channel": 1 } } }}

赞 (0)
上一篇 4天前
下一篇 4天前