AWS的湖仓一体使用数据湖格式进行衔接实例分析

AWS的湖仓一体使用数据湖格式进行衔接实例分析,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。

成都创新互联主要业务有网站营销策划、网站建设、网站制作、微信公众号开发、小程序设计H5开发、程序开发等业务。一次合作终身朋友,是我们奉行的宗旨;我们不仅仅把客户当客户,还把客户视为我们的合作伙伴,在开展业务的过程中,公司还积累了丰富的行业经验、全网营销推广资源和合作伙伴关系资源,并逐渐建立起规范的客户服务和保障体系。 

一直有小伙伴询问能否使用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.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'

看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注创新互联行业资讯频道,感谢您对创新互联的支持。


网页名称:AWS的湖仓一体使用数据湖格式进行衔接实例分析
文章位置:http://azwzsj.com/article/gdeisg.html