数据湖(九):Iceberg 特点详述和数据类型

数据湖技术之Iceberg-01 原理解析、特性演进与Hive集成指南 数据湖技术是集中存储多源异构数据的解决方案,支持批流一体处理。传统数据仓库难以满足实时分析需求,而Kappa架构存在存储和查询限制。Apache Iceberg作为开放表格式,支持ACID事务、分区演化、模式变更等特性,实现存储层统一。其分层元数据设计(Snapshot、Manifest等)与轻量级集成能力,解决了实时数仓的痛点,成为大数据领域的重要技术。 阅读详情

Iceberg 特点详述和数据类型

一、Iceberg 特点详述

1、Iceberg 分区与隐藏分区(Hidden Partition)

Iceberg 支持分区来加快数据查询。在 Iceberg 中设置分区后,可以在写入数据时将相似的行分组,在查询时加快查询速度。Iceberg 中可以按照年、月、日和小时粒度划分时间戳组织分区。

在 Hive 中也支持分区,但是要想使分区能加快查询速度,需要在写 SQL 时指定对应的分区条件过滤数据,在 Iceberg 中写 SQL 查询时不需要再 SQL 中特别指定分区过滤条件,Iceberg 会自动分区,过滤掉不需要的数据。

在 Iceberg 中分区信息可以被隐藏起来,Iceberg 的分区字段可以通过一个字段计算出来,在建表或者修改分区策略之后,新的数据会自动计算所属于的分区,在查询的时候同样不用关心表的分区是什么字段,只需要关注业务逻辑,Iceberg 会自动过滤不需要的分区数据。

正是由于 Iceberg 的分区信息和表数据存储目录是独立的,使得 Iceberg 的表分区可以被修改,而且不会涉及到数据迁移。

2、Iceberg 表演化(Table Evolution)

在 Hive 分区表中,如果把一个按照天分区的表改成按小时分区,那么没有办法在原有表上进行修改,需要创建一个按照小时分区的表,然后把数据加载到此表中。

Iceberg 支持就地表演化,可以通过 SQL 的方式进行表级别模式演进,例如:更改表分区布局。Iceberg 进行以上操作时,代价极低,不存在读出数据重新写入或者迁移数据这种费时费力的操作。

3、模式演化(Schema Evolution)

Iceberg 支持以下几种 Schema 的演化:

  • ADD:向表或者嵌套结构增加新列。

  • Drop:从表或嵌套结构中移除列。

  • Rename:重命名表中或者嵌套结构中的列。

  • Update:将复杂结构(Struct、Map<Key,Value>,list)中的基本类型扩展类型长度,比如:tinyint 修改成 int。

  • Reorder:改变列的顺序,也可以改变嵌套结构中字段的排序顺序。

注意:

Iceberg Schema 的改变只是元数据的操作改变,不会涉及到重写数据文件。Map 结构类型不支持 Add 和 Drop 字段。

Iceberg 保证 Schema 演化是没有副作用的独立操作,不会涉及到重写数据文件,具体如下:

  • 增加列时不会从另一个列中读取已存在的数据

  • 删除列或者嵌套结构中的字段时,不会改变任何其他列的值。

  • 更新列或者嵌套结构中字段时,不会改变任何其他列的值。

  • 改变列或者嵌套结构中字段顺序的时候,不会改变相关联的值。

Iceberg 实现以上的原因使用唯一的 id 来追踪表中的每一列,当添加一个列时,会分配新的 ID,因此列对应的数据不会被错误使用。

4、分区演化(partition Evolution)

Iceberg 分区可以在现有表中更新,因为 Iceberg 查询流程并不和分区信息直接关联。

当我们改变一个表的分区策略时, 对应修改分区之前的数据不会改变, 依然会采用老的分区策略, 新的数据会采用新的分区策略, 也就是说同一个表会有两种分区策略, 旧数据采用旧分区策略, 新数据采用新新分区策略, 在元数据里两个分区策略相互独立,不重合.

