版本 | 日期 | 备注 |
---|---|---|
1.0 | 2021.6.20 | 文章首发 |
2. 业界趋势
3. 现代数据湖的能力要求
4.常见现代数据湖技术
总的来说,这些数据湖都提供了这样的一些能力:
一些具体的对比可以看这张图: 5. Iceberg 我们先看看Iceberg的官网是如何介绍它的: Apache Iceberg is an open table format for huge analytic datasets. Iceberg adds tables to Trino and Spark that use a high-performance format that works just like a SQL table. 我的理解是,Iceberg以表的形式来组织底层数据,并对上面提供了高性能的表级别计算能力。 它的核心思想就是在时间轴上跟踪表的所有变化:
目前已知在用的Iceberg的大厂:
5.1 Iceberg的优势
5.2 特性 5.2.1 快照设计方式
5.2.2 元数据组织
5.2.2 事务性提交
5.3场景 5.3.1 CDC数据实时摄入摄出 这里要讨论的是关系型数据库的binlog如何去做分析。在hadoop生态里,对这个场景一般是不怎么友好的。 最常见的方式是写到hive里,标记这是binlog,并声明它的类型(I,U,D),然后再跑个批量任务到存量表里。但hive只能做到小时级别的分区,但iceberg可以做到1分钟内。 5.3.2 近实时场景的流批一体 在lambda架构中,会分为实时链路和离线链路。主要技术栈非常复杂,如果能够接受准实时(30s~1min)的延迟,iceberg是可以胜任的。