--- lang: ja-jp tags: Data Engineering, GCP, AWS --- # S3 to BigQuery ## Materials - [転送でのランタイムパラメータの使用](https://cloud.google.com/bigquery-transfer/docs/s3-transfer-parameters?hl=ja) - [Amazon S3のURI](https://cloud.google.com/bigquery-transfer/docs/s3-transfer-intro?hl=ja#amazon_s3_uris) - [Amazon S3転送](https://cloud.google.com/bigquery-transfer/docs/s3-transfer?hl=ja) ## S3バケット内のオブジェクト指定のパラメータ化 format: `s3://bucket/folder1/folder2/...` - バケット名をパラメータ化することは**できない** - パス名以降をパラメータ化することは**できる** > ソースデータが、共通のベース名を持つ複数のファイルに分割されている場合は、データを読み込むときにURIでワイルドカードを使用できます - パス名以降でアスタリスクを含めることでパラメータ化を実現できる - 複数のワイルドカードを使用できるが、1つだけ指定するとオブジェクトの探索が最適化される - ワイルドカードは`folder`の境界をまたがって適用される(e.g. `s3://my-bucket/*.csv`は`s3://my-bucket/my-folder/my-subfolder/my-file.csv`と一致する) ``` # ファイルを一つ読み込む s3://my-bucket/my-folder/my-file.csv # 「バケット」から全てのファイルを読み込む s3://my-bucket ## または s3://my-bucket/* # プレフィックスを共有する全てのファイルを読み込む ## ワイルドカードを指定する必要がある s3://my-bucket/my-folder/* # パスが同じのファイルを全て読み込む s3://my-bucket/my-folder/*.csv ``` ## ランタイムパラメータ 1. 18:00におよそ30minかかるdump処理が走る 2. 18:00に60minまで`run_time`を許容するデータ転送処理が走る 3. `run_time`についての`YYYYMMDDHH`サフィックスを持つテーブルが作成される BigQueryの分割テーブルは日付単位でしか対応されていないのか?