41

数据湖框架 Hudi or Iceberg 不知道怎么选?云计算一哥AWS的选择了解下?

 3 years ago
source link: http://mp.weixin.qq.com/s?__biz=MzI0NTIxNzE1Ng%3D%3D&%3Bmid=2651220274&%3Bidx=1&%3Bsn=83af8f9b2c8e16b80b73fa73611c702d
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

此前Apache Hudi社区一直有小伙伴询问能否使用Amazon Redshift(数仓)查询Hudi表,现在它终于来了。

现在您可以使用Amazon Redshift查询Amazon S3 数据湖中Apache Hudi/Delta Lake表数据。Amazon Redshift Spectrum作为Amazon Redshift的特性可以允许您直接从Redshift集群中查询S3数据湖,而无需先将数据加载到其中,从而最大限度地缩短了洞察数据价值时间。

Redshift Spectrum支持Lake house架构,可以跨Redshift、Lake house和操作数据库查询数据,而无需进行ETL或加载数据。Redshift Spectrum支持开放数据格式,如Parquet、ORC、JSON和CSV。Redshift Spectrum还支持查询具有复杂嵌套数据类型(如struct、array或map)。

FfIN7fA.png!mobile

Redshift Spectrum允许您读取Apache Hudi 0.5.2版本的Copy-on-Write(CoW)表的最新快照,并且可以通过manifest文件读取最新的Delta Lake 0.5.0版本表。

要查询Apache Hudi的Copy-On-Write(CoW)格式的数据,可以使用Amazon Redshift-Spectrum外表。Hudi Copy On Write表是存储在Amazon S3中的Apache Parquet文件的集合。有关更多信息,请参阅开源Apache Hudi文档中的Copy-On-Write表。

当创建引用Hudi CoW格式数据的外表后,将外表中的每一列映射到Hudi数据中的列。映射是按列完成的。

Hudi分区和未分区表的数据定义语言(DDL)语句与其他Apache Parquet文件格式的语句类似。对于Hudi表,可以将 INPUTFORMAT 定义为 org.apache.hudi.hadoop.HoodieParquetInputFormat . LOCATION 参数必须指向包含 .hoodie 文件夹的Hudi表基础文件夹,该文件夹是建立Hudi提交时间线所必需的。在某些情况下,对Hudi表的SELECT操作可能会失败,并显示消息** No valid Hudi commit timeline found **。如果是,请检查 .hoodie 文件夹是否在正确的位置,并且包含有效的Hudi提交时间线。

注意,Apache Hudi格式只有在使用AWS Glue Data时支持,不支持使用Apache Hive metastore作为外部catalog。

使用如下命令定义非分区表

CREATE EXTERNAL TABLE tbl_name (columns)
ROW FORMAT SERDE 'org.apache.hadoop.hive.ql.io.parquet.serde.ParquetHiveSerDe'
STORED AS
INPUTFORMAT 'org.apache.hudi.hadoop.HoodieParquetInputFormat'
OUTPUTFORMAT 'org.apache.hadoop.hive.ql.io.parquet.MapredParquetOutputFormat'
LOCATION 's3://s3-bucket/prefix'

使用如下命令定义分区表

CREATE EXTERNAL TABLE tbl_name (columns)
PARTITIONED BY(pcolumn1 pcolumn1-type[,...])
ROW FORMAT SERDE 'org.apache.hadoop.hive.ql.io.parquet.serde.ParquetHiveSerDe'
STORED AS
INPUTFORMAT 'org.apache.hudi.hadoop.HoodieParquetInputFormat'
OUTPUTFORMAT 'org.apache.hadoop.hive.ql.io.parquet.MapredParquetOutputFormat'
LOCATION 's3://s3-bucket/prefix'

为Hudi分区表添加分区,请使用 ALTER TABLE ADD PARTITION 命令,其中 LOCATION 参数指向属于分区的Amazon S3子文件夹。

使用如下命令添加分区

ALTER TABLE tbl_name
ADD IF NOT EXISTS PARTITION(pcolumn1=pvalue1[,...])
LOCATION 's3://s3-bucket/prefix/partition-path'

Apache Hudi最早被AWS EMR官方集成,然后原生集成到AWS上不同云产品,如Athena、Redshift,可以看到Hudi作为数据湖格式层衔接了云原生数据湖与数据仓库,可用于打造湖仓一体底层通用格式,Hudi生态也越来越完善,也欢迎广大开发者参与Apache Hudi社区,一起建设更好的数据湖,Github传送门:https://github.com/apache/hudi

阅读原文查看Amazon Redshift官宣链接。

推荐阅读

Apache Hudi和Presto的前世今生

恭喜!Apache Hudi社区新晋多位Committer

Apache Hudi 异步Compaction部署方式汇总

Apache Hudi丨数据服务实时化利器

太忙没空去看湖景?来看阿里云DLA如何快速构建数据湖

eiuIjey.png!mobile

6BjyAnN.jpg!mobile


Recommend

  • 26

    目前市面上流行的三大开源数据湖方案分别为:Delta、Apache Iceberg 和 Apache Hudi。其中,由于 Apache Spark 在商业化上取得巨大成功,所以由其背后商业公司 Databricks 推出的 Delta 也显得格外亮眼。Apache Hudi 是由 Uber 的工程师为...

  • 35
    • 微信 mp.weixin.qq.com 3 years ago
    • Cache

    网易:Flink + Iceberg 数据湖探索与实践

    导读: 今天主要和大家交流的是网易在数据湖 Iceberg 的一些思考与实践。从网易在数据仓库建设中遇到的痛点出发,介绍对数据湖 Iceberg 的探索以及实践之路。 主要内容包括: ...

  • 25

    背景 大数据发展至今,按照 Google 2003年发布的《The Google File System》第一篇论文算起,已走过17个年头。可惜的是 Google 当时并没有开源其技术,“仅仅”是发表了三篇技术论文。所以回头看,只能算是揭开了大数据时代的帷...

  • 5

    本文介绍了 Adobe 公司在使用 Iceberg 时遇到的小文件问题以及高并发写入的一致性问题。针对这两个问题,Adobe 给出了有指导意义的解决方案。 本文最初发表于 Adobe 技术博客(

  • 10

    摘要: 本文由李劲松、胡争分享,社区志愿 者杨伟海、李培殿整理。主要介绍 在数据湖的架构中,CDC 数据实时读写的方案和原理。 文章主要分为 4 个部分内容: ...

  • 2

    本文整理自 Dell 科技集团高级软件研发经理孙伟在 4 月 17 日 上海站 Flink Meetup 分享的《Iceberg 和对象存储构建数据湖方案》,文章内容为:数据湖和 Iceberg 简介对象存储支撑 Iceberg 数据湖...

  • 7

    使用 Debezium 和 Apache Iceberg 创建数据湖今天为数据分析、数据报告或机器学习构建数据湖已经是一种常见的做法。在这篇博文中,我们将描述一种构建数据湖的简单方法。该解决方案使用基于 Debezium 的实时数据管道,支持 ACID 事务、SQL 更新并且具有...

  • 3

    数据湖表格式比较(Iceberg、Hudi 和 Delta Lake) 表...

  • 3

    数据湖(八):Iceberg数据存储格式 原创 Lansonli 2022-07-06 07:24:15

  • 1

    Iceberg特点详述和数据类型一、Iceberg特点详述1、Iceberg分区与隐藏分区(Hidden Partition)Iceberg支持分区来加快数据查询。在Iceberg中设置分区后,可以在写入数据时将相似的行分组,在查询时加快查询速度。...

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK