iT邦幫忙

2026 iThome 鐵人賽

DAY 10
0

原本一筆資料會是一個 S3 Object ,像是下面這樣。

{
  ad_id: "ad_31",
  impression_id: "imp_1",
  user_id: "user_22",
  timestamp: "2026-02-07T19:01:12Z",
  source_url: "https://pryrqder.example.com/"
}

上篇已經可以讓 Lambda 一次處理多個 message ,所以可以調整成多個 record 集結成一個 S3 Object 。

[
  {
    ad_id: "ad_85",
    impression_id: "imp_93",
    user_id: "user_19",
    timestamp: "2026-02-07T19:02:19Z",
    source_url: "https://lfhfelpe.example.com/"
  },
  {
    ad_id: "ad_46",
    impression_id: "imp_49",
    user_id: "user_71",
    timestamp: "2026-02-07T19:02:19Z",
    source_url: "https://pgvfzyxd.example.com/"
  },
.
.
.
]

然後一樣用 put_object 把資料推到 S3 ,差別在於之前是推一個 json object ,現在是把資料收集成一個 json list 。這樣不只可以節省處理的時間,還可以省一點錢。假設有一百萬個 request ,如果 1 個 request 是 1 個 object ,資料寫入總共需花費 0.005 * 1000 = 5 美金,但如果 100 個 request 集結成 1 個 object ,資料寫入總共需花費 0.005 * 10 = 0.05 美金,省得錢不多,但長期下來也是一筆不小的金額。


上一篇
Day 9: 批次寫入資料
下一篇
Day 11: 批次寫入資料 - DynamoDB
系列文
使用 Serverless 架構設計廣告點擊系統 共 16 篇
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言