sell儲存與資料庫
linear_scale

Pipelines

事件像消防水柱一樣灌進來,整齊的檔案落到 R2——不用顧任何伺服器。

R2資料落地到 R2
HTTPHTTP 收資料端點
Once恰好一次的交付
Beta公開測試中
lightbulb

Pipelines 是什麼?

Pipelines 負責接收「串流資料(streaming data,指源源不絕、一筆筆小事件不停湧入的資料,例如點擊或感測器讀數)」,可選擇做轉換,再把它整整齊齊地寫進 R2 物件儲存。

一條 pipeline 有三個部分:stream(事件進來的地方,透過 HTTP 端點或 Worker)、可選的 SQL 轉換(用來過濾或重塑事件),以及 sink(資料落地的 R2 目的地,可存成 Iceberg 表、Parquet 或 JSON 檔)。

water_drop

把它想成…

一座淨水廠。雜亂的原始事件流進來(stream),經過過濾與清洗(SQL 轉換),最後裝瓶成架上一罐罐整齊的檔案(R2 sink),等之後要用時隨時取用。

help

為什麼要用 Pipelines?

可靠地收下源源不絕的大量事件其實很難:你得緩衝突發尖峰、把它們批次寫成檔案,還不能掉資料或重複資料。Pipelines 把這些全包辦成一個受管服務,最後在 R2 給你乾淨的檔案。

shield

可靠的接收

事件會被安全緩衝,流量暴衝時也不會掉資料。

done_all

恰好一次交付

每筆事件恰好落地 R2 一次——不漏、不重複。

filter_alt

傳輸中即轉換

用 SQL 在資料存下前先過濾、重塑或加料。

savings

存起來便宜

輸出落在 R2,之後讀回來還是零流出費。

target

什麼時候該用 Pipelines?

ads_click

點擊流分析

蒐集每一次瀏覽和點擊,之後分析使用者行為。

receipt_long

日誌與事件

把伺服器日誌或應用事件串流進 R2,做封存與查詢。

sensors

物聯網遙測

把眾多裝置的讀數蒐集進同一個井然有序的資料湖。

insights

灌入資料湖

把結構化檔案落到 R2,供大數據工具直接查詢。

rocket_launch

怎麼開始用?

引導式的設定指令會一次幫你建好 stream、SQL 轉換和 R2 sink。接著你把事件送到 HTTP 端點,再查詢存下來的資料。

  1. 安裝 Wrangler 並登入

    Pipelines 在公開測試期間,於 Workers 付費方案下提供。

    bash
    npm install -g wrangler
    wrangler login
  2. 執行引導式設定

    它會帶你一步步命名 pipeline、開啟 HTTP 端點、選一個 R2 儲存桶當 sink,並挑選一個轉換方式。

    bash
    npx wrangler pipelines setup --name ecommerce
  3. 把事件送到端點

    用 POST 把一個 JSON 事件陣列送到你 stream 的接收 URL。把 {stream-id} 換成設定時拿到的 id。

    bash
    curl -X POST https://{stream-id}.ingest.cloudflare.com \
      -H "Content-Type: application/json" \
      -d '[{"user_id":"u_123","event":"purchase","amount":29.99}]'
  4. 從 Worker 送出事件

    你也可以在 Worker 程式碼裡用 POST 打同一個接收 URL 來推送事件。

    js
    export default {
      async fetch(request, env) {
        const event = { user_id: "u_123", event: "page_view", path: "/home" };
        await fetch("https://{stream-id}.ingest.cloudflare.com", {
          method: "POST",
          headers: { "Content-Type": "application/json" },
          body: JSON.stringify([event]),
        });
        return new Response("event sent");
      },
    };
  5. 查詢存下來的資料

    事件落地 R2 後,用你的 warehouse 名稱搭配 R2 SQL 來查詢它們。

    bash
    export WRANGLER_R2_SQL_AUTH_TOKEN=your_api_token
    
    npx wrangler r2 sql query "YOUR_WAREHOUSE_NAME" \
      "SELECT user_id, event, amount FROM default.ecommerce LIMIT 10"
school

重點概念

input

Stream(串流入口)

事件進來的入口——透過 HTTP 端點或 Worker 綁定。

transform

SQL 轉換

一個可選的 SQL 步驟,在事件經過時做過濾、重塑或加料。

output

Sink(落地目的地)

資料寫入的 R2 目的地,存成 Iceberg、Parquet 或 JSON 檔案。

inventory

批次寫入

把許多小事件聚成較大的檔案,讓儲存與查詢都更有效率。

tips_and_updates

小提示與目前狀態

science

公開測試中

Pipelines 目前在 Workers 付費方案下處於公開測試。測試期間 Pipelines 本身不收費——你只需支付它寫入資料時標準的 R2 儲存費用。

  • 把事件包成 JSON 陣列,就能在一個請求裡批次送出多筆紀錄。
  • 若打算用大數據工具查詢,輸出格式選 Parquet 或 Iceberg。
  • 因為輸出存在 R2,把資料讀回來是零流出費。
  • 只是想在 Workers 之間放個簡單訊息佇列?可以看看 Queues。