S3からBigLakeまで — 取り込み層を一本の流れでつかむ
AWS上のデータを Google Cloud に運び、分析できる Bronze 層に変えるまでを、保存形式・イベント・クエリの責務に分けて追います。
TL;DR
- Storage Transfer Service は S3→GCS の転送担当。後段の整形はしない。
- Cloud Run functions は到着イベントを受け、Hive パーティションへ配置を変える。
- BigLake 外部テーブルは、GCSのParquetを複製せずBigQueryの入口として扱う。
01取り込みの境界
S3・転送・GCSは「運ぶ」責務。分析用の意味付けはまだしない。

S3のParquet → Storage Transfer Service → GCS raw バケット。オンデマンドで全量確認し、定期ジョブで差分を転送する。
02Hiveパーティションへの変換
到着したファイルを、分析エンジンが絞り込める配置にする。

Eventarc が GCS の到着を検知し、Cloud Run functions が orders/2025/12/31 を orders/dt=2025-12-31 に変換する。
要点:到着したファイルを、分析エンジンが絞り込める配置にする。
03Bronzeで読む
GCSのファイルを保管したまま、BigQuery側で入口を作る。

Parquet はファイルの中身、Hive パーティションは置き方。BigLake 外部テーブルはこの二つを前提に、後段dbtが読む Bronze 層を提供する。
結論
- 転送、変換、分析入口を一つの処理に混ぜない。
- Hive形式はクエリ対象のフォルダだけを読むための契約。
- BigLakeはデータを移す機能ではなく、GCS上のデータをガバナンス付きで読む入口。