Skip to content

非公式本サイトは非公式の日本語ドキュメントであり、Cloudflare 公式サイトではありません。最新情報はdevelopers.cloudflare.comをご確認ください。

サーバーレス ETL パイプライン

最終更新 Markdown で表示Agent セットアップ

はじめに

Extract, Transform, Load(ETL)パイプラインは、データエンジニアリングの中核です。生データから、構造化され使える形式への流れを支えます。データを収集し、クレンジングし、変換してから、目的の宛先へロードする場面で特に重要です。

処理は抽出(extract)から始まります。データベース、ファイル、ストリームなど、さまざまなソースからデータを集めます。この生データはばらばらで構造化されていないことが多く、次の段階である変換(transform)が必要です。変換では、形式の標準化、不整合の修正、追加の文脈や計算によるエンリッチメントなど、一連の処理を行います。この段階は、データ品質と一貫性を確保し、下流のアプリケーションや分析の要件に合わせるために重要です。

最後に、変換済みデータを宛先へロード(load)します。宛先はデータウェアハウス、データベース、その他のストレージです。ロードでは、処理済みデータを目的の場所へ効率よく移します。そこからレポート、分析、機械学習モデルへの入力などに使えます。

ETL パイプラインは、業界を問わずデータに基づく意思決定を支えます。組織はデータ資産から洞察と価値を引き出せます。生データから実用的な洞察までの流れを自動化し整えることで、情報に基づく判断、プロセスの最適化、競争優位の獲得が可能になります。

ETL パイプラインの例としては、複数の小売店舗から売上データを抽出し、標準形式へ変換し、分析とレポートのために中央のデータウェアハウスへロードする、といった使い方があります。レガシーデータを現行システムへ移行するプロジェクトでも使われ、その過程でデータの整合性と一貫性を保ちます。

Cloudflare を使うと、完全にサーバーレスな ETL パイプラインを導入できます。複雑さ、本番投入までの時間、全体コストを抑えられます。次の図は、一般的な ETL パイプライン導入で Cloudflare を使う方法を示します。

HTTP ベースの取り込みを使う ETL パイプライン

図 1: サーバーレス: HTTP ベースの取り込み
図 1: HTTP ベースの取り込みを使う ETL パイプライン

このアーキテクチャは、取り込みに API エンドポイントを使う、完全にサーバーレスな ETL パイプラインです。クライアントは HTTP リクエストでデータを送ります。よくある例はクリックストリームデータや分析です。

  1. クライアントリクエスト: 取り込むデータを POST リクエストで送ります。クリックストリームデータや分析エンドポイントなどが該当します。
  2. 入力処理: Workers で受信リクエストを処理し、処理待ちに追加するため Queues へメッセージを送ります。
  3. データ処理: Queuesコンシューマー を起動し、入力データをバッチ処理します。下流の過負荷を防ぎ、効率を上げます。コンシューマーがデータのクレンジング、変換、標準化をすべて行います。
  4. オブジェクトストレージ: 処理済みデータを R2 へアップロードし、永続保存します。
  5. Ack / Retry の仕組み: コンシューマー内で Queues Runtime API を使い、各ドキュメントの成功 / エラーを通知します。必要に応じて Queues が再試行をスケジュールします。
  6. データ照会: 外部サービスから処理済みデータへアクセスし、さらに利用します。

オブジェクトストレージ取り込みを使う ETL パイプライン

図 2: サーバーレス: オブジェクトストレージ取り込み
図 2: オブジェクトストレージ取り込みを使う ETL パイプライン

このアーキテクチャは、取り込みにオブジェクトストレージを使う、完全にサーバーレスな ETL パイプラインです。よくある例はログや非構造化ドキュメントの処理です。

  1. クライアントリクエスト: S3 互換 API で生データを R2 へアップロードします。よくある例はログや分析データです。
  2. 入力処理: オブジェクトのアップロード時に R2 イベント通知 を使い、Queues へメッセージを送ります。
  3. データ処理: Queuesコンシューマー を起動し、入力データをバッチ処理します。下流の過負荷を防ぎ、効率を上げます。コンシューマーがデータのクレンジング、変換、標準化をすべて行います。
  4. オブジェクトストレージ: 処理済みデータを R2 へアップロードし、永続保存します。
  5. Ack / Retry の仕組み: コンシューマー内で Queues Runtime API を使い、各ドキュメントの成功 / エラーを通知します。必要に応じて Queues が再試行をスケジュールします。
  6. データ照会: 外部サービスから処理済みデータへアクセスし、さらに利用します。

関連リソース

役に立ちましたか?