Flink背景

数仓简介

在信息爆炸的时代,为了从海量数据中洞察业务价值,驱动运营决策,企业通常会构建用于数据分析的数据仓库。数据仓库的数据一般来源于多个分散的、异构的数据源,通过数据集成技术将数据整合在一起,消除数据孤岛,便于后续的分析。

实时数仓

近年来,面向分析的数据系统发展迅速,各种新型的 OLAP 系统开始显露锋芒,数据湖和 Lakehouse 的概念也变得炙手可热。然而,数据集成仍然是人们通往数据分析之路上的主要障碍。

构建一个中心化的数据仓库本身是一个艰巨的任务,每个数据源都需要单独的程序和工具来摄取、清洗和导入数据。尤其是随着业务的发展,企业对于数据实时性的要求越来越高。在 2021 年 6 月,Apache 董事会宣布决定终止 Apache Sqoop 项目,以 Apache Sqoop 为代表的传统离线数据同步开始退出历史舞台。这也代表着传统的离线数据同步已经无法满足用户的需求,人们开始追求更为实时的数据同步方案。

Flink CDC

基于数据库事务日志的 Change Data Capture (CDC) 技术作为一种更为优雅和先进的实时数据同步方案,开始广泛应用于增量数据集成中。

然而诸如 Canal 等专注于纯增量数据同步的开源项目也逐渐面临活跃度越来越低的困境,因为用户想要集成的数据从来不是单独的历史数据部分,或是单独的增量数据部分,而是历史数据和增量数据一体化地集成到数据仓库。这也是为什么如 Debezium、Flink CDC 等全增量一体化数据集成框架能越来越受欢迎的原因之一。

Flink CDC 可以替代传统的 DataX 和 Canal 工具做实时数据同步,将数据库的全量和增量数据同步到消息队列和数据仓库中。也可以做实时数据集成,将数据库数据实时入湖入仓。还可以做实时物化视图,通过 SQL对数据库数据做实时关联、打宽、聚合,并将物化结果写入到湖仓中。

Flink CDC目标

作为新一代数据集成框架,Flink CDC 希望解决的问题很简单:“成为数据从源头连接到数据仓库的管道,屏蔽过程中的一切复杂问题,让用户专注于数据分析”。但是为了让数据集成变得简单,其中的挑战仍然非常多:比如百亿数据如何高效入湖入仓?千表数据如何稳定入湖入仓?如何“一键”整库同步?表结构频繁变更,如何自动同步表结构变更到湖和仓中?Flink CDC 未来也会持续朝着这些方向改进。
Flink背景_第1张图片

  1. DataX 不支持增量同步,Canal 不支持全量同步。虽然两者都是非常流行的数据同步工具,但在场景支持上仍不完善。
  2. 在全量+增量一体化同步方面,只有 Flink CDC、Debezium、Oracle Goldengate 支持较好。
  3. 在架构方面,Apache Flink 是一个非常优秀的分布式流处理框架,因此 Flink CDC 作为Apache Flink 的一个组件具有非常灵活的水平扩展能力。而 DataX 和 Canal 是个单机架构,在大数据场景下容易面临性能瓶颈的问题。
  4. 在数据加工的能力上,CDC 工具是否能够方便地对数据做一些清洗、过滤、聚合,甚至关联打宽?Flink CDC 依托强大的 Flink SQL 流式计算能力,可以非常方便地对数据进行加工。而Debezium 等则需要通过复杂的 Java 代码才能完成,使用门槛比较高。
  5. 另外,在生态方面,这里指的是上下游存储的支持。Flink CDC 上下游非常丰富,支持对接MySQL、PostgreSQL 等数据源,还支持写入到 TiDB、HBase、Kafka、Hudi 等各种存储系统中,也支持灵活的自定义 connector。

你可能感兴趣的:(Flink,flink,大数据)