流批一体的一点思考

关于流批一体的一点思考: 流批一体主要核心在三个方面:

存储一体
计算一体
应用一体

1、统一数据采集层。

数据源:在数据源层面,分为日志类和业务类,使用一致的的采集方法。 使用Flink CDC统一采集,经Kafka传输到数据存储层。 这样不需要再维护Sqoop和另一套采集系统。

2、统一数据存储层。

消息队列

首先在计算层,Pulsar Broker 不保存任何状态数据、不做任何数据存储,称之为服务层。 其次,Pulsar 拥有一个专门为消息和流设计的存储引擎 BookKeeper,称之为数据层。 如果要支持更多的 Producer 和 Consumer,可扩充上面无状态的 Broker 层;如果要支持更多的数据存储,可单独扩充底层存储层。 这种分层的架构为做批流融合打好了基础。因为它原生分成了两层,可以根据用户的使用场景和批流的不同访问模式,来提供两套不同的 API。

如果是实时数据的访问,可以通过上层 Broker 提供的 Consumer 接口;
如果是历史数据的访问,可以跳过 Broker,用存储层的 reader 接口,直接访问底层存储层。

数据湖

可使用Hudi、Iceberg、paimon作为流批一体的统一存储层。 统一存储数仓的ODS、DWD、DWS、DWT、DM各层数据。

(1)存储原始数据,数据结构多样化。
(2)支持多种计算模型,解耦计算引擎和存储系统。
(3)支持灵活廉价的底层存储,可使用本地HDFS、或云上对象存储S3、OSS。
(4)支持事务ACID。

3、统一元数据层。

使用Flink Catalog统一元数据管理,例如数据库、表、分区、视图以及外部系统。 Catalog提供统一API,统一管理元数据,使其可从TableAPI和SQL查询语句中访问。 使用Flink Catalog解决了大数据引擎不同元数据格式造成的复杂问题,并且Catalog与Hive MetaStore兼容。

4、统一计算引擎层。

使用Flink Unified DataStream统一计算引擎层。 Flink Unified DataStream能更好支持流和批两种计算模式。 Unified DataStream统一和简化了以前流批要分别使用DataStream和Dataset的繁琐。 并且Unified DataStream针对Unbounded场景,在磁盘I/O访问,序列化和反序列化做了优化,使得Unbounded和Bounded的效率、可用性、易用性都得到很大提升。

5、统一SQL引擎层。

可使用Flink SQL或Presto/Trino。 Flink SQL将流处理和批处理统一,支持大部分标准SQL的语法和语义。

6、统一应用层

结果视图需要支持低延迟的查询分析,通常需将数据结果存储到列存分析系统,可使用doris/starrocks和Presto/Trino。 alt alt alt alt

本文由 mdnice 多平台发布

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值