Iceberg
文章平均质量分 82
周润发的弟弟
5年JAVA开发,目前就职于京东,感慨于技术栈之窄,奋力扩充中,希望大家多多支持
展开
-
【Iceberg学习五】Iceberg中性能和可靠性保证
在Iceberg表中的计划可以在单个节点上完成,因为Iceberg的元数据可以用来剪除不需要的元数据文件,除了过滤不包含匹配数据的数据文件。提交被构建为假设和行动。安全的文件级操作:通过支持原子更改,Iceberg支持新的用例,比如安全地压缩小文件和安全地将延迟数据追加到表中。如果因为另一个写入器已经提交而导致原子交换失败,失败的写入器会通过基于新的当前表状态写出一个新的元数据树来重试。例如,追加通常会为追加的数据文件创建一个新的清单文件,这个清单文件可以在每次尝试时不重写清单的情况下添加到表中。原创 2024-02-05 17:32:10 · 466 阅读 · 0 评论 -
【Iceberg学习四】Evolution和Maintenance在Iceberg的实现
例如:当 write.metadata.delete-after-commit.enabled=false 且 write.metadata.previous-versions-max=10 时,在100次提交后,将会有10个跟踪的元数据文件和90个孤立的元数据文件。相反,您可以编写选择您需要的数据的查询,Iceberg 会自动剪除不包含匹配数据的文件。在任何写入操作完成之前,使用比预期完成时间短的保留间隔来删除孤立文件是危险的,因为如果正在进行的文件被认为是孤立的并被删除,可能会破坏表。原创 2024-02-05 17:28:50 · 1316 阅读 · 0 评论 -
【Iceberg学习三】Reporting和Partitioning原理
分区是一种通过在写入时将相似的行分组在一起来加速查询的方法。将日志表配置为按 event_time 的日期进行分区,将把具有相同事件日期的日志事件分组到同一个文件中。Iceberg 跟踪那个日期,并将使用它来跳过其他没有有用数据的日期的文件。Iceberg 可以按年、月、日和小时的粒度来分区时间戳。它还可以使用分类列,比如在这个日志示例中的 level,将行存储在一起以加速查询。原创 2024-02-05 17:27:38 · 1089 阅读 · 0 评论 -
【Iceberg学习二】Branch和Tag在Iceberg中的应用
Iceberg 表元数据保持一个快照日志,记录了对表所做的更改。快照在 Iceberg 中至关重要,因为它们是读者隔离和时间旅行查询的基础。为了控制元数据大小和存储成本,Iceberg 提供了快照生命周期管理程序,如 expire_snapshots,用于删除基于表快照保留属性不再需要的快照和数据文件。为了更精细的快照生命周期管理,Iceberg 支持分支和标签,这些是具有独立生命周期的快照的命名引用。这种生命周期由分支和标签级别的保留策略控制。分支是独立的快照血统,并指向该血统的头部。原创 2024-02-05 17:25:10 · 696 阅读 · 0 评论 -
【Iceberg学习一】什么是Iceberg?
Apache Iceberg 是一个面向大型分析数据集的开放表格格式。Iceberg 为包括 Spark、Trino、PrestoDB、Flink、Hive 和 Impala 在内的计算引擎增加了表格功能,使用一种高性能的表格格式,其工作方式就像一个 SQL 表一样。原创 2024-02-05 17:22:03 · 660 阅读 · 0 评论