iT邦幫忙

2026 iThome 鐵人賽

DAY 13
0
Software Development

使用 Serverless 架構設計廣告點擊系統 系列 第 13 篇

Day 13: 用 AWS Glue Python Shell Job 把 S3 上的 JSON 檔轉成 Parquet 檔(中)

  • 分享至 

  • xImage
  •  

AWS Glue Python Shell Job

Python Shell Job 本質上就是一個託管的 Python 執行環境,你可以用它來做:

  • 讀寫 S3、RDS、DynamoDB 等 AWS 服務
  • 呼叫 API
  • 資料轉換與清洗
  • 執行排程任務

AWS 幫你管理好執行環境,工程師只需要專注在寫程式碼做資料的處理和轉換。

費用

Python Shell Job 以 DPU(Data Processing Unit) 計費:

以最小規格跑 10 分鐘為例:

0.0625 DPU × (10/60) hour × $0.44 = $0.00046

幾乎可以忽略不計。

資料轉換流程

共有 331985 檔案,因為有太多的小檔案,在轉換的過程中,需要頻繁地去跟 S3 拉資料,所以明明資料量不大,等待時間卻很長,1XX M的資料超過 40 分鐘都還有轉完。

最後經過幾次嘗試,把同一個 ad_id 的所有 JSON 檔整合成一個 Parquet 檔,並且使用平行處理,加快處理速度,在 30 分鐘左右完成轉換。一開始有嘗試過一天一個 Parquet ,但一天檔案有 40282 個,轉換時間過久,且中途失敗的話,要重新開始,所以選擇以 ad_id 為分割的單位。大家可以視情況決定要以哪個 key 當作分割的單位。


上一篇
Day 12: 用 AWS Glue Python Shell Job 把 S3 上的 JSON 檔轉成 Parquet 檔(上)
下一篇
Day 14: 用 AWS Glue Python Shell Job 把 S3 上的 JSON 檔轉成 Parquet 檔(下)
系列文
使用 Serverless 架構設計廣告點擊系統 共 16 篇
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言