问题标签 [data-lakehouse]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
delta-lake - lakeFS、Hudi、Delta Lake 合并和合并冲突
我正在阅读有关lakeFS 的文档,现在还不清楚什么是合并甚至合并冲突就lakeFS 而言。
假设我使用 Apache Hudi 对单个表进行 ACID 支持。我想介绍多表 ACID 支持,为此我想将 LakeFS 与 Hudi 一起使用。
如果我正确理解了所有内容,那么lakeFS 是一个与数据无关的解决方案,并且对数据本身一无所知。LakeFS 仅建立边界(版本控制)并以某种方式调节对数据的并发访问。
所以合理的问题是 - 如果lakeFS 与数据无关,它如何支持合并操作?就lakeFS而言,合并本身意味着什么?那里有可能发生合并冲突吗?
architecture - Delta 上的 Upserts 只是重复数据?
我对数据块上的 Delta 和 Lakehouse 还很陌生。基于以下操作,我有一些问题:
- 我导入了一些镶木地板文件
- 将它们转换为 delta(创建 1 个 snappy.parquet 文件)
- 删除一个随机行(创建 1 个新 snappy.parquet 文件)。
- 我检查了两个 snappy 文件(增量表的版本 0 和版本 1)的内容,它们都包含所有数据,每个数据都有其特定的差异。
这是否意味着 delta 只是为每个新版本复制数据?
这是如何扩展的?还是我错过了什么?
hive - 增量文件、增量表和增量事务
我在理解 Delta 表、Delta 事务日志和 Delta 文件时遇到了严重问题。
问题:
- 增量表是什么以及在哪里。我不明白它们是在元存储(hive)中,还是在对象存储(s3)中或两者中。
- 增量文件是什么以及在哪里。同样的情况,我不明白什么是增量文件。我可以在 Hive(多个)和 /tmp 文件夹中看到一个镶木地板文件。
这是我从阅读信息中恢复的。
增量表
- 包含基础文件位置路径
- 表属性
- 表架构定义
- 保存在元存储中(即 Apache Hive)
增量事务日志
- 存储每个执行的事务。
- 增量表更改的单一事实来源
- 启用 ACID 属性,从而实现时间旅行和版本控制
增量文件
- 事务日志文件
- 原子单位 - 提交
- 存储在云对象存储(AWS、MS Azure、GCP)或文件系统(HDFS)中
- 纯数据文件(Apache Parquet / OCR)或分区文件夹(年-月-日)
三角洲引擎(付费)
- SQL 和 DataFrame 的性能优化
我不知道如何理解这个..