Apache Doris 整合 FLINK CDC + Iceberg 构建实时湖仓一体的联邦查询
内容提要
本文介绍了使用Flink CDC + Iceberg + Doris构建实时湖仓一体的联邦查询分析,展示了Doris和Iceberg的使用,介绍了Doris的架构和支持的外部表类型,演示了创建MySQL数据库表和初始化数据,创建Iceberg Catalog和Mysql CDC表,以及在Doris中创建Iceberg外表和查询Iceberg数据。文章指出Doris支持联合查询分析,提供统一的查询分析入口。
延伸解读
Doris 外部表支持的时间线
文章明确列出了 Doris 各版本对外部数据源的支持节奏:1.0 版本支持 Hive 外表,1.1 版本支持 Iceberg 外表,1.2 版本支持 Hudi 外表。此外,Doris 还通过 ODBC 方式支持 MySQL、Postgresql、Oracle、SQLServer,并支持 Elasticsearch 外表。这意味着读者在规划联邦查询方案时,需要先确认自己的 Doris 版本是否覆盖目标数据源,避免因版本不匹配导致功能不可用。
Iceberg 外表的创建参数要点
在 Doris 中创建 Iceberg 外表时,ENGINE 必须指定为 ICEBERG,PROPERTIES 中需要配置 iceberg.hive.metastore.uris、iceberg.database、iceberg.table 以及 iceberg.catalog.type。文章特别指出,iceberg.catalog.type 默认为 HIVE_CATALOG,且当前仅支持该方式,后续才会支持更多 Iceberg catalog 接入方式。因此,如果读者的 Iceberg 元数据并非存放在 Hive
联邦查询的边界与扩展方向
文章演示了 Doris 对 Iceberg 单表的查询,并说明还可以联合 Doris 内部表、其他 ODBC 外表、Hive 外表、ES 外表等进行联合查询分析,通过 Doris 对外提供统一的查询分析入口。这提示读者,该架构的价值在于减少数据同步的繁琐工作,但文章并未涉及跨源查询的性能表现、数据一致性保障或并发能力,实际落地时仍需结合自身场景评估这些未展开的方面。
Q&A
Apache Doris 1.1 版本新增了哪些外部表支持?
Doris 1.1 版本支持 Iceberg 外表。此外,1.0 版本支持 Hive 外表,1.2 版本支持 Hudi 外表。
如何用 Flink CDC + Iceberg + Doris 搭建实时湖仓联邦查询?
步骤包括:1. 从 MySQL 通过 Flink Binlog 实时采集数据;2. 在 Flink 中创建 Iceberg 表,元数据存于 Hive;3. 在 Doris 中创建 Iceberg 外表;4. 通过 Doris 统一查询入口查询分析 Iceberg 数据,并可与其他数据源关联。
Doris 支持哪些外部数据源进行联邦查询?
Doris 通过 ODBC 支持 MySQL、Postgresql、Oracle、SQLServer,同时支持 Elasticsearch、Hive、Iceberg、Hudi 外表。
在 Doris 中创建 Iceberg 外表的 SQL 语句是什么?
CREATE TABLE `all_users_info` ENGINE = ICEBERG PROPERTIES ( "iceberg.database" = "iceberg_hive", "iceberg.table" = "all_users_info", "iceberg.hive.metastore.uris" = "thrift://localhost:9083", "iceberg.catalog.type" = "HIVE_CATALOG" );
创建 Iceberg Catalog 时需要配置哪些参数?
需要配置:'type'='iceberg','catalog-type'='hive','uri'='thrift://localhost:9083','clients'='5','property-version'='1','warehouse'='hdfs://localhost:8020/user/hive/warehouse'。
Doris 在湖仓一体架构中起到什么作用?
Doris 提供统一的查询分析入口,支持联邦查询,可以联合查询 Iceberg 外表数据与 Doris 内部数据或其他外部数据源数据,省去数据同步的繁琐工作,提升开发效率。