划重点!AWS的湖仓一体使用哪种数据湖格式进行衔接?

本文涉及的产品
云原生数据仓库AnalyticDB MySQL版,基础版 8ACU 100GB 1个月
简介: 此前Apache Hudi社区一直有小伙伴询问能否使用Amazon Redshift查询Hudi表,现在它终于来了。

此前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)。

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.hadop.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作为数据湖框架在云上发挥的作用越来越大,生态也越来越完善,也欢迎广大开发者参与Apache Hudi社区,一起建设更好的数据湖,Github传送

相关实践学习
AnalyticDB MySQL海量数据秒级分析体验
快速上手AnalyticDB MySQL,玩转SQL开发等功能!本教程介绍如何在AnalyticDB MySQL中,一键加载内置数据集,并基于自动生成的查询脚本,运行复杂查询语句,秒级生成查询结果。
阿里云云原生数据仓库AnalyticDB MySQL版 使用教程
云原生数据仓库AnalyticDB MySQL版是一种支持高并发低延时查询的新一代云原生数据仓库,高度兼容MySQL协议以及SQL:92、SQL:99、SQL:2003标准,可以对海量数据进行即时的多维分析透视和业务探索,快速构建企业云上数据仓库。 了解产品 https://www.aliyun.com/product/ApsaraDB/ads
目录
相关文章
|
存储 SQL 分布式计算
数据湖 VS 数据仓库之争?阿里提出大数据架构新概念:湖仓一体
随着近几年数据湖概念的兴起,业界对于数据仓库和数据湖的对比甚至争论就一直不断。有人说数据湖是下一代大数据平台,各大云厂商也在纷纷的提出自己的数据湖解决方案,一些云数仓产品也增加了和数据湖联动的特性。但是数据仓库和数据湖的区别到底是什么,是技术路线之争?是数据管理方式之争?二者是水火不容还是其实可以和谐共存,甚至互为补充?本文作者来自阿里巴巴计算平台部门,深度参与阿里巴巴大数据/数据中台领域建设,将从历史的角度对数据湖和数据仓库的来龙去脉进行深入剖析,来阐述两者融合演进的新方向——湖仓一体,并就基于阿里云MaxCompute/EMR DataLake的湖仓一体方案做一介绍。
28049 2
数据湖 VS 数据仓库之争?阿里提出大数据架构新概念:湖仓一体
|
7月前
|
存储 大数据 BI
数据仓库、数据湖、湖仓一体,究竟有什么区别?
近几年大数据概念太多了,数据库和数据仓库还没搞清楚,就又出了数据湖,现在又说什么“湖仓一体”。乙方公司拼命造概念,甲方公司不管三七二十一,吭哧吭哧花钱搞数据建设。到头来发现,钱也花了,人力也投入了,但最基本的业务需求都解决不了。
|
SQL 消息中间件 分布式计算
基于数据湖格式构建流式增量数仓—CDC
该文章内容源于 Apache Con ASIA 2022上的分享,整理归纳成文章。
15156 5
基于数据湖格式构建流式增量数仓—CDC
|
存储 SQL 消息中间件
|
分布式计算 MaxCompute
《如何基于MaxCompute快速打通数仓和数据湖的湖仓一体实践-亦朵-529北京峰会-v1.3》电子版地址
【5】如何基于MaxCompute快速打通数仓和数据湖的湖仓一体实践-亦朵-529北京峰会-v1.3-to赵慧(格确定稿)
152 0
《如何基于MaxCompute快速打通数仓和数据湖的湖仓一体实践-亦朵-529北京峰会-v1.3》电子版地址
|
存储 机器学习/深度学习 数据采集
万字详解数据仓库、数据湖、数据中台和湖仓一体 ​(二)
详解数据仓库、数据湖、数据中台和湖仓一体
1060 0
万字详解数据仓库、数据湖、数据中台和湖仓一体  ​(二)
|
存储 SQL 分布式计算
湖仓一体,Hologres加速云数据湖DLF技术原理解析
本期我们将带来Hologres高性能分析引擎加速查询云数据湖DLF的技术原理解析。
2020 1
湖仓一体,Hologres加速云数据湖DLF技术原理解析
|
存储 数据采集 分布式计算
万字详解数据仓库、数据湖、数据中台和湖仓一体 ​(一)
详解数据仓库、数据湖、数据中台和湖仓一体
1442 0
万字详解数据仓库、数据湖、数据中台和湖仓一体  ​(一)
|
存储 SQL 机器学习/深度学习
快速打通数仓和数据湖的湖仓一体最佳实践 | 学习笔记
快速学习快速打通数仓和数据湖的湖仓一体最佳实践
594 0
快速打通数仓和数据湖的湖仓一体最佳实践 | 学习笔记
|
存储 JSON 分布式计算
OSS数据湖实践——parquet格式
通过对parquet格式及json格式的对比,了解两种常用格式之间存在的异同,了解parquet 能够提高作业性能的内在机制,并且阐述其能够带来的优势。
4248 0
OSS数据湖实践——parquet格式