Doris数据源
支持版本
Doris是一种高性能、高扩展性的分布式分析型数据库,支持实时数据写入和快速查询,适用于海量数据的多维分析和报表生成等场景。
本数据集成服务支持华为云上MRS Doris与CloudTable Doris数据源,提供高效便捷的数据迁移服务。
实现原理
Doris Reader通过原生JDBC方式进行数据读取,DorisWriter写入支持JDBC/StreamLoad两种写入方式,提供高效的读写能力。
使用前准备及限制
- 网络要求
Doris数据源必须与CDM网络进行通讯,以确保数据传输的顺畅性。详情请参见网络打通。
- 权限要求
- MRS Doris读写权限
- 读权限:如果需要从MRS Doris读取数据,需要为数据集成服务的IAM用户或用户组授予MRS Doris的只读权限,如MRS ReadOnlyAccess系统策略,或者根据具体需求创建自定义策略,授予如SELECT等读取相关操作的权限。
- 写权限:如果需要向MRS Doris写入数据,需要为数据集成服务的IAM用户或用户组授予MRS Doris的写入权限,如MRS CommonOperations或MRS FullAccess系统策略,或者创建自定义策略,授予如INSERT INTO TABLE、CREATE TABLE等写入相关操作的权限。
- CloudTable Doris读写权限
- 读权限:为数据集成服务的 IAM 用户或用户组授予CloudTable的ReadOnlyAccess系统策略,或创建自定义策略授予SELECT等读取操作权限。
- 写权限:为数据集成服务的 IAM 用户或用户组授予CloudTable的CommonOperations或 FullAccess系统策略,或创建自定义策略授予INSERT INTO TABLE、CREATE TABLE等写入操作权限。
- MRS Doris读写权限
- 端口放通
- JDBC端口(9030):确保Doris服务的JDBC端口9030已放通,以便数据集成服务通过JDBC连接到Doris数据库进行数据读取和写入操作。
- StreamLoad端口(8030):如果使用StreamLoad方式写入数据,需要确保Doris服务的StreamLoad端口8030已放通,以便数据集成服务能够通过此端口将数据高效地写入Doris。
- StreamLoad端口(8050):如果使用StreamLoad方式写入数据且开启HTTPS加密,需要确保Doris服务的StreamLoad HTTPS端口8050已放通,以便数据集成服务能够通过此端口将数据安全地写入Doris。
驱动使用
- 建议使用MySQL驱动。
- Doris版本与驱动版本对应关系:
- Doris版本2.0以下:配置连接的驱动需要使用MySQL 5.x驱动版本。
- Doris版本2.0及以上:配置连接的驱动需要使用MySQL 8.0.27驱动版本。
支持的字段类型
不同Doris版本支持不同的数据类型。下面为您介绍本数据集成服务Doris当前主要字段的支持情况。各版本Doris的全量字段类型请参见Doris的官方文档。
|
分类 |
字段类型 |
读取是否支持 |
写入是否支持 |
|---|---|---|---|
|
数值 |
SMALLINT |
√ |
√ |
|
INT |
√ |
√ |
|
|
BIGINT |
√ |
√ |
|
|
LARGEINT |
√ |
√ |
|
|
FLOAT |
√ |
√ |
|
|
DOUBLE |
√ |
√ |
|
|
DECIMAL |
√ |
√ |
|
|
DECIMALV3 |
√ |
√ |
|
|
时间 |
DATE |
√ |
√ |
|
DATETIME |
√ |
√ |
|
|
DATEV2 |
√ |
√ |
|
|
DATATIMEV2 |
√ |
√ |
|
|
字符 |
CHAR |
√ |
√ |
|
VARCHAR |
√ |
√ |
|
|
STRING |
√ |
√ |
|
|
VARCHAR |
√ |
√ |
|
|
TEXT |
√ |
√ |
|
|
其余 |
POINT |
x |
x |
|
JSON |
√ |
√ |
|
|
ARRAY |
x |
x |
|
|
JSONB |
x |
x |
|
|
HLL |
x |
x |
|
|
BITMAP |
x |
x |
|
|
QUANTILE_STATE |
x |
x |
支持的迁移场景
数据集成离线同步支持以下三种同步方式,以满足不同数据迁移场景的需求:
- 单表同步
适用于数据入湖和数据上云场景下,表或文件级别的数据同步。支持的数据源类型请参考表/文件同步支持的数据源类型。
- 分库分表同步
适用于数据入湖和数据上云场景下,多库多表同步场景。支持的数据源类型请参考分库分表同步支持的数据源类型。
- 整库迁移
适用于数据入湖和数据上云场景下,离线或自建数据库整体同步场景。支持的数据源类型请参考整库同步支持的数据源类型。
需要注意的是,分库分表与整库迁移能力会根据不同region的上线支持情况有所不同,具体支持情况以页面为准。以下是针对Doris的支持迁移场景概览:
|
支持迁移场景 |
单表读取 |
单表写入 |
分库分表读取 |
分库分表写入 |
整库读取 |
整库写入 |
|---|---|---|---|---|---|---|
|
是否支持 |
√ |
√ |
x |
√ |
x |
x |
核心能力速览
- 连接配置
配置项
支持情况
说明
支持协议
JDBC/
Streamload
数据集成服务支持通过JDBC协议和Streamload方式与Doris进行数据交互。
JDBC协议适用于通用的数据库操作。
Streamload方式则提供了更高效的数据写入性能,尤其适合大规模数据的快速导入。
HTTPS支持
√
数据集成服务支持通过HTTPS协议与Doris进行安全的数据传输,确保数据在传输过程中的加密和完整性。
连接配置调优
√
支持 connectTimeout 等连接配置调优,可根据实际需求优化连接性能。
- 读取能力
配置项
支持情况
说明
增量读取
√
支持【where条件】或通过【sql方式】的增量读取。
读取模式
√
支持【库表模式】和【sql方式】。库表模式可直接读取指定表数据;SQL方式可通过SQL语句灵活查询,满足复杂需求。
分片并发
√
支持按常见字段做水平分片或根据分区进行分片,多线程并行抽取,显著提升吞吐效率。
自定义字段
√
可在任务级追加计算列、常量列或脱敏函数,满足个性化业务需求。
脏数据处理
√
支持异常数据写入脏数据桶,避免因少量异常数据导致作业失败。
- 写入能力
配置项
支持情况
说明
写入模式
JDBC/
STREAM_LOAD
数据集成服务支持通过JDBC协议和Streamload方式与Doris进行数据交互。JDBC协议适用于通用的数据库操作。
Streamload方式则提供了更高效的数据写入性能,尤其适合大规模数据的快速导入。
导入前后处理
√
支持 preSql/truncate 等操作,可在数据导入前后进行数据清洗和处理。
写入行数调优
√
在JDBC方式下,支持在连接中配置 【单次写入行数】参数调优,可根据实际需求优化写入性能。
在STREAM_LOAD方式下,支持【stream load 配置参数】,可根据实际需求优化写入性能。
脏数据处理
x
支持异常数据写入脏数据桶,避免因少量异常数据导致作业失败,暂不支持。
并发写入
√
支持并发写入,提升写入效率。
创建数据源
在DataArts Studio管理中心新建相应的数据源,详情请参见创建DataArts Studio数据连接。
创建数据集成离线作业
在DataArts Studio数据开发中新建Doris集成作业,详情请参见新建离线处理集成作业。