Netflix 的 Apache Iceberg 数据湖之旅

云计算
re:Invent
0
0
## 视频 <video src="https://dev-media.amazoncloud.cn/30-LibaiGenerate/31-LiBaiRebrandingVideo/NFX306-Netflix_s_journey_to_an_Apache_Iceberg_only_data_lake-LBrebrandingWCaptionCN.mp4" class="bytemdVideo" controls="controls"></video> ## 导读 Netflix 运营大约 1 EB 的数据湖。尽管如此,一部分数据(约 300 PB)仍然是传统的 Apache Hive 表格式。在 Apache Iceberg 众所周知的优势(如时间旅行和模式演进)的激励下,Netflix 完全淘汰了 Hive,并将现有数据过渡到 Iceberg。在本论坛中,学习 Netflix 如何使用定制工具以适当的规模管理此任务,以及他们如何开发独特的内部功能,如安全的 Iceberg 表和 IcebergREST 目录。了解 Netflix 从基于 Hive 的数据仓库到仅限 Iceberg 的数据仓库的过程,以及 Netflix 如何克服转型带来的挑战。 ## 演讲精华 <font color = "grey">以下是小编为您整理的本次演讲的精华,共1100字,阅读时间大约是6分钟。如果您想进一步了解演讲内容或者观看演讲全文,请观看演讲完整视频或者下面的演讲原文。</font> Vy的介绍演讲者从Ashwin Kaur和Rakesh Vira开始,这两位都是Netflix大数据计算组织的软件工程师。Vy表示,他们将共同阐述Netflix从Hive迁移至Apache Iceberg的数据湖历程。Iceberg是Netflix发明的一种开放式表格格式,专为高效管理大规模数据湖而设计。 Vy强调,他希望了解迁移至Iceberg的过程中遇到的问题、Netflix所面临的扩展挑战以及他们在这一过程中所取得的创新成果。他指出,Netflix的工作多为亚马逊云科技的路线图提供信息,且由于所有内容均为开源,观众可以借鉴其中的宝贵经验,将其应用到自己组织的实践中。 在背景介绍完毕后,Ashwin开始演讲,对亚马逊云科技的合作与支持表示感谢。他介绍自己担任数据平台高级软件工程师,负责设计大数据解决方案并为内部系统做出贡献。目前,他正致力于引领将Netflix数据湖从Hive过渡至仅使用Iceberg的架构变革。 接着,Ashwin将发言权交给Rakesh,让他自我介绍。Rakesh表示,他在Netflix工作了五年,涉及大数据计算堆栈的各个方面,包括元数据、存储和计算引擎。最近,他与Ashwin密切合作,将所有的Hive工作负载迁移至仅使用Iceberg的架构。 随后,Ashwin概述了他们的演讲内容。首先,他们将描述Netflix的商业动机,然后是他们的基本数据平台。接下来,他们将解释为何创建Iceberg并将其作为Netflix的核心。此外,他们还将讨论围绕Iceberg构建的生态系统,以优化其基础设施。Rakesh将详细讲述他们从Hive数据湖过渡至仅使用Iceberg的架构过程。最后,他们将总结关键收获和心得,并与社区分享。 在深入了解Netflix的驱动力时,Ashwin阐述了Netflix如何投入大量资源以了解用户喜好——他们喜欢的节目、电影,以及预测未来兴趣。所有用户的个性化体验,如前十排名和推荐,都依赖于处理观看行为和兴趣的大量数据。他们的[机器学习](https://aws.amazon.com/cn/machine-learning/?trk=cndc-detail)算法还利用海量用户数据为用户量身定制独特体验。 这些团队都在利用Netflix基础数据平台上的大数据驱动算法。据Rakesh介绍,他们的架构由多个组件构成。在底层,数据存储在[Amazon S3](https://aws.amazon.com/cn/s3/?trk=cndc-detail)存储桶中,而计算则是通过Titus容器平台在EC2上完成的。除了存储功能外,他们还建立了一个元数据层,将底层存储抽象成诸如Iceberg之类的表格式。这为用户提供一个统一的途径,通过Meta-A服务访问元数据,避免了对表格类型和存储具体细节的处理。此外,他们还拥有数据治理工具,如数据目录和策略引擎,可对数据集进行索引并强制执行策略。他们的计算层支持不同的处理引擎,如Spark、Trino和Druid。最后,他们还提供了一套针对不同用户群体(如数据工程师、数据科学家和分析员)的客户端工具。这种架构支持Netflix在整个业务过程中的一切活动——从内部分析到A/B测试到产品功能。然而,随着时间的推移,他们开始面临主要数据仓库格式Hive的限制。Hive缺乏内置的ACID语义,而且当表增长到petabyte规模时,任何模式更改都需要重写所有数据。这使得他们设计出了改进的开放表格式Iceberg。Iceberg克服了Hive的缺点,提供了内置的ACID事务处理和一个简化数据管理和治理的丰富元数据层。其他有益的功能包括存储和计算的分离、时间旅行查询、模式演变以及配置表和任务。Iceberg的设计是基于一个强大的社区关注和对语言互操作性的考虑。在将Iceberg与他们的Spark和Reno处理引擎集成之后,Netflix开始构建使其成熟所需的其余生态系统。Rakesh解释了了他们开发的每个服务和创建定制抽象背后的原因。对于元数据,他们最初将Iceberg元数据存储在Hive的元存储中。但他们很快遇到了导致可用性问题的扩展问题。因此,他们构建了Polaris - 一个使用CockroachDB进行水平扩展的针对Iceberg的自定义元存储。Polaris还实现了Iceberg的REST API规范,使任何支持该标准的引擎都能够直接连接并运行查询。 在数据生命周期管理方面,他们开发了一种名为Janitors的工具,用于根据预设定的过期时间清除废弃的数据。此外,AutoTune功能可以优化数据库结构,通过合并小型表格并对它们进行排序来实现。AutoLift功能则可以将远程地区的数据本地化,从而节省跨区域传输带来的带宽成本。所有这些服务都是基于Iceberg的开放接口构建的。 考虑到Hive数据湖的开放式特性,负责安全性的团队已经实施了自家的S3权限方案。为了在默认情况下提供仓库级别的安全性,Netflix在Iceberg的元数据中直接存储表级的访问控制列表(ACL)。这使得他们有机会将原有的依赖Hive的数据迁移到安全的Iceberg表中。 然而,由于Hive中有着数百PB的数据,团队在迁移所有数据时面临带宽不足的问题。因此,他们决定采用托管的方式,构建自定义工具,以便以最小的停机时间为代价实现Hive数据的透明迁移。 Ashwin随后深入了解了他们为应对这一艰巨任务而开发的迁移工具。减少数据移动对于提高速度和降低成本至关重要。因此,他们设计了一个流程,直接在Hive数据文件上生成Iceberg元数据,避免了数据的复制。这种只迁移元数据的策略对临时Hive表以外的95%的非临时表有效。 该工具本身还包括异步组件,用于处理元数据、通信、迁移、恢复和阴影同步等功能。基于状态机的设计提供了回滚功能、可调试性和操作灵活性。他们预测并解决了一系列潜在问题,如遗产格式的不兼容性、协调表迁移过程中的问题、安全变更以及对Hive API的依赖等。 总的来说,Ashwin总结了他们在Iceberg之旅中取得的显著成果——成本降低了25%,查询速度得到了显著提升,实现了精细粒度的安全性,减少了技术债务,以及其他好处。他强调,他们将开源迁移工具,为社区提供一个可参考的实现。 Rakesh总结说,要感谢Iceberg的发明者和所有为该项目做出贡献的Netflix同事。他还感谢亚马逊云科技提供的平台,使他们能够分享这些经验。演讲者清晰地传达了对Netflix开创Iceberg的动力、克服的挑战以及为了成功迁移到仅使用Iceberg的数据湖架构所构建的生态系统的理解。 **下面是一些演讲现场的精彩瞬间:** 演讲者详细阐述了Netflix的数据平台如何依赖于亚马逊云科技的服务,例如S3和EC2,以实现高级别的数据处理功能。 ![](https://d1trpeugzwbig5.cloudfront.net/NFX306-Netflix_s_journey_to_an_Apache_Iceberg_only_data_lake/images/rebranded/NFX306-Netflix_s_journey_to_an_Apache_Iceberg_only_data_lake_0.png) 演示文稿概述了支持Netflix在整个业务生命周期内利用大数据平台的云原生、可扩展架构。 ![](https://d1trpeugzwbig5.cloudfront.net/NFX306-Netflix_s_journey_to_an_Apache_Iceberg_only_data_lake/images/rebranded/NFX306-Netflix_s_journey_to_an_Apache_Iceberg_only_data_lake_1.png) 核心观点是隐藏表格已经被迁移的事实,同时确保其外观没有发生改变,这可以通过使用状态机来实现,包括准备、迁移、完成和撤销迁移等状态。 ![](https://d1trpeugzwbig5.cloudfront.net/NFX306-Netflix_s_journey_to_an_Apache_Iceberg_only_data_lake/images/rebranded/NFX306-Netflix_s_journey_to_an_Apache_Iceberg_only_data_lake_2.png) 这种设计有助于确保每个状态都遵循特定的属性,如idempotency,以便在需要时进行重试而不会改变结果,并提供轻松的扩展性。 ![](https://d1trpeugzwbig5.cloudfront.net/NFX306-Netflix_s_journey_to_an_Apache_Iceberg_only_data_lake/images/rebranded/NFX306-Netflix_s_journey_to_an_Apache_Iceberg_only_data_lake_3.png) 演讲者强调了通过压缩、高效的数据清理和自动调整技术等手段在亚马逊云科技中实现的25%的成本节省。 ![](https://d1trpeugzwbig5.cloudfront.net/NFX306-Netflix_s_journey_to_an_Apache_Iceberg_only_data_lake/images/rebranded/NFX306-Netflix_s_journey_to_an_Apache_Iceberg_only_data_lake_4.png) 演讲者感谢冰山的发明者以及为该项目做出贡献的同事。 ![](https://d1trpeugzwbig5.cloudfront.net/NFX306-Netflix_s_journey_to_an_Apache_Iceberg_only_data_lake/images/rebranded/NFX306-Netflix_s_journey_to_an_Apache_Iceberg_only_data_lake_5.png) ## 总结 Netflix近日分享了他们从Hive迁移至Iceberg的数据基础设施变革历程,以期实现更高效的数据管理。起初,Netflix采用Hive作为其数据湖解决方案,但随着时间的推移,逐渐暴露出诸如缺乏ACID事务和可扩展性等问题。为了应对这些挑战,他们自主研发了Iceberg,这是一种开放式的表格式,支持快照隔离、模式演进等功能。 在此基础上,Netflix构建了一个服务于Iceberg的生态圈,包括定制元存储系统、用于数据清理和优化的表管理系统以及安全性保障。此举为他们带来了诸多益处,如降低成本、提高性能以及简化计算引擎集成。 然而,将大量Hive数据湖迁移至Iceberg的过程中也遇到了一些困难。为解决这一问题,Netflix研发了一款专门用于Hive到Iceberg迁移的工具。这款工具不仅减少了数据移动量,保证了数据的连续性,还使得用户能够更轻松地完成过渡。该工具运用了多种技术,如在Hive数据基础上尽可能地生成Iceberg元数据。截至目前,他们已经成功迁移了非临时Hive表的95%。 总之,Iceberg及其所构建的服务生态圈已然使Netflix的数据平台实现了现代化。他们的目标是为开源组件做出贡献,以推动Iceberg成为行业内的标准解决方案。 ## 演讲原文 ## 想了解更多精彩完整内容吗?立即访问re:Invent 官网中文网站! [2023亚马逊云科技re:Invent全球大会 - 官方网站](https://webinar.amazoncloud.cn/reInvent2023/?s=8739&smid=19458 "2023亚马逊云科技re:Invent全球大会 - 官方网站") [点击此处](https://aws.amazon.com/cn/new/?trk=6dd7cc20-6afa-4abf-9359-2d6976ff9600&trk=cndc-detail "点击此处"),一键获取亚马逊云科技全球最新产品/服务资讯! [点击此处](https://www.amazonaws.cn/new/?trk=2ab098aa-0793-48b1-85e6-a9d261bd8cd4&trk=cndc-detail "点击此处"),一键获取亚马逊云科技中国区最新产品/服务资讯! ## 即刻注册亚马逊云科技账户,开启云端之旅! [【免费】亚马逊云科技“100 余种核心云服务产品免费试用”](https://aws.amazon.com/cn/campaigns/freecenter/?trk=f079813d-3a13-4a50-b67b-e31d930f36a4&sc_channel=el&trk=cndc-detail "【免费】亚马逊云科技“100 余种核心云服务产品免费试用“") [【免费】亚马逊云科技中国区“40 余种核心云服务产品免费试用”](https://www.amazonaws.cn/campaign/CloudService/?trk=2cdb6245-f491-42bc-b931-c1693fe92be1&sc_channel=el&trk=cndc-detail "【免费】亚马逊云科技中国区“40 余种核心云服务产品免费试用“")
目录
亚马逊云科技解决方案 基于行业客户应用场景及技术领域的解决方案
联系亚马逊云科技专家
亚马逊云科技解决方案
基于行业客户应用场景及技术领域的解决方案
联系专家
0
目录
关闭