这篇文章介绍了实时数据仓库的基本概念和技术架构,以及最新的实时数仓架构和云原生实时数仓架构的核心能力。实时数据仓库强调数据的即时性和实时性,能够接收和处理实时产生的数据,并将其快速集成和存储,以实现实时分析和查询。实时数据仓库的基本组件包括数据源、实时数据采集、数据存储、数据实时处理和数据服务。最新的实时数仓架构使用实时流处理引擎和HTAP数据库完成流批处理一体的实时数据仓库。云原生实时数仓架构具有实时数据采集能力、分布式数据存储能力、HTAP数据库能力、实时变更自动捕获能力、流批处理能力和云原生的计算资源和存储资源的弹性伸缩能力。
01
—
什么是实时数据仓库?

该技术架构主要的优势主要体现在HTAP分布式集群和流批处理引擎flink.将整体的流式处理实时存储和存储在HTAP数据库,即有数据处理实时能力,又具备数据统一存储的分布式架构,另外具备数据统一管理的元数据管理能力和,HTAP数据库需要的ACID事务处理能力,保证数据处理过程中的事务性和数据分析的能力。
02
—
云原生实时数仓架构核心能力
一、Flink CDC
1、Flink CDC 可以与各种数据源进行集成,如关系型数据库(如MySQL、PostgreSQL、Oracle等)、消息队列(如Kafka、RabbitMQ等)以及文件系统等。这使得 Flink CDC 能够实时采集这些数据源中的增量更新或变化。
2、增量数据抓取:Flink CDC 可以通过监视数据库的日志或轮询查询方式,捕获数据源中的增量更新或变化。这使得 Flink CDC 能够实时获取数据源中的新数据,并按照变化进行处理和传输。
3、Flink CDC 提供了容错机制和一致性保证,以确保在数据采集过程中的数据可靠。
二、分布式数据存储能力
三、HTAP数据库(Hybrid Transactional/Analytical Processing)
四、实时变更自动捕获能力
五、Flink的流批处理能力
六、云原生的计算资源和存储资源的弹性伸缩能力
1、弹性和可扩展性:在flink cdc、kafka、分布式存储、flink 组件都可以采用云原生的构建和部署方式。云原生部署方式可以利用云计算环境的资源弹性和可扩展性,根据需要自动伸缩应用服务的数量和资源使用。
2、 微服务架构:云原生数据服务采用微服务架构,将数据fu无拆分为一组松耦合、可独立部署、可单独扩展的微小服务。这样可以提高应用程序的可维护性、可扩展性和可部署性。
03
—
与其它实时数仓架构的区别
其它实时数据仓库的架构一般采用的kappa技术架构,如下图所示:

这种架构利用了kappa的技术架构和数据湖的能力确实实现了湖仓一体和流批处理一体,但是它在数据处理上还是采用了2套数据存储流程,主要原因是kafka 一般情况下只能存储几天的数据,不能拥有分布式存储这种大批量的数据存储能力。另外kappa技术架构还有以下缺陷:
1、数据的一次性处理、重处理困难:Kappa架构中的流处理系统只会处理实时数据,而不会处理历史数据。这意味着如果需要对历史数据进行分析或处理,就需要使用额外的批处理系统。这可能导致处理数据的复杂性和延迟增加。
2、数据的回溯困难:由于Kappa架构只处理实时数据,当需要回溯之前的数据时,可能遇到困难。因为流处理系统通常仅保留一段时间内的数据,之前的数据可能已被删除或丢失。如果需要对过去的数据进行分析或重现特定时刻的状态,就需要借助其他方式来处理。
3、增加批处理,增加了系统的复杂度:在Kappa架构只处理实时数据,意味着在数据处理过程中难以调试、当数据处理出现问题的时候,难以追踪到具体的数据和逻辑,需要增加批处理流程以实现在流式处理出现问题的时候,采用批处理来弥补错误,这样会造成系统的复杂性。
以上是该架构的一些缺陷,而最新的云原生的实时数仓架构是真正的流批一体架构,不需要维护两套数据处理流程,开发简单,数据追踪容易,统一的元数据管理。大大降低了实时开发的难度和代码维护的难度。
注:ACID事务处理能力是指数据库系统能够满足ACID属性的特性,即原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)和持久性(Durability)。
1. 原子性(Atomicity):事务中的操作要么全部执行成功,要么全部失败回滚,不存在部分执行成功部分失败的情况。如果一个事务中的任何一个操作失败,数据库会自动撤销所有事务执行的操作,将数据库恢复到事务开始之前的状态,保证数据的一致性。
2. 一致性(Consistency):事务在执行之前和执行之后,数据库的状态都必须保持一致。这意味着事务必须满足所有定义的数据库约束和规则,不会破坏数据的完整性。
3. 隔离性(Isolation):每个事务的执行都是相互隔离的,保证事务之间的相互影响最小。并发执行的多个事务之间不能互相干扰,每个事务都认为它是在独占地使用数据库,避免了数据读取的问题(如脏读、不可重复读和虚读)。
4. 持久性(Durability):一旦事务提交,其修改的数据将永久保存在数据库中,即使在系统发生故障时也不会丢失。数据库使用一种可靠的机制来确保数据的持久性,如写入日志文件。
ACID事务处理能力是保证数据库的数据一致性和可靠性的重要特性,能够确保数据库在并发环境下的正确运行和可靠性。
欢迎加入【数据行业交流群】社群,长按以下二维码加入专业微信群

往期历史热门文章:
基于DataOps的数据开发治理:实现数据流程的自动化和规范化