溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

AWS的湖倉一體使用數(shù)據(jù)湖格式進(jìn)行銜接實(shí)例分析

發(fā)布時(shí)間:2022-01-05 17:49:50 來源:億速云 閱讀:189 作者:柒染 欄目:大數(shù)據(jù)

AWS的湖倉一體使用數(shù)據(jù)湖格式進(jìn)行銜接實(shí)例分析,很多新手對此不是很清楚,為了幫助大家解決這個(gè)難題,下面小編將為大家詳細(xì)講解,有這方面需求的人可以來學(xué)習(xí)下,希望你能有所收獲。

一直有小伙伴詢問能否使用Amazon Redshift(數(shù)倉)查詢Hudi表,現(xiàn)在它終于來了。

現(xiàn)在您可以使用Amazon Redshift查詢Amazon S3 數(shù)據(jù)湖中Apache Hudi/Delta Lake表數(shù)據(jù)。Amazon Redshift Spectrum作為Amazon Redshift的特性可以允許您直接從Redshift集群中查詢S3數(shù)據(jù)湖,而無需先將數(shù)據(jù)加載到其中,從而最大限度地縮短了洞察數(shù)據(jù)價(jià)值時(shí)間。

Redshift Spectrum支持Lake house架構(gòu),可以跨Redshift、Lake house和操作數(shù)據(jù)庫查詢數(shù)據(jù),而無需進(jìn)行ETL或加載數(shù)據(jù)。Redshift Spectrum支持開放數(shù)據(jù)格式,如Parquet、ORC、JSON和CSV。Redshift Spectrum還支持查詢具有復(fù)雜嵌套數(shù)據(jù)類型(如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)格式的數(shù)據(jù),可以使用Amazon Redshift-Spectrum外表。Hudi Copy On Write表是存儲在Amazon S3中的Apache Parquet文件的集合。有關(guān)更多信息,請參閱開源Apache Hudi文檔中的Copy-On-Write表。

當(dāng)創(chuàng)建引用Hudi CoW格式數(shù)據(jù)的外表后,將外表中的每一列映射到Hudi數(shù)據(jù)中的列。映射是按列完成的。

Hudi分區(qū)和未分區(qū)表的數(shù)據(jù)定義語言(DDL)語句與其他Apache Parquet文件格式的語句類似。對于Hudi表,可以將INPUTFORMAT定義為org.apache.hudi.hadoop.HoodieParquetInputFormat. LOCATION參數(shù)必須指向包含.hoodie文件夾的Hudi表基礎(chǔ)文件夾,該文件夾是建立Hudi提交時(shí)間線所必需的。在某些情況下,對Hudi表的SELECT操作可能會失敗,并顯示消息**No valid Hudi commit timeline found**。如果是,請檢查.hoodie文件夾是否在正確的位置,并且包含有效的Hudi提交時(shí)間線。

注意,Apache Hudi格式只有在使用AWS Glue Data時(shí)支持,不支持使用Apache Hive metastore作為外部catalog。

使用如下命令定義非分區(qū)表

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'
 

使用如下命令定義分區(qū)表

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分區(qū)表添加分區(qū),請使用ALTER TABLE ADD PARTITION命令,其中LOCATION參數(shù)指向?qū)儆诜謪^(qū)的Amazon S3子文件夾。

使用如下命令添加分區(qū)

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

看完上述內(nèi)容是否對您有幫助呢?如果還想對相關(guān)知識有進(jìn)一步的了解或閱讀更多相關(guān)文章,請關(guān)注億速云行業(yè)資訊頻道,感謝您對億速云的支持。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

aws
AI