Flink CDC 如何构建现代数据栈的疑问?

摘要:序言 本文主要摘自: 基于 Flink CDC 的现代数据栈实践 - Weixin大数据研习社 2023.4.19 基于 Flink CDC 构建现代数据栈 现代数据栈(Modern Data Stack) 数据栈这个概念在最近几年比较火
序言 本文主要摘自: 基于 Flink CDC 的现代数据栈实践 - Weixin/大数据研习社 2023.4.19 基于 Flink CDC 构建现代数据栈 现代数据栈(Modern Data Stack) 数据栈这个概念在最近几年比较火热,特别是在海外数据集成的行业或者圈子里。首先看一下数据栈相关的两个概念。 数据栈是一组对原始数据进行采集、转换和存储(ETL)的技术或工具的组合,这些工具可以让数据工程师和分析师能够提取和清洗数据,将原始数据转换为有价值的数据并存储,然后根据需要进行分析。 现代数据栈是在数据栈的基础上,使用创新的(如 ELT)或基于云上数仓/湖的工具或技术的组合,现代数据栈基于云上构建的特点,具备传统数据栈很难具备的弹性和扩容优势,现代数据栈层次清晰有利于垂直领域的工具形成标准的 SaaS 服务,而 SaaS 服务极大地降低了运维和管理成本。 现代数据栈组件 在刚刚介绍现在数据栈概念的时候,提到了两个词,ETL 和 ELT。 ETL : 作为经典数据集成里的一个处理过程,即采集、转换、存储。 以 Flink CDC 为例,在传统的数据栈里做 ETL。Flink CDC 做采集的时候,如果还需要进一步转换,就通过 Flink 来做,然后 load 到下游存储。 ELT: 转换到现代数据栈 ELT 的架构。 还以 Flink CDC 为例,它负责采集和 load,即帮助数据从数据源采集并 load 到存储里,这个存储包括 Iceberg、Hudi 等等。而转换一般都围绕在数据湖或者数据仓库上,所以可以用其他工具做一些转换,从而把 E 和 L 提取出来。 开源现代数据栈 上图是 State of Data Engineering 2022 map,在这个图里可以发现,有很多和现代数据栈或者数据集成领域相关的技术和组件。比如 Airbyte、Fivetran 等等,既有开源的,也有闭源的。 上图是一个典型的开源现代数据栈,可以发现这个表里每一行都代表一个垂直领域。比如我们要做数仓,就可以用 rudderstack、Airbyte 等开源数据集成工具来做等等。 基于 Flink CDC 的现代数据栈 如上图所示,Flink CDC 是一个非常好的数据集成框架,它目前已经支持了 MySQL、MongoDB、Db2 等丰富的数据源,用户可以针对自己的需求选择并对数据进行加工。 那么如何基于 Flink CDC 构建现代数据栈呢? 如上图所示,数据栈的最底层是数据源,比如 MySQL、PG、Oracle、MongoDB 等等。 EL 由 Flink CDC 来做,它负责从数据源里提取数据,load 到经典的数据仓库或者数据湖这层。 Transformation 通过 Flink、Spark 在数仓之上做分析,然后通过 Superset、Metabase、Tabular 等等 BI 工具,对其结果进一步加工。 加工完之后,最上层是面向终端用户的,比如各种应用的报表分析、实时大屏、数据应用,这就构成了一个基于 Flink CDC 的现代数据栈。 X 参考文献 基于 Flink CDC 的现代数据栈实践 - Weixin/大数据研习社 2023.4.19