📩

【AWS】S3のバケットからParquet形式でBigQueryにデータ転送する方法

2024/05/13に公開

まずはじめに

Webエンジニア兼事業開発者のTeruie Obataです。
今回はRDSのスナップショットをBigQueryにインポートし、Looker Studioで視覚化したい!
の第2章としてS3のバケットからParquet形式でBigQueryにデータ転送する方法について解説したいと思います。
第1章を見てない方は関連記事一覧から参照ください。

関連記事一覧

今回触れないこと

  • GCPの説明
  • プロジェクトの作成
  • AWSとBigQueryの接続
  • BigQueryとLooker Studioの接続

いざ実践

それでは実際にやっていきましょう。

BigQueryで使用するIAMユーザーの作成

まず最初にBigQueryで使用するIAMユーザーの作成を行います。

また作成したIAMユーザーにはAmazonS3ReadOnlyAccessのアクセスポリシーをアタッチしましょう。
作成した際に発行されるシークレットキーとアクセスキーは後ほど使用しますので保管しておきましょう。

ポリシーの作成

先ほど作成したIAMユーザーにアタッチするインラインポリシーを作成します。
JSON形式で設定します。

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "kms:Decrypt",
            "Resource": "[第1章で作成したKMSのARNを定義]"
        }
    ]
}

作成が完了すると許可ポリシーに追加されていることが確認できます。

データセットの作成

続いてはBigQueryデータセットを作成していきます。

プロジェクト名の横にあるケバブメニューをクリックしデータセットを作成をクリックしましょう。

テーブルの作成

次にテーブルの作成を行います。

作成したデータセットのケバブメニューをクリックしテーブルを作成をクリックします。

これで基本となるデータセットとテーブルの作成が完了しました!
ここまで来たら実際にデータを入れていきましょう!

データ転送の作成

BigQueryのメニューからデータ転送をクリックしましょう。
クリックするとページ上部に転送を作成ボタンが表示されるのでクリックします。

ソースタイプと転送構成名の設定

転送先の設定

手動で実際に取り込んでみる

これでS3からBigQueryにデータを取り込み準備が完了しました!
先ほどスケジュールを設定しましたが手動で取り込ませることも可能ですので実際にやってみましょう。

BigQueryのメニューからデータ転送をクリックします。

作成した転送のusersを開く。

ページ上部にあるバックフィルのスケジュール構成をクリックしRun one time transferにチェックをつけOKボタンを押すと....

転送が実行されていることが確認できました!

転送が完了すると以下のような表示に変更されます。

まとめ

お疲れ様でした!
あとは実際にSQLを叩いてみてデータを取得してみましょう!

今回はS3のバケットからParquet形式でBigQueryにデータ転送する方法を説明しました。
正直スキーマの定義が一番めんどくさいかと思いますがそこは気合いで乗り越えましょう!
S3にエクスポートしたファイル名にタイムスタンプを含んでいるので常に最新の状態のスナップショットを取得することが可能ですのでぜひ試してみてください!

次回はBigQueryに取り込んだデータをLooker Studio上で表示してみましょう!

参考記事

Discussion