劃重點!AWS的湖倉一體使用哪一種數據湖格式進行銜接?

此前Apache Hudi社區一直有小夥伴詢問可否使用Amazon Redshift查詢Hudi表,如今它終於來了。html

如今您可使用Amazon Redshift查詢Amazon S3 數據湖中Apache Hudi/Delta Lake表數據。Amazon Redshift Spectrum做爲Amazon Redshift的特性能夠容許您直接從Redshift集羣中查詢S3數據湖,而無需先將數據加載到其中,從而最大限度地縮短了洞察數據價值時間。git

Redshift Spectrum支持Lake house架構,能夠跨Redshift、Lake house和操做數據庫查詢數據,而無需進行ETL或加載數據。Redshift Spectrum支持開放數據格式,如Parquet、ORC、JSON和CSV。Redshift Spectrum還支持查詢具備複雜嵌套數據類型(如struct、array或map)。github

Redshift Spectrum容許您讀取Apache Hudi 0.5.2版本的Copy-on-Write(CoW)表的最新快照,而且能夠經過manifest文件讀取最新的Delta Lake 0.5.0版本表。sql

要查詢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數據中的列。映射是按列完成的。apache

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。框架

使用以下命令定義非分區表oop

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'

使用以下命令定義分區表code

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傳送門https://github.com/apache/hudi

相關文章
相關標籤/搜索