Lakehouse: A New Generation of Open Platforms that Unify Data Warehousing and Advanced Analytics
在Delta Lake官网上提到的一篇新一代湖仓架构的论文.

这篇论文由Databricks团队2021年发表于CIDR会议. 这个会议是对sigmod和vldb会议的补充.
可以看到这篇论文和前一篇Delta Lake: High-Performance ACID Table Storage over Cloud Object Stores发表时间仅隔了一年. 论述的内容也是对Delta Lake这套架构的补充(场景拓展).
Warehouse, lake, lakehouse

第一代数仓只将数据库操作的结构化日志通过ETL清洗存储到专门的数据仓库中, 典型的如基于Hive的数仓. 这一代数仓的主要服务的目标场景是BI分析. 他的架构也是一种计算存储紧耦合的架构, 例如hive上计算节点就和存储的数据节点部署在一起, 通常还会有data colocate的优化.
第二代演化成了2层的结构, Data Lake 可以存储半结构化, 和非结构化的数据, 例如视频, 音频

这种架构下可以支持非结构化数据, 也支持直接的数据访问, 可以更好的对接非SQL的机器学习系统. 但目前自己在业界没有明显的感受到这种两层的结构, 可能是因为我对AI场景没怎么接触
论文中描述这已经是绝大部分公司的架构了

那么有没有将传统基于标准格式的数据湖转化成既有数仓管理能力, 高性能的分析能力, 又有快速的开放的数据访问的架构呢?

答案是 Lakehouse = Data Lake + Data warehouse.
数据直接存储于Object store之上, 而上层的BI系统, 机器学习, 数据科学计算都直接从Lakehouse中取数分析, 这样就实现了存储层的统一. 通过Data Lake 和 Data warehouse的结合实现了两者能力的结合.
而Lakehouse 就可以基于前文所介绍的Delta lake来构建, 可以看出Lakehouse是对传统数仓的一次升级. 但是纯粹这样的架构性能也许没有原先数仓中计算存储紧耦合的性能好, 毕竟多了额外的跨网络拉取数据的开销



最大的问题就是性能问题
Lakehouse架构
- 基于可以直接访问的, 标准的文件格式, 典型的如Parquet. 所以Lakehouse提供是一套基于文件的接口, 可以直接访问存储的数据, 并且提供了事务性的保障
- 基于云上的廉价对象存储
- 通过元数据层实现事务机制
- 对机器学习和数据科学的支持是第一优先级
- 提供性能保障
如何保障性能呢?
- caching 对于热数据通过本地ssd缓存加速查询
- auxiliary data structures such as indexes and statistics, and data layout optimizations. 通过索引, 数据重排和数据排布的优化. 对于热数据, 通过缓存可以实现和传统数仓中数据co-locate的优化, 而对于冷数据, 影响最大的是数据读取的多少, 因此通过一系列辅助数据, 可以大大减少需要扫描的数据量
- Data layout: Zorder
- 查询引擎自身优化, 向量化执行引擎
有待探索的优化
- 专为Lakehouse所设计的format, 虽然在一直强调standard format: Parquet/Orc, 但是看出来还是有设计一套新的format的意图, 不知道Databricks在Parquet/Orc有碰到什么痛点

- 更多的索引和layout优化

与传统数仓的性能和cost对比. 咋没有snowflake呢? 不管是性能和性价比上都非常不错.
不过, 在SQL上能很好的利用下推, 剪枝优化. 但是机器学习库的很多api, 并没有将query的语义下推到存储层, 导致这种框架中就无法很好的利用这些statistics.

因此这里就需要重新设计这些机器学习库的api.

