跳到主要内容
版本:3.x

Doris

适用版本Cloud 功能TapData Cloud 为您提供了云端服务,适合需要快速部署、低前期投资场景,帮助您更好地专注于业务发展而非基础设施管理,注册账号即可领取免费的 Agent 实例,欢迎试用。企业版功能TapData Enterprise 可部署在您的本地数据中心,适合对数据敏感性或网络隔离有严格要求的场景,可服务于构建实时数仓,实现实时数据交换,数据迁移等场景。社区版功能TapData Community 是一个开源的数据集成平台,提供基础的数据同步和转换功能,可通过 Docker 一键部署,帮助您快速探索和实施数据集成项目。随着项目或企业发展,您可以平滑升级至 TapData Cloud 或 TapData Enterprise,以获得更多高级功能或服务支持。

Doris 适用于实时数据分析和报表,支持高并发查询和复杂分析,广泛应用于数据仓库、BI报表和数据可视化。Tapdata 支持将 Doras 作为源或目标库来构建数据管道,帮助您快速完成大数据分析场景下的数据流转。接下来,跟随本文介绍在 Tapdata 平台上连接 Doris 数据源。

支持版本与架构

Dorix 1.2 ~ 3.0(部署架构无限制)

支持数据类型

类别数据类型
字符串CHAR、VARCHAR、STRING、TEXT
布尔BOOLEAN
整数TINYINT、SMALLINT、INT、BIGINT、LARGEINT
数值DECIMAL、DECIMALV3、FLOAT、DOUBLE
日期/时间DATE、DATEV2、DATETIME、DATETIMEV2
聚合HLL

支持同步的操作

  • DML:INSERT、UPDATE、DELETE
  • DDL(仅在作为目标时支持):ADD COLUMN、CHANGE COLUMN、DROP COLUMN、RENAME COLUMN
提示
  • 作为源库时,增量数据同步需通过字段轮询的方式实现,且不支持采集 DDL 操作,详见变更数据捕获(CDC)
  • 作为目标库时,您还可以通过任务节点的高级配置,选择 DML 写入策略:插入冲突场景下是否转为更新。

注意事项

  • 受限于 Doris 特性,作为同步目标库时应尽量避免频繁的事务性操作(如频繁更新和删除),以免影响写入性能。
  • 当前 TapData 仅支持通过 Stream Load 方式写入数据,因此,对于使用明细模型聚合模型创建的表,更新和删除操作的支持尚不完整。
  • 作为同步目标库时,为提升大批量数据插入的性能,建议根据单条记录的大小,将批次大小配置为 1 万 ~ 10 万条记录,注意避免设置过大以免引发 OOM 问题。
  • Doris 作为目标库进行大规模数据入仓时,建议在业务低峰期执行,以避免占用数据库 I/O 资源,影响查询性能。

准备工作

  1. 登录 Doris 数据库,执行下述格式的命令,创建用于数据同步/开发任务的账号。

    CREATE USER 'username'@'host' IDENTIFIED BY 'password';
    • username:用户名。
    • password:密码。
    • host:允许该账号登录的主机,百分号(%)表示允许任意主机。

    示例:创建一个名为 tapdata 的账号。

    CREATE USER 'tapdata'@'%' IDENTIFIED BY 'Tap@123456';
  2. 为刚创建的账号授予权限,您也可以基于业务需求设置更精细化的权限控制。

-- 请根据下述提示更换 catalog_name、database_name 和 username
GRANT SELECT_PRIV ON catalog_name.database_name.* TO 'username'@'%';
提示

请更换上述命令中的信息:

  • catalog_name:数据目录名称,默认名称为 internal,可以通过 SHOW CATALOGS 命令查看已创建的数据目录。更多介绍,见多源数据目录
  • database_name:要授予权限的数据库名称。
  • username:用户名。

连接 Doris

  1. 登录 Tapdata 平台

  2. 在左侧导航栏,单击连接管理

  3. 单击页面右侧的创建

  4. 在弹出的对话框中,搜索并选择 Doris

  5. 在跳转到的页面,根据下述说明填写 Doris 的连接信息。

    连接 Doris

    • 基本设置
      • 连接名称:填写具有业务意义的独有名称。
      • 连接类型:支持将 Doris 作为源或目标库。
      • 数据库地址:Doris 的连接地址。
      • 端口:Doris 的查询服务端口,默认端口为 9030
      • 开启 HTTPS:选择是否启用无证书的 HTTPS 连接功能。
      • HTTP/HTTPS 接口地址:FE 服务的 HTTP/HTTPS 协议访问地址,包含地址和端口信息,默认端口为 8030
      • 数据库名称:一个连接对应一个数据库,如有多个数据库则需创建多个数据连接。
      • 账号密码:分别填写数据库的账号和密码。
    • 高级设置
      • Doris 目录:Doris 的目录,其层级在数据库之上,如使用默认目录可置空,更多介绍,见多源数据目录
      • 其他连接参数:额外的连接参数,默认为空。
      • 时区:默认为 0 时区,如果更改为其他时区,不带时区的字段(如 DATETIME、DATETIMEV2)会受到影响,而 DATE、DATE2 类型则不会受到影响。
      • Agent 设置:默认为平台自动分配,您也可以手动指定 Agent。
      • 模型加载时间:如果数据源中的模型数量少于10,000个,则每小时更新一次模型信息。但如果模型数量超过10,000个,则刷新将在您指定的时间每天进行。
      • 开启心跳表:当连接类型为源头或目标时,可启用该开关。TapData 会在源库创建 _tapdata_heartbeat_table 心跳表,并每 10 秒更新一次(需具备相应权限),用于监测数据源连接与任务的健康状况。心跳任务在数据复制/开发任务启动后自动启动,您可在数据源编辑页面查看心跳任务
  6. 单击页面下方的连接测试,提示通过后单击保存

    提示

    如提示连接测试失败,请根据页面提示进行修复。

节点高级特性

在配置数据同步/转换任务时,将 Doris 作为目标节点时,为更好满足业务复杂需求,最大化发挥性能,TapData 为其内置更多高级特性能力,您可以基于业务需求配置:

Doris 节点高级特性

配置说明
键类型选择建表类型,支持 Unique(默认,主键模型) 、Aggregate(聚合模型)、Duplicate(明细模型),更多介绍,见数据模型
当键类型选择为 Duplicate,且使用追加模式写入时,由于无更新条件,还需要指定排序字段。
分区字段非传统意义上的分区,而是指建表时的 DISTRIBUTED BY HASH 分桶键。若手动设置分桶键,将优先使用;未设置则默认选主键或更新条件字段,若都未指定则使用全字段(不推荐)。
分桶数创建表时选择分桶数,需基于实际业务情况设置,更多介绍,见分桶数设计建议
表属性支持基于业务需求,自行指定建表时的表属性
写入缓冲区容量默认为 10240 KB,适当调大可提升大批量插入数据的性能,也可以调低以限制内存的占用避免发生 OOM。
写入格式支持 JSON(默认)和 CSV 两种格式,JSON 格式相较于 CSV 更安全,适合处理复杂数据类型,但性能略低,可基于数据安全性和性能需求选择。