Apache冰山:一种现代餐桌格式,用于增强数据湖管理
Apache Iceberg是一种尖端的表格格式,旨在解决传统蜂巢桌的缺点,提供出色的性能,数据一致性和可扩展性。本文探讨了冰山的演变,关键特征(酸性交易,架构进化,时间旅行),建筑和与其他桌面格式(如三角洲湖和帕quet)的比较。我们还将研究其与现代数据湖泊的集成及其对大规模数据管理和分析的影响。
Apache Iceberg起源于2017年的Netflix(Ryan Blue和Daniel Weeks的创意),是为了解决蜂巢表格式固有的固有局限性的效果瓶颈,一致性问题和局限性。开源并于2018年捐赠给Apache软件基金会,迅速获得了吸引力,吸引了苹果,AWS和LinkedIn等行业巨头的贡献。
Netflix的经验强调了Hive的一个危险弱点:它依靠目录的桌面跟踪。这种方法缺乏稳健一致性,有效并发性以及现代数据仓库中预期的高级功能所需的粒度。冰山的发展旨在克服这些局限性,重点是:
冰山通过将表作为文件列表而不是目录来解决这些挑战。它提供了标准化的格式,该格式定义了多个文件中的元数据结构,并提供了与流行引擎(如Spark和Flink)无缝集成的库。
冰山的设计优先考虑与现有存储和计算引擎的兼容性,从而促进了广泛的采用而没有发生重大变化。目的是将冰山建立为行业标准,使用户可以与桌子互动,而不论基本格式如何。现在,许多数据工具提供本地冰山支持。
冰山超越仅解决Hive的局限性;它引入了强大的功能,可增强数据湖和数据湖泊工作量。关键功能包括:
冰山使用乐观的并发控制来确保酸性特性,以确保交易是完全投入或完全卷回去的。这可以最大程度地减少冲突,同时保持数据完整性。
与传统数据湖不同,冰山可以在不重写整个桌子的情况下修改分区方案。这样可以确保有效的查询优化而不会破坏现有数据。
冰山会自动根据分区优化查询,从而消除了用户通过分区列手动过滤的需求。
冰山支持有效的行级更新,同时支持抄写(Cow)和Merge-on-Read(MOR)策略。
冰山的不变快照使时间旅行查询以及回到以前的表格状态的能力。
冰山支持模式修改(添加,删除或更改列),而无需数据重写,确保灵活性和兼容性。
本节探讨了冰山的建筑及其如何克服Hive的局限性。
数据层存储实际的表数据(数据文件和删除文件)。它托管在分布式文件系统(HDFS,S3等)上,并支持多个文件格式(Parquet,orc,avro)。对于其柱状存储而言,通常首选Parquet。
该层在树结构中管理所有元数据文件,跟踪数据文件和操作。关键组件包括清单文件,清单列表和元数据文件。海雀文件存储高级统计信息和索引,以进行查询优化。
该目录充当中央注册表,为每个表提供当前元数据文件的位置,确保所有读者和作家都持续访问。各种后端可以用作冰山目录(Hadoop目录,Hive Metastore,Nessie Catalog,AWS Glue目录)。
冰山,镶木木,兽人和三角洲湖经常用于大规模数据处理。冰山将自己作为表格格式区分开,提供交易保证和元数据优化,这与文件格式不同。与三角洲湖相比,冰山在模式和分区进化中出色。
Apache Iceberg为数据湖管理提供了强大,可扩展和用户友好的方法。它的功能使其成为处理大规模数据的组织的引人注目的解决方案。
Q1。什么是Apache冰山?答:一种现代的开源表格式,可增强数据湖性能,一致性和可扩展性。
Q2。为什么需要阿帕奇冰山?答:克服Hive在元数据处理和交易功能中的局限性。
Q3。冰山如何处理模式演变?答:它支持模式更改,而无需全表重写。
Q4。什么是冰山的分区进化? A.修改分区方案而无需重写历史数据。
Q5。冰山如何支持酸交易?答:通过乐观的并发控制,确保原子更新。
以上是如何使用Apache冰山表?的详细内容。更多信息请关注PHP中文网其他相关文章!