はじめに
S3からCloudStorageへのデータのコピーの記事を書きましたが、そもそもS3からBigQueryに直接転送できるようでしたので早速試してみました。
ちなみにS3 → CloudStorageはIAM Roleを使って転送できましたがこちらはアクセスキー・シークレットアクセスキーしか利用できないようです。
S3にアクセスするポリシーの作成とアクセスキーの発行
S3にアクセスできるポリシーを作成します
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"s3:Get*",
"s3:List*",
"s3:Delete*"
],
"Resource": [
"arn:aws:s3:::xxxxxxxxxxxxxxxxx",
"arn:aws:s3:::xxxxxxxxxxxxxxxxx/*"
]
}
]
}
IAMの画面から先ほど発行したポリシーを使ってアクセスキーを発行してメモしておきます。
データ転送の設定
BigQueryの画面を開き、SQLワークスペースでテーブルを作成します。
左メニューから「データ転送」を選択し、以下の情報を登録します
- 転送構成名:適当に入力
- データセット・テーブルに先ほど作ったテーブルを作成
- S3のURLを設定
- 今回は多数のParquetデータだったので/*としています。
保存すると実行され、少し経つと結果がが表示されます。
BigQueryのデータを確認してみるとちゃんと入っていることが確認できました