情感测试简介

首页 » 常识 » 常识 » Hudi实践使用ApacheH
TUhjnbcbe - 2021/4/30 18:24:00
1.概括

本文介绍了一种称为DataLakehouse的现代数据架构范例。DataLakehouse相比于传统的数据湖具有很多优势,本文说明了如何通过现代化数据平台并使用Lakehouse架构来应对客户端所面临的可扩展性、数据质量和延迟方面的挑战。本文介绍了使用ApacheHudi实现DataLakehouse的基本知识和步骤。

2.前言

过去十年随着物联网、云应用、社交媒体和机器学习的发展,公司收集的数据量呈指数级增长,同时对高质量数据的需求从几天和几小时的频率变为几分钟甚至几秒钟的时间。

数年来数据湖作为存储原始和丰富数据的存储库发挥了重要作用。但是随着它们的成熟,企业意识到维护高质量、最新和一致的数据是非常复杂的。除了摄取增量数据的复杂性之外,填充数据湖还需业务环境和高度依赖批处理。以下是现代数据湖的主要挑战:

?基于查询的变更数据捕获:提取增量源数据的最常见方法是依赖定义过滤条件的查询。当表没有有效字段来增量提取数据时,在源数据库上添加额外负载或无法捕获数据库的每一次变更,基于查询的CDC不包括已删除的记录,因为没有简单的方法来确定是否已删除了记录。基于日志的CDC是首选方法,可以解决上述挑战。本文将进一步讨论该方法。?数据湖中的增量数据处理:负责更新数据湖的ETL作业必须读取数据湖中的所有文件进行更改,并将整个数据集重写为新文件(因为没有简单的方法更新记录所在的文件)。?缺少对ACID事务的支持:如果同时存在读写,不遵从ACID事务会导致结果不一致。

数据体量的增加和保持最新数据使上述挑战更加复杂。Uber、Databricks和Netflix提出了旨在解决数据工程师面临的挑战的解决方案的数据湖处理框架,旨在在分布式文件系统(例如S3、OSS或HDFS)上的数据湖中执行插入和删除操作。下一代DataLakes旨在以可扩展性、适应性和可靠的方式提供最新数据,即DataLakehouse。

3.什么是Lakehouse

更多详情可参考如下文章:Lakehouse:统一数据仓库和高级分析的新一代开放平台,什么是LakeHouse

简而言之:DataLakehouse=DataLake+DataWarehouse

传统数据仓库旨在提供一个用于存储已针对特定用例/数据进行了转换/聚合的历史数据平台,以便与BI工具结合使用获取见解。通常数据仓库仅包含结构化数据,成本效益不高,使用批处理ETL作业加载。

DataLakes可以克服其中一些限制,即通过低成本存储支持结构化,半结构化和非结构化数据,以及使用批处理和流传输管道。与数据仓库相比,数据湖包含多种存储格式的原始数据,可用于当前和将来的用例。但是数据湖仍然存在局限性,包括事务支持(很难使数据湖保持最新状态)和ACID合规性(不支持并发读写)。

数据湖中心可利用S3,OSS,GCS,AzureBlob对象存储的数据湖低成本存储优势,以及数据仓库的数据结构和数据管理功能。支持ACID事务并确保并发读取和更新数据的一致性来克服数据湖的限制。此外与传统的数据仓库相比,Lakehouse能够以更低的延迟和更高的速度消费数据,因为可以直接从Lakehouse查询数据。

Lakehouse的主要特性如下

?事务支持?Schemaenforcementandgovernance(模式实施和治理)?BI支持?存储与计算分离?开放性?支持从非结构化数据到结构化数据的多种数据类型?支持各种工作负载?端到端流

为了构建Lakehouse,需要一个增量数据处理框架,例如ApacheHudi。

4.什么是ApacheHudi

ApacheHudi代表HadoopUpsertsDeletesIncrementals,是Uber在年开发的开源框架,用于管理分布式文件系统(如云存储,HDFS或任何其他HadoopFileSystem兼容存储)上的大型文件集,实现了数据湖中原子性、一致性、隔离性和持久性(ACID)事务。Hudi的

1
查看完整版本: Hudi实践使用ApacheH