当前位置:网站首页>数据湖(七):Iceberg概念及回顾什么是数据湖
数据湖(七):Iceberg概念及回顾什么是数据湖
2022-07-05 12:44:00 【51CTO】
Iceberg概念及回顾什么是数据湖
一、回顾什么是数据湖
数据湖是一个集中式的存储库,允许你以任意规模存储多个来源、所有结构化和非结构化数据,可以按照原样存储数据,无需对数据进行结构化处理,并运行不同类型的分析,对数据进行加工,例如:大数据处理、实时分析、机器学习,以指导做出更好地决策。
二、大数据为什么需要数据湖
当前基于Hive的离线数据仓库已经非常成熟,在传统的离线数据仓库中对记录级别的数据进行更新是非常麻烦的,需要对待更新的数据所属的整个分区,甚至是整个表进行全面覆盖才行,由于离线数仓多级逐层加工的架构设计,数据更新时也需要从贴源层开始逐层反应到后续的派生表中去。
随着实时计算引擎的不断发展以及业务对于实时报表的产出需求不断膨胀,业界最近几年就一直聚焦并探索于实时数仓建设。根据数仓架构演变过程,在Lambda架构中含有离线处理与实时处理两条链路,其架构图如下:
编辑
正是由于两条链路处理数据导致数据不一致等一些列问题所以才有了Kappa架构,Kappa架构如下:
编辑
Kappa架构可以称为真正的实时数仓,目前在业界最常用实现就是Flink + Kafka,然而基于Kafka+Flink的实时数仓方案也有几个非常明显的缺陷,所以在目前很多企业中实时数仓构建中经常使用混合架构,没有实现所有业务都采用Kappa架构中实时处理实现。Kappa架构缺陷如下:
- Kafka无法支持海量数据存储。对于海量数据量的业务线来说,Kafka一般只能存储非常短时间的数据,比如最近一周,甚至最近一天。
- Kafka无法支持高效的OLAP查询,大多数业务都希望能在DWD\DWS层支持即席查询的,但是Kafka无法非常友好地支持这样的需求。
- 无法复用目前已经非常成熟的基于离线数仓的数据血缘、数据质量管理体系。需要重新实现一套数据血缘、数据质量管理体系。
- Kafka不支持update/upsert,目前Kafka仅支持append。
为了解决Kappa架构的痛点问题,业界最主流是采用“批流一体”方式,这里批流一体可以理解为批和流使用SQL同一处理,也可以理解为处理框架的统一,例如:Spark、Flink,但这里更重要指的是存储层上的统一,只要存储层面上做到“批流一体”就可以解决以上Kappa遇到的各种问题。数据湖技术可以很好的实现存储层面上的“批流一体”,这就是为什么大数据中需要数据湖的原因。
三、Iceberg概念及特点
1、概念
Apache Iceberg是一种用于大型数据分析场景的开放表格式(Table Format)。Iceberg使用一种类似于SQL表的高性能表格式,Iceberg格式表单表可以存储数十PB数据,适配Spark、Trino、PrestoDB、Flink和Hive等计算引擎提供高性能的读写和元数据管理功能,Iceberg是一种数据湖解决方案。
注意:Trino就是原来的PrestoSQL ,2020年12月27日,PrestoSQL 项目更名为Trino,Presto分成两大分支:PrestoDB、PrestorSQL。
2、特点
Iceberg非常轻量级,可以作为lib与Spark、Flink进行集成
Iceberg官网: https://iceberg.apache.org/
Iceberg具备以下特点:
- Iceberg支持实时/批量数据写入和读取,支持Spark/Flink计算引擎。
- Iceberg支持事务ACID,支持添加、删除、更新数据。
- 不绑定任何底层存储,支持Parquet、ORC、Avro格式兼容行存储和列存储。
- Iceberg支持隐藏分区和分区变更,方便业务进行数据分区策略。
- Iceberg支持快照数据重复查询,具备版本回滚功能。
- Iceberg扫描计划很快,读取表或者查询文件可以不需要分布式SQL引擎。
- Iceberg通过表元数据来对查询进行高效过滤。
- 基于乐观锁的并发支持,提供多线程并发写入能力并保证数据线性一致。
边栏推荐
- 事务的基本特性和隔离级别
- SAP UI5 DynamicPage 控件介绍
- 太方便了,钉钉上就可完成代码发布审批啦!
- The Research Report "2022 RPA supplier strength matrix analysis of China's banking industry" was officially launched
- 潘多拉 IOT 开发板学习(HAL 库)—— 实验7 窗口看门狗实验(学习笔记)
- How can non-technical departments participate in Devops?
- Transactions from December 27 to 28, 2021
- SAP self-development records user login logs and other information
- Pycharm installation third party library diagram
- CVPR 2022 | single step 3D target recognizer based on sparse transformer
猜你喜欢
A few years ago, I outsourced for four years. Qiu Zhao felt that life was like this
简单上手的页面请求和解析案例
Hiengine: comparable to the local cloud native memory database engine
深度长文探讨Join运算的简化和提速
Comprehensive upgrade of Taobao short video photosynthetic platform
Super efficient! The secret of swagger Yapi
leetcode:221. 最大正方形【dp状态转移的精髓】
CVPR 2022 | single step 3D target recognizer based on sparse transformer
[cloud native] use of Nacos taskmanager task management
ABAP editor in SAP segw transaction code
随机推荐
Taobao order interface | order flag remarks, may be the most stable and easy-to-use interface
你的下一台电脑何必是电脑,探索不一样的远程操作
SAP UI5 FlexibleColumnLayout 控件介绍
Association modeling method in SAP segw transaction code
CF:A. The Third Three Number Problem【关于我是位运算垃圾这个事情】
Transactions from January 14 to 19, 2022
初次使用腾讯云,解决只能使用webshell连接,不能使用ssh连接。
Difference between JUnit theories and parameterized tests
国内市场上的BI软件,到底有啥区别
Yyds dry goods inventory # solve the real problem of famous enterprises: move the round table
Four common problems of e-commerce sellers' refund and cash return, with solutions
A few years ago, I outsourced for four years. Qiu Zhao felt that life was like this
Natural language processing from Xiaobai to proficient (4): using machine learning to classify Chinese email content
阿里云SLB负载均衡产品基本概念与购买流程
简单上手的页面请求和解析案例
leetcode:221. 最大正方形【dp状态转移的精髓】
事务的基本特性和隔离级别
Research: data security tools cannot resist blackmail software in 60% of cases
Taobao product details API | get baby SKU, main map, evaluation and other API interfaces
使用 jMeter 对 SAP Spartacus 进行并发性能测试