Related work
M. Brantner, D. Florescu, D. Graf, D. Kossmann, and T. Kraska. Building a database on S3. In SIGMOD, pages 251–264, 01 2008. 看到一篇2008年就尝试将DBMS存储落在s3上, 真是先进
总结
这篇论文的干货比较少, 感觉只是把Delta lake的使用场景泛化了一下, 推出了一个新名词, lakehouse. 现在确实有这个演进的方向, 统一存储, 并在统一的存储上运行各种workload. 不过其中的性能挑战也不小.
Lakehouse: A New Generation of Open Platforms that Unify Data Warehousing and Advanced Analytics的更多相关文章
- 使用Apache Pulsar + Hudi构建Lakehouse方案了解下?
1. 动机 Lakehouse最早由Databricks公司提出,其可作为低成本.直接访问云存储并提供传统DBMS管系统性能和ACID事务.版本.审计.索引.缓存.查询优化的数据管理系统,Lakeho ...
- MapReduce的核心资料索引 [转]
转自http://prinx.blog.163.com/blog/static/190115275201211128513868/和http://www.cnblogs.com/jie46583173 ...
- Top 20 IoT Platforms in 2018
https://internetofthingswiki.com/top-20-iot-platforms/634/ After learning what is the internet of th ...
- Market Guide for AIOps Platforms
AIOps platforms enhance IT operations through greater insights by combining big data, machine learni ...
- 10g+: Transportable Tablespaces Across Different Platforms (Doc ID 243304.1)
10g+: Transportable Tablespaces Across Different Platforms (Doc ID 243304.1) APPLIES TO: Oracle Data ...
- (转) [it-ebooks]电子书列表
[it-ebooks]电子书列表 [2014]: Learning Objective-C by Developing iPhone Games || Leverage Xcode and Obj ...
- Toward Scalable Systems for Big Data Analytics: A Technology Tutorial (I - III)
ABSTRACT Recent technological advancement have led to a deluge of data from distinctive domains (e.g ...
- ocp 1Z0-042 61-120题解析
61. View the Exhibit.Which statement regarding the dept and emp tables is true?A) When you delete a ...
- Magic Quadrant for Security Information and Event Management
https://www.gartner.com/doc/reprints?id=1-4LC8PAW&ct=171130&st=sb Summary Security and risk ...
- Awesome Big Data List
https://github.com/onurakpolat/awesome-bigdata A curated list of awesome big data frameworks, resour ...
随机推荐
- Linux网络管理入门
根据自己的需要来设置Linux的一些属性 网络状态查看 在终端输入ifconfig可以查看网络状态 # ifconfig eth0: flags=4163<UP,BROADCAST,RUNNIN ...
- 关于Validation的方法使用
acceptance验证 acceptance 是 Rails 中的一个验证器(validator),用于验证一个布尔类型的属性是否被接受.在表单中,通常会有一些复选框或单选按钮,用户需要勾选或选择才 ...
- 记一次 .NET 某车零件MES系统 登录异常分析
一:背景 1. 讲故事 这个案例有点特殊,以前dump分析都是和软件工程师打交道,这次和非业内人士交流,隔行如隔山,从指导dump怎么抓到问题解决,需要一个强大的耐心. 前几天有位朋友在微信上找到我, ...
- 关于vue3 上传图片到七牛云
引子:前端程序猿,很少写博客,担心有一些技术很牛逼的大佬看不上,还喜欢怼人,玻璃心容易影响心情,这个是我自己在项目上遇到的,也百度参考了很多大佬的文章,感觉多少有点不全,然后就自己整理一下,当一个笔记 ...
- C#实现右下角托盘程序,默认不显示窗体,关闭窗体时隐藏而不退出
Windows右下角托盘程序是Windows系统的一大特色.在某些场景非常适用. 因业务需要实现一个后台程序,需要开机自动启动,默认不显示窗体,点击系统右下角托盘图标时显示窗体,关闭窗体时隐藏而不退出 ...
- 2022-02-06:等差数列划分 II - 子序列。 给你一个整数数组 nums ,返回 nums 中所有 等差子序列 的数目。 如果一个序列中 至少有三个元素 ,并且任意两个相邻元素之差相同,则称
2022-02-06:等差数列划分 II - 子序列. 给你一个整数数组 nums ,返回 nums 中所有 等差子序列 的数目. 如果一个序列中 至少有三个元素 ,并且任意两个相邻元素之差相同,则称 ...
- Hugging News #0512: 🤗 Transformers、🧨 Diffusers 更新,AI 游戏是下个新热点吗
每一周,我们的同事都会向社区的成员们发布一些关于 Hugging Face 相关的更新,包括我们的产品和平台更新.社区活动.学习资源和内容更新.开源库和模型更新等,我们将其称之为「Hugging Ne ...
- Selenium - 基础知识介绍
Selenium - 基础知识介绍 介绍 Selenium是ThoughtWorks员工在业余时间开发并维护的开源项目,并且在ThoughtWorks的项 目中被广泛应用. 简单地说,Selenium ...
- Django 与 Vue 语法冲突问题完美解决方法
Django 与 Vue 语法冲突问题完美解决方法 当我们在 django web 框架中,使用 vue 的时候,会遇到语法冲突. 因为 vue 使用 {{}}, 而 django 也使用 {{}}, ...
- 【GiraKoo】面向对象开发系列之【封装】
[技术分享]面向对象开发系列之[封装] 理解 封装是面向对象程序开发的基石. 程序开发,最核心价值,是数据. 程序其实是读取数据,操作数据,保存数据等一系列操作. 那么经过良好组织过的数据,将使编程事 ...