济南做网站公司,天津商务网站建设,徐州网站建设 网站推广,海南省建设银行官方网站招聘导读#xff1a;Cisco WebEx 早期数据平台采用了多系统架构#xff08;包括 Trino、Pinot、Iceberg 、 Kyuubi 等#xff09;#xff0c;面临架构复杂、数据冗余存储、运维困难、资源利用率低、数据时效性差等问题。因此#xff0c;引入 Apache Doris 替换了 Trino、Pinot… 导读Cisco WebEx 早期数据平台采用了多系统架构包括 Trino、Pinot、Iceberg 、 Kyuubi 等面临架构复杂、数据冗余存储、运维困难、资源利用率低、数据时效性差等问题。因此引入 Apache Doris 替换了 Trino、Pinot 、 Iceberg 及 Kyuubi 技术栈依赖于 Doris 的实时数据湖能力及高性能 OLAP 分析能力统一数据湖仓及查询分析引擎显著提升了查询性能及系统稳定性同时实现资源成本降低 30%。 WebEx 是 Cisco 推出的远程、实时的网络会议平台。全球财富 500 强公司中约有 95% 的公司采用 WebEx 来作为视频会议工具日均会议次数突破 150 万次全球业务市场超过 160 个。随着市场规模的扩大及使用者持续增加亟需一个数据平台提供全面的数据及处理分析以支持故障排查、批量和实时的分析、BI 和大模型的应用、可观测性与数据治理等需求。
在此背景下WebEx 数据平台从早期的多系统架构包括 Trino、Pinot、Iceberg 、 Kyuubi 等改造为基于 Apache Doris 的统一架构。使用 Doris 替换了 Trino、Pinot 、 Iceberg 及 Kyuubi 技术栈统一数据湖仓及查询分析引擎。显著提升了查询性能及系统稳定性同时实现资源成本降低 30%。新架构目前已应用于 CCA Peak Ports 项目、Dashboard 系统、统一认证授权等业务场景中。
早期架构及痛点
为适配复杂的业务需求早期架构融合了多种技术栈。数据源通过 Kafka 进行数据抽取由 UDP 调度系统Unified Data Platform调度 ETL/Spark/Flink 等数据处理任务的平台将数据调度并存储到湖仓层的 Iceberg 中。Trino、Kyuubi 收到查询请求后提供查询服务Pinot 主要用于 OLAP 分析。 由于该架构技术栈多样、结构复杂在实际应用中引发了诸多问题
运维困难 多种数据库并存运维管理工作也变得繁琐且困难。资源利用率低数据冗余严重查询入口不统一难以实现 CPU 和内存资源的高效利用。数据一致性问题频发多个技术栈中数据独立计算计算口径不一致常常引发用户负面反馈。数据治理挑战 元数据来源多样且格式各异数据的准确性和一致性难以保障直接影响了数据治理的效率。
基于 Apache Doris 统一技术栈
01 技术选型
因此迫切需要统一技术栈、降低技术架构的复杂度同时希望实现性能提升、降低使用成本及简化运维。经过调研他们发现 Apache Doris 具备的特性能够很好满足这些需求。具体如下
数据湖能力 Apache Doris 支持 Multi-Catalog 多源数据目录通过扩展 Catalog 和存储插件无需将数据物理集中至统一的存储空间仅借助 Apache Doris 即可实现多个异构数据源的统一联邦分析。目前支持 Hive、 Iceberg、Hudi、Paimon、Elasticsearch、MySQL、Oracle、SQL Server 等主流数据湖、数据库的连接访问。实时写入 Doris 支持直接从 Kafka 等数据源进行数据订阅和导入避免了复杂的 ETL 过程提高了数据的实时性。简单易用Doris 提供统一的架构减少了对多种技术栈的依赖降低了系统的复杂性运维难度及工作量均较低结合多数据源目录可实现低成本快速迁移。高性能查询 Doris 采用列式存储和高性能查询引擎能够快速处理大规模数据集实现低延迟的查询响应。
02 统一数据湖仓及查询分析引擎 基于上述优势采用 Apache Doris 替换了原先数据湖仓 Iceberg 统一了查询引擎 Trino、Kyuubi 以及 OLAP 分析引擎 Pinot。依托于 Doris Multi-Catalog 数据湖能力无需进行数据传输即可直接查询底层引擎中数据借助其 OLAP 能力显著提升了数据分析的效率。
具体收益如下
降低架构复杂性由 Doris 替换多个技术栈简化系统架构减少组件间的依赖和集成工作。简化 ETL 流程原先数据传输需要经过一系列 ETL 与 Spark Load 转换流程复杂且需要维护大量计算任务。而 Doris Routine Load 能够直接订阅 Kafka 数据简化了 ETL 流程。提升资源利用率 1 个 Doris 集群即可替代原来多个集群数据无需在多个数据库冗余存储资源利用率大幅提升成本节约 30%。降低运维及使用成本架构及 ETL 流程的简化大幅降低潜在故障点的发生次数系统稳定性得到较大的提升。
Apache Doris 架构下的业务改造实践
01 报表生成耗时缩短 50%
CCA Peak Ports 项目用于在基于 Peak Ports 套餐的计费模式下计算 WebEx 与 Partner 之间的对账报表。该项目所采用的技术栈较为传统数据处理链路较长系统维护工作量较大因此作为第一批基于 Doris 改造项目。
原方案
首先依赖于 Oracle 数据库中的原始表作为数据源通过一系列存储过程进行计算生成中间结果。接着Java 编写的定时任务进一步处理中间结果并最终写入 Kafka 消息队列。最后通过 Spark Job 将 Kafka 中数据同步到 Iceberg 中提供报表服务。 在上述流程中一旦数据计算过程中出现问题排查和调试就会变得相当复杂和繁琐。特别是在 Oracle 存储过程的调试往往不够直观和便捷增加了解决问题的难度。同时也由于该流程过于复杂对数据的实时性也产生了一定的影响。
新方案
基于 Doris 进行改造将 Oracle 的存储过程改造到 Spark 与 Doris UDF 中并使用 Doris 替换了 Iceberg借助 Doris 高效存储和分析能力直接提供数据服务。具体流程如下
首先所有数据已预先存储在 Kafka 中。接着通过 Doris 提供的 Doris-Kafka-Connector 插件通过 Routine Load 可直接将 Kafka Topics 中数据写入 Doris 中并将数据整合到明细表中构成 DWD 层。最后提前部署好的 Spark 作业会对明细数据进行深入的分析与处理最终将结果写入 DWS 层由 Doris 提供业务侧数据分析和报表生成的需求。 CCA Peak Ports 项目在基于 Doris 的改造下整体技术栈风格更为统一简化了数据处理链路数据处理更加高效。 在时效性方面报表更新周期从 T2 缩短至 T1在查询效率方面报表生成时间由原先 10 分钟缩短至 5 分钟查询效率至少提升 1 倍多。
02 数据处理流程大幅简化
Dashboard 系统主要用于展示数据治理的全貌特别是关于 WebEx 的数据资产概况和分析指标为管理团队的业务决策提供坚实的数据支撑。
在早期数据治理平台中依赖 Spark 定期任务提取数据进行 Schema 分析和 Lineage 分析。分析后的结果发送至 Kafka随后由 Pinot 实时摄取以便后续的处理展示。这种分散的处理方式可能使得数据治理的整体效率和效果受到限制。不同组件之间的数据交换和同步可能会带来额外的开销和延迟同时也不利于数据的统一管理和优化。 为解决该问题使用 Doris 替换了 Pinot 并基于 Doris Multi-Catalog 能力对底层引擎分别建立了 Catalog使用 Doris 定时任务抽取引擎中数据。抽取的数据被写入上层的主键模型和聚合模型表中。依赖于 Doris SQL 抽取能力以及其提供的数据模型完全能够满足 Governance Dashboard 的数据需求。 这一方案的节省了原先 11 个 Spark 作业的维护工作整个 Data Pipeline 都能够在 Doris 中创建和管理处理流程更加清晰、简单、高效。同时降低了 UDP 对 CPU 和内存资源的依赖避免了偶发的因资源不足导致 Job 无法启动的问题。此外尽管 Doris 相比 Pinot 查询性能并无巨大提升但在执行相同的查询时Doris 消耗的资源更少更能保证查询正常返回。
03 统一查询服务降低多平台管理难度
在早期认证授权场景中面临查询入口不统一、用户查询复杂度各异的挑战。这不仅会导致资源利用率低下还可能引发单个资源密集型查询对其他用户查询性能的严重干扰。
除上述问题外从用户角度来说他们需要管理多个系统之间的链接关联加之各平台密码更新周期的不统一反复申请认证授权等问题也消耗了大量的时间与精力。 为了解决这些问题结合 Doris 实现了统一查询服务整体框架下图所示 使用 Doris 替换实现了统一的查询服务依托于 Doris Multi-Catalog 能力对底层 Trino、Iceberg 和 Pinot 引擎构建 Catalog。 所有应用和作业可以通过查询网关接入 Doris直接对底层引擎中数据进行查询。
为便于用户使用还为所有用户创建了 Query Book 服务以便统一访问湖中数据。此外结合 Apache Ranger 构建了 Web Auth 服务将统一认证授权同步至 Doris。原先用户和平台管理员原先需要在 3 个不同的平台LDAP/Ranger/DB中申请和审批权限现在只需访问 WAP Auth 即可降低多平台管理负担。还在 Web Auth 中开发了 SQL 规则集模块支持将规则集的定义同步到 Doris对高风险 SQL 进行拦截避免潜在资源滥用。
基于 Doris 的数据治理
作为一个在全球范围内分布应用的在线会议产品WebEx 面临各个国家、各个地区不同隐私数据保护的法案和相关要求所以数据治理环节至关重要。 为确保企业数据资产的质量、安全和可用性需要对 WebEx Data Platform 进行数据治理。在引入 Apache Doris 后也需将其纳入数据治理体系中。这涉及到元数据融合、数据授权与审计、合规检查、质量检查的融合。为支撑这些融合点需要构建元数据流、血缘数据流、审查数据流。
01 元数据流 元数据流作用在于确保元数据顺利同步。Schema Registry 可轻松地将元数据推送至 MetaHub实现集中存储与管理。Doris 提供了丰富的元数据 API 接口能够无缝接入大量有价值的元数据增强 MetaHub 的数据完整性和实用性。
02 血缘数据流 血缘数据流整合有两部分
静态信息拉取从 Doris 数据库提取定义好的作业信息如 Routine Job反映数据从 Kafka 流向 Doris 表的路径。同时获取 Catalog 信息部分 Catalog 条目对应外部表Table 直接存储在 Doris 中以确保捕获外部表的真实血缘关系。动态数据血缘生成当新 Job 读取或写入 Doris 时生成新的数据血缘关系。为管理动态血缘开发了 Client Library在平台调度 Job 时Library 以 Sidecar 的形式注入 Job Client Library 解析 Job 的 DAG并基于此生成数据血缘信息并将信息发送到 MetaHub。
通过结合静态和动态数据血缘的方法能够全面追踪数据的流动和变化从而为数据治理和分析提供坚实的基础。
03 审查数据流 数据流审查主要集中在数据审计、合规性检查和质量监控三个方面。在数据审计方面直接从 Doris 系统中提取 Audit_log 数据实现高效审计。在合规性和质量监控上采用定时任务主动扫描并验证 Doris 中的数据以确保其合规性和质量达标。
在实时生成并写入 Doris 新数据时可以利用 Client Library 提供的嵌入式功能持续监测新生成或正在处理的数据这一机制不仅提升了数据处理效率还增强了数据管理的安全性与可靠性。
结束语
截至目前WebEx 数据平台所部署的 Doris 集群近 5 个总节点数十台。当前已支持在线服务的平均每日查询总数量已超过 10 万存储总量 40TB实时导入的日增数据量高达 5TB。Doris 的引入不仅带来了诸多降本增效的助力也驱动其在更大范围内的业务发展探索改造思路与方向
扩大 Doris 应用范围 逐步迁移更多数据湖仓中的业务与数据应用层 App 进入 Doris。增强数据平台功能与性能 基于 Doris 构建高性能数据分析平台逐步替代应用自建的分析性存储方案如 TiDBKylin 等。探索更多应用场景 探索 AI on Doris 以及 Doris on Paimon 的场景。