因此,在我们写 SQL 进行数据查询时, 如果存在跨分区策略的情况, 则会解析成两个不同执行计划, 如 Iceberg 官网提供图所示:

图中 booking_table 表 2008 年按月分区, 进入 2009 年后改为按天分区, 这两中分区策略共存于该表中。得益于 Iceberg 的隐藏分区(Hidden Partition), 针对上图中的 SQL 查询, 不需要在 SQL 中特别指定分区过滤条件(是按照月还是按照天), Iceberg 会自动分区, 过滤掉不需要的数据。

5、列顺序演化(Sort Order Evolution)

Iceberg 可以在一个已经存在的表上修改排序策略。修改了排序策略之后, 旧数据依旧采用老排序策略不变。往 Iceberg 里写数据的计算引擎总是会选择最新的排序策略, 但是当排序的代价极其高昂的时候, 就不进行排序了。

二、Iceberg 数据类型

Iceberg 表支持以下数据类型:

数据湖存储解决方案之Iceberg Apache Iceberg 是由 Netflix 开发开源的,其于2018年11月16日进入 Apache 孵化器,是 Netflix 公司数据仓库基础。Apache Iceberg设计初衷是为了解决Hive离线数仓计算慢的问题,经过多年迭代已经发展成为构建数据湖服务的表格式标准。Iceberg 本质上是一种专为海量分析设计的表格式标准,可为主流计算引擎如 Presto、Spark 等提供高性能的读写和元数据管理能力。 阅读详情

相关推荐

【2】数据湖架构中 Iceberg 的核心特性

