iT邦幫忙

2021 iThome 鐵人賽

DAY 6
0
AI & Data

Data on Air - 以AWS服務實作雲端數據分析系列 第 6

DAY 6 Big Data 5Vs – Volume(容量) – Redshift Spectrum

大量的資料勢必可能來自不同資料源,在結構化資料庫的世界常用的就是聯合查詢。那如果我的資料不全都在結構化資料庫呢?介紹到現在許多人一定會想到強大的儲存系統S3,如果原本有許多資料都先存到了S3,現在想要將目前提到的Redshift與S3這兩個厲害的儲存系統結合,不就能集成他們的優點產生更大的綜效嗎?
沒錯,AWS也顧慮到這個需求,所以在Redshift服務中內建了Redshift Spectrum。

聯合查詢是擷取不同的「結構化」資料來源;Redshift Spectrum讓使用者直接擷取和查詢外部資料源的結構與半結構化資料。在不用移動資料進資料倉儲的情況下,可以直接在 Redshift Spectrum 中使用與Redshift一樣的查詢語法和存取表格的查詢功能,概念上大概像是建立一個外部資料表。但也有一些使用上需要特別注意的地方*,例如需使用Athena或Glue做為中繼資料存放區的資料目錄、Amazon Redshift cluster和 Amazon S3 bucket必須在相同的AWS區域等。

使用時Redshift Spectrum第一要確認當前登入帳號擁有對應IAM權限;
且外部資料表EXTERNAL TABLE必須建立在使用 CREATE EXTERNAL SCHEMA statement所建立的外部資料庫中。可以在編輯器或用戶端下指令建立。
https://ithelp.ithome.com.tw/upload/images/20210918/20140161HnYWLwC5lA.jpg

建立外部資料庫SQL語法:

create external schema 外部資料庫名稱  from data catalog 
database '現在要建立的資料庫名稱' 
iam_role '對應IAM role 的 arn number'
create external database if not exists;

建立外部資料表SQL語法:

create external table 資料庫DB.現在要建立的資料表(
欄位名稱 資料結構[,欄位名稱 資料結構,,])
row format delimited
fields terminated by '\t'
stored as textfile
location 's3://對應位址 /'
table properties (預設定的資料表屬性);

建立完成之後就可以下select語法查詢。

*Redshift Spectrum使用考量( https://docs.aws.amazon.com/zh_tw/redshift/latest/dg/c-using-spectrum.html )


上一篇
DAY 5 Big Data 5Vs – Volume(容量) - RedShift
下一篇
DAY 7 Big Data 5Vs – Volume(容量) — Lake House & Database
系列文
Data on Air - 以AWS服務實作雲端數據分析30

尚未有邦友留言

立即登入留言