04/19 2021

【AWS 數據戰情室】Day 12 Glue Partition 教學 – Part 2

Amazon Web Service Partition

在 S3 上要如何設定 Partition 呢?

在 S3 上 Partition 是透過資料夾階層來規劃,假設我使用年與月當作 Partition 則S3的資料夾規劃可以參考下圖,有2020一月與二月的資料階層

Amazon Web Service Partition

testdata 我是使用 order.csv 平均拆成兩份來模擬兩個月的訂單資料,order.csv 下載點

S3 上的資料匯入完成後,再透過 Glue data Catalog 創建虛擬 Table,供 Athena 查詢使用,這部分可參考 Day 5 的做法,需要注意的是 S3 路徑要如下,選擇年再上一層的資料夾

執行 Run crawler 之後可以看到虛擬 Table 中有多了兩個 Partition 的欄位,這些欄位中的值會與 S3 中的資料夾名稱相同,如下圖所示

Amazon Web Service Table Partition

再來我們可以使用 Athena 查詢看看
假設今天我要找出二月的所有訂單,如下圖,可以看到我的查詢量是 52.84MB,而全部訂單的資料大小為 109MB

所以透過 Partition 可以很方便的限制 Athena 所要查詢的範圍,讓 Athena 可以不需要去過濾其他 Partition 的資料,藉此提高效率並降低查詢成本。

請持續鎖定 Nextlink 架構師專欄,以獲得最新專業資訊喔!

若您有任何 AWS 需求,歡迎與我們聯繫!