数据存储Hudi、Delta Lake、Crate、Apache CarbonData介绍

以下为你介绍的数据存储软件都可用在Linux系统上:Hudi(Uber 大数据存储系统)、Delta Lake(用于大数据的存储层)、Crate(数据存储系统)、Apache CarbonData(华为大数据存储方案)。

1、Hudi(Uber 大数据存储系统)

数据存储Hudi、Delta Lake、Crate、Apache CarbonData介绍

Hudi 是 Uber 在 2016 年以“Hoodie”为代号开发,旨在解决 Uber 大数据生态系统中需要插入更新及增量消费原语的摄取管道和 ETL 管道的低效问题。2019 年 1 月,Uber 向 Apache 孵化器提交了 Hudi,从而进一步推进了 Uber 的开源承诺,保证 Apache Hudi 可以在 Apache 软件基金会的开放治理和指导下长期可持续性地增长。

Hudi 是一个通用的大数据存储系统,主要特性:

摄取和查询引擎之间的快照隔离,包括 Apache Hive、Presto 和 Apache Spark。

支持回滚和存储点,可以恢复数据集。

自动管理文件大小和布局,以优化查询性能和目录清单。

准实时摄取,为查询提供最新数据。

实时数据和列数据的异步压缩。

Hudi 目前管理着 4000 多个表,这些表在 Uber 上存储了几 PB 的数据,同时将 Apache Hadoop 仓库访问延迟从几个小时降低到 30 分钟以下,这证明了它的可伸缩性。Hudi 还为数百个增量数据管道提供了支撑,与该公司以前使用的解决方案相比,它的成本更低,效率更高。

下载地址:https://hudi.apache.org/

2、Delta Lake(用于大数据的存储层)

Delta Lake 是一个存储层,为 Apache Spark 和大数据 workloads 提供 ACID 事务能力,其通过写和快照隔离之间的乐观并发控制(optimistic concurrency control),在写入数据期间提供一致性的读取,从而为构建在 HDFS 和云存储上的数据湖(data lakes)带来可靠性。

数据存储Hudi、Delta Lake、Crate、Apache CarbonData介绍

Delta Lake 还提供内置数据版本控制,以便轻松回滚。

主要功能特性:

1]、支持 ACID 事务

Delta Lake 在多并发写入之间提供 ACID 事务保证。每次写入都是一个事务,并且在事务日志中记录了写入的序列顺序。事务日志跟踪文件级别的写入并使用乐观并发控制,这非常适合数据湖,因为多次写入/修改相同的文件很少发生。在存在冲突的情况下,Delta Lake 会抛出并发修改异常以便用户能够处理它们并重试其作业。Delta Lake 还提供强大的可序列化隔离级别,允许工程师持续写入目录或表,并允许消费者继续从同一目录或表中读取。读者将看到阅读开始时存在的最新快照。

2]、模式管理(Schema management)

Delta Lake 自动验证正在被写的 DataFrame 模式是否与表的模式兼容。表中存在但不在 DataFrame 中的列设置为 null。如果 DataFrame 有表中不存在的列,则此操作会引发异常。Delta Lake 具有显式添加新列的 DDL 以及自动更新模式的能力。

3]、可扩展元数据处理

Delta Lake 将表或目录的元数据信息存储在事务日志中,而不是 Metastore 中。这允许 Delta Lake 在恒定时间内列出大型目录中的文件,同时在读取数据时非常高效。

4]、数据版本

Delta Lake 允许用户读取表或目录之前的快照。当文件被修改文件时,Delta Lake 会创建较新版本的文件并保留旧版本的文件。当用户想要读取旧版本的表或目录时,他们可以在 Apache Spark 的读取 API 中提供时间戳或版本号,Delta Lake 根据事务日志中的信息构建该时间戳或版本的完整快照。这允许用户重现之前的数据,并在需要时将表还原为旧版本的数据。

5]、统一流和批处理 Sink

除批量写入外,Delta Lake 还可用作 Apache Spark structured streaming 的高效流式 sink。结合 ACID 事务和可扩展的元数据处理,高效的流式 sink 现在可以实现大量近实时分析用例,而无需同时维护复杂的流式传输和批处理管道。

6]、数据存储格式采用开源的

Delta Lake 中的所有数据都是使用 Apache Parquet 格式存储,使 Delta Lake 能够利用 Parquet 原生的高效压缩和编码方案。

7]、记录更新和删除

这个功能马上可以使用。Delta Lake 将支持 merge, update 和 delete 等 DML 命令。这使得数据工程师可以轻松地在数据湖中插入/更新和删除记录。由于 Delta Lake 以文件级粒度跟踪和修改数据,因此它比读取和覆盖整个分区或表更有效。

8]、数据异常处理

Delta Lake 还将支持新的 API 来设置表或目录的数据异常。工程师能够设置一个布尔条件并调整报警阈值以处理数据异常。当 Apache Spark 作业写入表或目录时,Delta Lake 将自动验证记录,当数据存在异常时,它将根据提供的设置来处理记录。

9]、100% 兼容 Apache Spark API

这点非常重要。开发人员可以将 Delta Lake 与他们现有的数据管道一起使用,仅需要做一些细微的修改。比如我们之前将处理结果保存成 Parquet 文件,如果想使用 Delta Lake 仅仅需要做如下修改:

数据存储Hudi、Delta Lake、Crate、Apache CarbonData介绍

建造:

Delta Lake Core使用SBT进行编译。

编译运行:

build/sbt compile

要生成工件,请运行:

build/sbt package

要执行测试,请运行:

build/sbt test

下载地址:https://github.com/delta-io/delta

3、Crate(数据存储系统)

Crate Data 是一个开源的大规模的可伸缩的数据存储系统,无需任何系统管理需求。提供强大的搜索功能。用于存储各种表格数据、非结构化数据和二进制对象。并可通过 SQL 进行检索。易于安装和使用,支持高可用性和实时大规模并行访问和处理。Crate 特别适合用于 Docker 环境中。

数据存储Hudi、Delta Lake、Crate、Apache CarbonData介绍

下载地址:https://crate.io/

4、Apache CarbonData(华为大数据存储方案)

数据存储Hudi、Delta Lake、Crate、Apache CarbonData介绍

Apache CarbonData是由华为开源贡献的大数据高效存储格式解决方案。针对当前大数据领域分析场景需求各异而导致的存储冗余问题,CarbonData提供了一种新的融合数据存储方案,以一份数据同时支持“交互式分析、详单查询、任意维度组合的过滤查询等”多种大数据应用场景,并通过丰富的索引技术、字典编码、列存等特性提升了IO扫描和计算性能,实现百亿数据级秒级响应,与大数据生态Apache Hadoop、Apache Spark等无缝集成。

特点:

列式存储、丰富的索引支持、全局字典编码、自适应类型转换、标准SQL和API、数据生态集成、开源开放。

下载地址:https://github.com/apache/carbondata

注明

以上就是数据存储Hudi、Delta Lake、Crate、Apache CarbonData的介绍内容,这些数据存储软件都能使用在Linux操作系统中。

栏目相关文章