导读:天翼云基于 Apache Doris 成功落地项目已超 20 个,整体集群规模超 50 套,部署节点超 3000 个,存储容量超 15PB。天翼云基于 Apache Doris 和 Apache Iceberg 构建的湖仓一体方案,兼具灵活性、高性能和低成本优势,同时满足了报表和 BI 分析、湖仓融合分析、日志存储分析、高并发实时分析、MPPDB 国产化替代等多种场景需求。
本文转录自李康(天翼云 大数据总监)在 Doris Summit Asia 2024 上的演讲,经编辑整理。
天翼云是中国电信旗下一家科技型、平台型、服务型公司,以“云网融合、安全可信、绿色低碳、生态开放”四大优势向客户提供公有云、私有云、专属云、混合云、边缘云全栈云服务。目前,天翼云基于 Apache Doris 成功落地项目已超 20 个,整体集群规模超 50 套,部署节点超 3000 个,存储容量超 15PB。 天翼云基于 Apache Doris 和 Apache Iceberg 构建的湖仓一体方案,兼具灵活性、高性能和低成本优势,同时满足了报表和 BI 分析、湖仓融合分析、日志存储分析、高并发实时分析、MPPDB 国产化替代等多种场景需求。
Apache Doris 湖仓一体方案
天翼云数据来源众多,在数据整合和共享方面面临挑战。早期采用的数据仓库与数据湖分离的架构导致数据分散在不同系统和存储中,形成了数据孤岛。此外,面对大规模和多样化数据时,常常遭遇性能不足和灵活性差的问题。
为此,天翼云全新架构基于 Apache Doris 和 Apache Iceberg 实现湖仓一体方案,构建了一个兼具灵活性、高性能和低成本的数据平台。
天翼云的数据来源多样,包括 B 域、O 域和 M 域等多方数据。数据通过 Kafka 进行采集,并使用 Flink 和 Spark 实现数据加工处理。依据数据时效性的需求,数据被接入 Iceberg 数据湖或 Doris 内部存储。在这一架构中,Doris 扮演了两个重要角色:
- 数据湖分析处理引擎: Doris 与 Iceberg 数据湖深度融合,能够直接访问 Iceberg 表中数据,实现湖中数据的加速查询。分析结果不仅可以展示给应用层,也可以通过 Doris 写回到 Iceberg 中进行存储。消除了数据孤岛、提升了分析效率。
- 实时分析引擎: Doris 具备强大的实时分析能力,能够对数据进行极速分析。对于时效性要求更高(秒级)的数据,经过处理后直接流入 Doris,使其能够快速进行分析和对外服务。
在多场景中的应用实践
01 实时报表与多维分析
实时报表和多维分析是天翼云内部应用最广泛的场景之一,主要面向数据分析人员,提供经营分析、地市公式 BI 等服务。该场景将 Doris 作为数据分析和即席查询工具,显著提升了各省数据平台的查询效率,推动了数字化转型的进程。
- 加速报表周期性:使用 Doris 替代原有经分系统的 Impala+Redis 架构,解决 Impala 稳定性差和 Redis 缓存量有限的问题。这一转变不仅加速了报表的生成周期,还提高了整体的数据处理能力,使得数据分析更加高效。
- 实现去“O”目标: 通过能开平台直连 Doris,成功替代数据集市 Oracle 数据库。基于 Doris 高效分析能力,满足业务侧对数据调用及查询响应的严格要求,响应时间控制在 0.4s~0.7s。
- 秒级别快速检索: 使用 Doris 替代地市公司 BI 系统使用的 PG 组件,使得在数据分析过程中,计数、聚合和单条快速检索等运算都能在秒级内完成。这种快速检索能力极大地提高了数据分析的实时性,为业务决策提供了更加及时和准确的数据支持。
- 统一多技术栈: 基于 Doris 替换了多个技术组件,实现技术栈的统一,显著简化了架构。这不仅降低了系统的复杂性,还带来了性能的显著提升。
02 湖仓融合分析
湖仓一体架构在天翼云内部的应用已成熟。Apache Iceberg 作为主要的湖格式,其中存放 TB ~ PB 级别的数据,再通过 Doris 引擎对 Iceberg 数据进行查询加速,支撑了 BI 报表、实时战报、智能运维、在线应用等多种业务场景。
下图是以 Doris 作为核心分析引擎的湖仓一体架构全景图:
Doris 作为核心分析引擎,可以直接访问 Iceberg 表数据进行数据分析获取结果。结合数据缓存、物化视图透明加速等能力,可以极大的提升湖上数据得分析性能。在权限管理方面,天翼云使用 Apache Ranger 对 Doris、Spark、Hive、Iceberg 等组件进行统一管理。结合 Doris 对包括内表在内的其他数据源的关联查询能力,为业务提供统一、高效的实时数据分析能力。
在湖仓一体建设过程中,天翼云和 Doris 社区紧密合作,在查询性能和 Iceberg 生态对接方面共建完成了大量工作,显著提升了 Doris 在湖仓融合场景下的实践能力。
-
查询性能调优
在查询性能方面,天翼云和 Doris 社区共同完成了复杂类型(Array、Map、Struct)的延迟物化功能。延迟物化是减少网络 IO 的一项重要技术,开启延迟物化功能后,数据扫描节点会优先读取谓词条件列,在使用过滤后的行号,读取剩余的列数据。如下 SQL:
SELECT name, age, email, phone, address FROM users WHERE age > 25 AND city = 'Shanghai';
复制没有延迟物化的情况下,会将
name, age, email, phone, address
这 5 列数据全部读取后,再进行age > 25 AND city = 'Shanghai';
的条件过滤。而开启延迟物化后,会先读取age
和city
列进行条件过滤,再读取剩余的email, phone, address
列。当谓词条件过滤率很高时,可以极大减少不必要的数据读取。优化后,相关类型查询的 IO 请求量从几百 GB 降至几百 MB,有效缓解了网络带宽压力,并提升了整体查询性能。
-
Iceberg 表写回
天翼云在 2024 年中旬,结合自身业务的发展和用户需求,亟需在 Doris 中支持 Iceberg 的写回能力,以便用户能够在 Doris 对 Iceberg 表数据进行完整的数据处理操作。因此,天翼云和 Doris 社区合作,共同完成了 Iceberg 表的写回能力,并对分区数据倾斜、写入并发度调整等方面进行了深入的设计和开发。目前该功能已经在 2.1 系列版本发布。
通过 Iceberg 写回能力,用户可以在 Doris 中进行数据处理。结合异步物化视图进行数据的分层加工,并将结果数据直接写回到 Iceberg 表。利用 Iceberg 表基于共享存储的特性,这些分析后的结果可以方便的共享给其他 Doris 集群或其他业务,达到数据共享的目的。
未来,天翼云将进一步优化和增强 Doris 对 Iceberg 的数据处理能力,包括数据 Rewrite、Snapshot 管理等功能,将 Doris 打造成完善的湖仓数据处理引擎。
03 日志存储分析
在现代 IT 环境中,日志管理和分析是确保系统安全性和高效性的关键。传统的日志架构,如 ELK(Elasticsearch, Logstash, Kibana),虽然广泛应用,但在处理大规模日志数据时,常常面临成本高昂、查询效率低下、扩展性不足的问题。这一问题在省市级别的安全网关和系统运维场景中尤为突出,随着数据量的激增,日志检索和存储的压力不断增加。
因此,天翼云决定通过引入 Doris 替代传统的 ELK 架构,提升日志系统的查询效率,以满足安全网关和系统运维等场景基于日志的在线应用、聚类分析、异常分析、智能诊断的服务。
具体来说,通过 Agent 或 Open Telemetry 上报日志数据。对于日志量较大或重要性较高的日志,首先将其存储在 Kafka 中,以确保数据的可回溯性。随后,这些日志数据可以通过 Flink 进行加工,或直接使用 Doris 的 Routine Load 功能导入到 Doris 中。对于日志量较小的业务系统(如天级别百亿数据量以下的系统),则直接通过 Open Telemetry 写入 Doris。最终由 Doris 提供对外的服务支持。
通过引入 Doris,最终实现写入吞吐提升 5 倍、存储成本降低 80%、百亿级日志检索秒级响应、查询效率提升 3 倍的显著收益。
04 物联网数据分析
天翼云的物联网平台(AIoT)主要是对智能监控设备、用户行为数据、环境监测等数据进行分析。各设备实时上传数据,平台需处理超过 1 万的并发请求,确保高效运行。数据表规模庞大,总记录数达到百亿,单日新增数据可达几个亿,且大多数查询返回单行结果,要求快速执行和高效查询。同时,系统需实时更新数据,以确保信息的时效性和准确性。
基于 3AZ 多活云资源池(苏州、无锡、太湖三个可用区),天翼物联网平台通过云原生技术完成了架构升级。通过引入 Doris,提供海量数据的高并发查询能力,助力物联网行业应用的快速发展。
该项目充分运用了 Doris 在高并发读取和写入场景下的技术特性,包括:
- 合理的分区分桶规划: 合理的分区分桶规划能够确保数据均匀的分布在 Doris 集群内。不论写入还是查询操作,都能充分且均衡的利用集群资源。同时,通过分区分桶裁剪能力,能够极大程度减少单查询的资源消耗,提升并发能力。
- 强大的数据索引: Doris 支持丰富的数据索引类型。包括智能索引、布隆过滤器、倒排索引等。通过合理使用索引,可以进一步减少不必要的数据扫描,提升数据的检索速度。
- 合理的导入批次: 通过合理的设置每批次导入数据量的大小,可以在导入吞吐和数据时效性之间找到最佳平衡点。用户可以在客户端进行数据赞批,也可以利用 Doris 的 Group Commit 功能在 Doris 服务端进行赞批。服务端攒批降低了用户维护导入状态的成本,也降低了客户端数据处理的压力。
天翼云通过合理运用以上技术手段,并进行了详细测试和调优,最终在物联网业务中实现了平均 QPS 8000,峰值 QPS 15000 的性能表现。
05 信创 MPPDB 应用
天翼云围绕国产化基础设施(CPU、OS),在采集、存储、调度和计算等四个核心业务层面构建国产化大数据平台。其中,Doris 作为大数据 MPP 计算的重要角色,经过优化后成功在鲲鹏芯片上落地,并进行了权限扩展和安全加固,为国产化大数据平台的构建贡献了力量。
天翼云与Doris 社区、鲲鹏 ARM 芯片联合共建了以下能力:
- 编译效率提升:结合毕昇编译器,Doris 编译效率提升 30%。开发和部署新功能的速度显著加快,缩短了产品的迭代周期。
- 运行效率提升: 优化 Bitshuffle ,使得 Doris 的运行效率提升了 25%。这一提升不仅提高了数据处理的速度,还有效降低了资源消耗,进一步增强了系统的稳定性和可扩展性,支持更大规模的数据集处理。
- 数据安全性增强:实施安全加固措施,包括数据传输和存储的加密处理、访问控制的优化以及实时监测机制的引入,确保用户数据在使用过程中的安全性,有效防止了未授权访问和数据泄露。
结束语
天翼云基于 Apache Doris 成功落地项目已超 20 个,整体集群规模超 50 套,存储节点达 3000 个,存储容量超 15PB。所服务场景包括报表和 BI 分析、湖仓融合分析、日志存储分析、高并发实时分析、MPPDB 国产化替代等多个场景。 未来,天翼云也将继续推广 Doris,并在以下几方面发力:
- 存算分离:探索 Doris 存算分离架构,利用存算分离解决业务场景中数据共享、冷热分离,资源隔离等难题。
- 业务落地:积极推广 Doris 在数据分析、日志检索、即席查询等场景的落地,助力客户实现数字化转型。
- 推动国产化:继续优化 Doris 在 ARM 平台的性能问题,推动国产化进程。
- 拥抱社区:积极参与社区共建工作,合作完善元数据、Catalog、CRC、存算分离等模块建设,推动 Doris 向好发展。