摘要:DWS 实时数仓解决方案支持数仓模型的分层和增量加工,能够实现数据的实时入库、出库和查询,确保数据的新鲜度。
一、实时数仓介绍
实时数仓是一种现代化的数据仓库系统,其核心优势在于能够处理和分析实时数据。随着信息技术和数据科学的飞速发展,企业对实时数据分析和决策支持的需求愈发迫切。实时数仓能够实时或近实时地反映数据变化,为企业提供最新的业务指标和深度洞察,从而支持快速决策。因此,它已成为数据领域的重要概念和不可或缺的工具。
二、实时数仓的架构
实时数仓的两个常见架构是 Lambda 架构和 Kappa 架构:
(1) Lambda 架构:Lambda 架构的核心理念是“流批一体化”。随着机器性能和数据框架的不断完善,用户其实并不关心底层是如何运行的,无论是批处理还是流式处理,只要能够按照统一的模型返回结果即可,这正是 Lambda 架构诞生的原因。如今,许多应用如 Spark 和 Flink 都支持这种结构。数据进入平台后,可以选择批处理运行,也可以选择流式处理运行,但无论选择哪种方式,数据的一致性都是相同的。
(2) Kappa 架构:尽管 Lambda 架构的理念很好,但在实际应用中可能会面临数据复杂性大大增加的问题。为了解决这一问题,有人提出了用一套架构解决所有问题的设想,而流行的做法就是基于流计算来实现。通过加大流计算的“时间窗口”,可以实现逻辑意义上的批处理操作,从而简化架构并降低数据复杂性。
三、实时数仓面临的挑战
尽管实时数仓在现代数据管理中扮演着重要角色,但其构建和运营过程中仍面临诸多挑战:
- 实时性挑战:实时数仓要求从数据接入、清洗、整合、加工到查询的整个过程都需控制在极短的时间内完成,以满足业务对实时数据的需求。这要求系统具备高速的数据处理能力,包括数据采集、处理和查询等各个环节。同时,低延迟也是实时数仓面临的一大挑战,特别是在需要实时响应的业务场景中。
- 数据质量挑战:实时数仓中的数据需要保证高度的准确性,因为实时数据往往直接用于业务决策。任何数据错误都可能导致错误的决策结果,从而给企业带来损失。此外,数据一致性也是实时数仓需要关注的重要方面,以确保不同数据源之间的数据不会发生冲突或不一致的情况。
- 性能挑战:实时数仓需要支持超大的数据量和超高的 RPS(每秒记录数)实时写入。在大数据场景下,如何保持高性能的写入和查询成为了一个巨大的挑战。同时,随着数据量的不断增长,实时数仓还需要具备良好的扩展性,以应对未来可能出现的性能瓶颈。
- 运维挑战:实时数仓的运维复杂度较高,因为涉及多个组件和多个环节的监控和管理。运维人员需要具备丰富的经验和专业的技能,以应对各种突发情况和性能问题。同时,为了降低运维成本和提高运维效率,实时数仓还需要建立完善的运维管理体系和自动化运维工具。
四、DWS 提供的实时数仓解决方案
在传统的实时数仓建设中,由于上游数据源的不一致性,企业通常需要采用 Flume、Canal、Logstash 等不同的数据采集工具,并通过消息队列 Kafka 将数据写入数据仓库,且在实际业务环境中,通常需要 HBase、Druid、Hive、ClickHouse 等不同的存储引擎和计算引擎配合来满足业务的实时需求。这一过程涉及众多组件,数据链路较长,维护成本高昂。
然而,DWS 与 Flink 的深度融合改变了这一现状。DWS 实时数仓解决方案支持数仓模型的分层和增量加工,这为企业带来了诸多优势。首先,它能够实现数据的实时入库、出库和查询,确保数据的新鲜度。其次,DWS 统一了批流处理逻辑,一站式支持批处理、流处理、交互式查询和点查等多种场景,进一步简化了数据生产线的架构复杂度。
1. 与 Flink 流计算生态深度融合,简化链路,简化运维
DWS 统一数仓以一替 N,利用 Flink 强大的实时处理能力和 DWS 的 Binlog 能力,可以快速构建实时数仓,整个服务层由 DWS 统一数仓完成,简化诸多存储与计算组件。其次 DWS 通过与 Flink 的结合,数据采集组件与消息队列合并到计算层 Flink 中,整体任务链路都可以通过 Flink SQL 来驱动,从而实现了数据链路的再度简化。
这一变革不仅降低了维护成本,还减少了故障点和传输瓶颈,进一步提高了数据的实效性。同时,更少的组件意味着架构变得更加清晰简单,维护也变得更加方便。
2. 数据处理效率飞跃,秒级/毫秒级查询,T+0/T+0.x 处理时效
DWS 通过 gds-kafka 全托管直连 DN 入库的方式,实现了性能的显著提升。这一特性使得数据能够更快地进入数仓,为实时分析提供了有力支持。通过物化视图、预聚合表等能力,数据可以在不出库的情况下自动实现增量计算。这一特性极大地提高了数据处理的效率,降低了数据处理的复杂度。
- gds-kafka 全托管直连 DN 入库:
传统的 flink 入库存在两大痛点问题:用户需维护入库的 flink jar,运维成本高;多并发 sink 写 CN,CN 存在负载瓶颈,严重影响入库性能的提升。
面对以上痛点问题,DWS 提供了针对性解决方案,通过全托管实时入库服务,用户无需维护 flink 代码;CN 不再成为瓶颈,入库性能大幅提升,随集群规模近线性扩展。
- 物化视图:
物化视图是 DWS 实时数仓的重要特性之一。它允许用户将查询结果作为物理表存储在数仓中,从而加速后续的查询操作。DWS 能够实时捕获并处理数据源中的增量数据。当数据发生变化时,系统能够识别这些变化,并仅对发生变化的数据进行重新计算,从而更新物化视图。这种增量处理方式不仅提高了数据处理的效率,还降低了资源消耗,使得物化视图在实时数据仓库环境中更加实用和高效。此外,物化视图还可以代替部分分层加工的逻辑,通过预先计算和存储复杂查询的结果,用户在查询数据时可以直接从物化视图中获取,而无需编写复杂的查询语句或进行多层数据加工,提高数据查询与处理效率。
- Turbo 引擎:
Turbo 引擎是 DWS 针对传统列存执行引擎的主要性能瓶颈点做出的独创性突破,通过数据格式优化、自研 Hash 算法、根据运行态数据特征定制数据处理算法、算子算法重构等手段实现性能倍增目标。DWS 9.1.0 版本发布性能白皮书显示开箱性能整体相较 8.3.0 版本提升一倍。
- Hstore 技术:
当用户需要捕获数据库事件用于数据增量导出 Flink 等第三方组件,并协同完成数据加工等任务时,DWS 实时数仓中的 HStore 表提供了 Binlog 功能,通过消费 Binlog 数据来实现上下游的数据同步,同时提供了小批量实时入库的能力,可以大幅提高数据加工的效率。
五、未来展望
展望未来,DWS 实时数仓解决方案将继续深化与 Flink 等先进流计算技术的融合,引领数据仓库领域的新一轮变革。DWS 实时数仓将不断优化其存储与计算引擎,以支持更大规模的数据处理需求。Turbo 引擎等创新技术的持续迭代将推动数据处理性能的进一步提升,满足企业对数据实时性的极致追求。同时,HStore 表等高级特性的广泛应用将促进数据增量同步与加工的效率,为复杂业务场景下的数据应用提供有力支持。随着 AI 技术的不断发展,DWS 实时数仓也将更加注重智能化与自动化,优化查询路径、预测数据趋势、识别异常数据等,为企业提供更精准、更智能的数据洞察。
DWS 实时数仓将不断拓展其应用场景,覆盖更多行业与领域。无论是智慧城市、智能制造还是远程医疗等前沿领域,DWS 实时数仓都将以其高效、灵活、智能的特点为企业带来全新的数据价值挖掘方式。我们相信,DWS 实时数仓作为企业数字化转型的重要驱动力,将助力企业在激烈的市场竞争中脱颖而出。