在业界的数据湖方案中有 Hudi、Iceberg 和 Delta 三个关键组件可供选择。 一、Iceberg 是什么? Iceberg 官网中是这样定义的: Apache Iceberg is an open table format for huge analytic datasets 即 Iceberg 是大型分析型数据集上的一个开放式表格式。通过该表格式,将下层的存储介质(HDFS、S3、OSS等)、文件格式(Parquet、Avro、ORC等)与上层计算引擎(Flink、Spark、.

TRX的博客 6431

Apache Iceberg 0.13 特性介绍-Flink/Spark新版本支持、增量删除等特性来袭

Apache Iceberg 社区刚刚发布了 0.13 版,其中有很多很棒的新增功能!在这篇文章中,我将介绍一些本版本的亮点功能。

杂记 1389

数据湖Iceberg、Hudi和Paimon比较

Iceberg 社区基本盘还是在离线处理,它在国外的应用场景主要是离线取代 Hive,它也有强力的竞争对手 Delta,很难调整架构去适配 CDC 流更新。同时,Iceberg 扩展性强,对其它计算引擎也暴露的比较多的优化空间,但是这也导致后续的发展难以迅速,涉及到众多已经对接好的引擎。这并没有什么错,后面也证明了 Iceberg 主打离线数据湖和扩展性是有很大的优势,得到了众多国外厂商的支持。

marui156的专栏 1万+

Iceberg从入门到精通系列之十九:分区

Iceberg从入门到精通系列之十九:分区

zhengzaifeidelushang的博客 3420

大数据的下一代变革-数据湖之Iceberg

1. 什么是数据湖 1.1 什么是数据湖 数据湖是一个集中式的存储库,允许以任意模式存储多个来源,所有结构化和非结构化数据,可以按照原样存储数据,无需对数据进行结构化处理,并运行不同类型的分析,对数据进行加工,例如:大数据处理,实时分析,机器学习,以指导做出更好的决策。 1.2 大数据为什么需要数据湖 当前基于Hive的离线数据仓库已经非常成熟,在传统的离线数据仓库中对记录级别的数据进行更新是非常麻烦的,需要对待更新的数据所属的整个分区,甚至时整个表进行全面覆盖才行,由于离线数仓多级逐层加工的架构设计,数据

wenqi 6182

使用 Iceberg on Kubernetes 打造新一代云原生数据湖

背景 大数据发展至今,按照 Google 2003年发布的《The Google File System》第一篇论文算起,已走过17个年头。可惜的是 Google 当时并没有开源其技术,“仅仅”是发表了三篇技术论文。所以回头看,只能算是揭开了大数据时代的帷幕。随着 Hadoop 的诞生,大数据进入了高速发展的时代,大数据的红利及商业价值也不断被释放。现今大数据存储和处理需求越来越多样化,在后 Hadoop 时代,如何构建一个统一的数据湖存储,并在其上进行多种形式的数据分析,成了企业构建大数据生态的一个重要方

吉小白的博客 2115

【iceberg】数据湖与iceberg调研与实战

【iceberg】数据湖与iceberg调研

hiliang521的博客 1644

Hudi、Iceberg 、 Paimon 数据湖选型对比

Hudi、Iceberg 和 Paimon 是当前数据湖领域的三大主流开源框架,均致力于解决数据湖场景下的等核心问题,但设计理念和适用场景存在差异。

LXP 2509

数据湖 | 还不知道什么是Iceberg?一篇文章带你走进Iceberg的世界!

文章目录1. Iceberg是什么?2. 能力与优势2.1 Iceberg都有哪些功能?2.2 Iceberg能力验证3. Iceberg应用场景参考文档 近年来“数据湖”的概念在大数据领域如火如荼。delta、Apache Iceberg和Apache Hudi是市面上流行的三大数据湖解决方案,那到底这些方案是什么?又怎么使用?本文参考官网文档,带你快速入门iceberg,并从几个简单的例子出发,感受iceberg的能力。 1. Iceberg是什么? Iceberg定位在计算引擎之下,存储之上,通过特定

search-lemon的博客 2万+

数据湖技术选型指南:Iceberg vs Delta Lake vs Paimon

摘要:主流开源数据湖格式对比分析 本文对比了三种主流开源数据湖格式(Iceberg、Delta Lake、Paimon)的核心原理与实现差异。

Kami‘s home 1053

数据湖iceberg和spark集成

为了解决数据存储和计算引擎之间的适配的问题,Netflix开发了Iceberg,2018年11月16日进入Apache孵化器,2020 年5月19成为Apache的顶级项目。Iceberg是一个面向海量数据分析场景的开放表格式(Table Format)可以理解为元数据以及数据文件的一种组织方式,处于计算框架(Flink,Spark…)之下,数据文件之上。

z1987865446的博客 1890

实践数据湖iceberg 第一课

数据湖iceberg 系列文章目录 提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档 数据湖实践第一课 flink+iceberg入门数据湖iceberg 系列文章目录前言一、数据湖iceberg实践环境说明二、启动flink sql客户端1. 启动flink standalone集群2.下载flink iceberg runtime的包,启动flink-sql3.创建基于hadoop的catalog4.写数据,读数据测试(hadoop catalog的限制)5.创建基于hive的cat

spark_dev的博客 5327

数据湖(九):Iceberg特点详述和数据类型

Iceberg特点详述和数据类型

Lansonli(蓝深李)的博客 2488

数据湖技术 Iceberg 的探索与实践

本文资料来自2020年9月5日由快手技术团队主办的快手大数据平台架构技术交流会,分享者邵赛赛,腾讯数据平台部数据湖内核技术负责人,资深大数据工程师,Apache Spark PMC me...

过往记忆大数据 7142

数据湖(七):Iceberg概念及回顾什么是数据湖

Apache Iceberg是一种用于大型数据分析场景的开放表格式(Table Format)。Iceberg使用一种类似于SQL表的高性能表格式,Iceberg格式表单表可以存储数十PB数据,适配Spark、Trino、PrestoDB、Flink和Hive等计算引擎提供高性能的读写和元数据管理功能,Iceberg是一种数据湖解决方案......

Lansonli(蓝深李)的博客 1851

从零开始:Doherty功率放大器的ADS仿真实践指南

本文详细介绍了Doherty功率放大器在ADS中的仿真设计流程,从基础原理到实际工程应用。通过负载调制技术,Doherty结构显著提高了功率放大器的效率,特别适合处理高峰均比信号。文章包含ADS环境搭建、对称与非对称设计、常见问题调试等实用内容,为射频工程师提供全面的实践指南。

weixin_29313547的博客 689

Flink集成数据湖之实时数据写入iceberg

文章目录背景iceberg简介flink实时写入准备sql client环境创建catalog创建db创建table插入数据查询代码版本总结 背景 随着大数据处理结果的实时性要求越来越高,越来越多的大数据处理从离线转到了实时,其中以flink为主的实时计算在大数据处理中占有重要地位。 Flink消费kafka等实时数据流。然后实时写入hive,在大数据处理方面有着广泛的应用。此外由于列式存储格式如parquet或者orc在查询性能方面有着显著的提高,所以大家都会优先选择列式存储作为我们的存储格式。 传统的这

公众号[大数据技术与应用实战],分享大数据实战案例 5105

Python逆向爬取Tik Tok,MsToken,X-Bogus以及signature

tiktok作为字节海外的自媒体平台,具有很非常大的价值,本文旨在教会大家实现Tik Tok的签名获取以及数据的最终爬取。

weixin_74305707的博客 3268

数据湖之Iceberg

Apache Iceberg 是一个用于大规模数据集的开源表格式库,旨在解决传统数据湖在管理大型数据集时遇到的挑战。它由Netflix创建,并捐赠给了Apache软件基金会。Iceberg旨在提供一种高效、灵活且可扩展的方式来处理海量数据,同时保持强大的事务性保证。

youziguo的专栏 2054

Meta-RL之Meta-Gradient Reinforcement Learning

这篇文章是用元学习算法去学习RL的超参数η={γ,λ}\eta=\{\gamma,\lambda\}η={γ,λ}。当然不仅限于这2个超参数,还可以是和回报相关的超参数。 本文的核心思想:我们之前接触过Meta-Learning参数的初始化(MAML、Reptile)以及Meta-Learning参数的更新优化(L2L-by-gd-by-gd、Opt as a model for few-shot learning),那么这篇就是能否Meta-Learning到η={γ,λ}\eta=\{\gamma,\l

Ton的博客 2520

卡尔曼滤波调参避坑指南:Q/R参数怎么设?实测5种传感器场景

本文针对卡尔曼滤波在工程实践中Q/R参数设置的难题,提供了一套实用的调参避坑指南。通过分析过程噪声方差Q与测量噪声方差R的物理意义与博弈关系,并结合温度传感器、陀螺仪、超声波测距等五种典型传感器场景的实测效果对比,总结出从噪声估算、离线仿真到收敛测试的系统性调参方法论,帮助工程师快速实现稳定有效的滤波效果。

weixin_29174141的博客 801

数据湖之Iceberg 和 hudi 对比

Hudi 和 Iceberg 的差异,不是能力强弱,而是工程取舍。“为什么 Hudi 查这么慢?“为什么 Iceberg 不适合 CDC?你已经可以非常确定地回答:“这是定位差异,而不是技术缺陷。这,才是 Iceberg 和 Hudi 真正应该被理解和使用的方式。

上尤流苏 890

DeerFlow 系列教程 第三篇 | 核心技术深度剖析:Skills、Memory 与 Context Engineering

摘要化是 Context Engineering 中最关键的组件——它直接决定了长对话的可用性。Skills 技能系统通过渐进式加载的三层模型,在保持系统提示词轻量的同时,支持无限数量的技能扩展。从发现到执行的 10 个生命周期阶段,配合 AI 驱动的安全扫描和多层缓存,构成了一个生产级的技能管理框架。Memory 长期记忆系统通过文件系统持久化、LLM 驱动的信息提取和防抖动异步更新,实现了跨会话的认知持久化。六类事实分类体系和修正信号检测机制,让 Agent 能够从交互中持续学习和改进。

weixin_43674738的博客 280
上一篇: 数据湖(八):Iceberg 数据存储格式
下一篇: 云原生(一) | 介绍篇之大数据需要拥抱云原生吗?云原生为什么这么火?
wrr-cat
博客等级 码龄9年 128粉丝 302原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值