数据湖和Apache Iceberg,Apache Hudi,Delta Lake


1 什么是数据湖?


    数据湖这个词目前已经流行开来,逐步被数据相关的从业者接受,可能还有很多人不太清楚它和Hadoop,Hive,Spark这些大数据系统的区别,简单说数据湖是个业务概念,主要是为了区别传统数仓这个概念的(传统数仓的定义:data warehouse,是用于报告和数据分析的系统,被认为是商业智能的核心组件)。

    为什么说是“传统数仓”,因为Hadoop 于 2006 年诞生至今已有10多年了,在这期间大量的公司,尤其是互联网公司用Hadoop相关的系统来完成之前数据仓库要完成的任务,也就是实现上和传统的数据仓库完全不同了,很多人也称之为“现代数仓”。数据湖算是为当前这类系统起了个专门的名字,在Wikipedia、各大云服务厂商的网站上都有数据湖的定义,它们的定义大同小异,主要意思是:

数据湖是一个集中存储区,用于存储大量结构化(比如字段结构清晰的二维表)、半结构化(比如Json,XML格式文件)或非结构化(音视频文件)的数据,支持对这些数据进一步处理,用来生成报表, 数据分析和机器学习等

    从上面的定义看,一个包括基本组件的Hadoop系统(hdfs,Mapreduce,Hive)岂不就是数据湖?答案是肯定的,一个包括基本组件的Hadoop系统是数据湖的实现方式之一,数据湖是个业务概念,Hadoop系统是具体的实现数据湖的技术。

2 Hudi, Iceberg, Delta Lake是什么

    提到数据湖,很多人会和上面三个词联系起来,甚至觉得不用到上面三个技术的系统不是数据湖。这是不对的,数据湖是个业务概念,Hudi、Iceberg这些只是实现技术之一,而且仅用到Hudi、IceBerg或Delta Lake无法实现数据湖。

具体这这三者是什么,先看一下它们官网的定义:

Iceberg is a high-performance format for huge analytic tables. Iceberg brings the reliability and simplicity of SQL tables to big data, while making it possible for engines like Spark, Trino, Flink, Presto, and Hive to safely work w

你可能感兴趣的:(apache,big,data,大数据)