Links

S3に溜まっているデータをBigQueryへの書き込みを月次で行った場合

S3に保存されているCSVファイルをBigQueryにデータ転送します。CSVファイルはShift JIS形式かつ日本語フィールドを想定し、データ変換のパイプラインを作成してBigQueryにImport可能な形で格納します。またスケジュール設定をして月次で自動更新ができるようにします。

全体図

ワークフロー概要

  1. 1.
    S3のSourceを追加
  2. 2.
    Transformのフィールド変換を使用してフィールド名を変換
  3. 3.
    転送先にBigQueryを指定して、データを転送
  4. 4.
    スケジュールを設定

事前準備

BigQueryテーブルの作成と使用などを参考にBIgQueryで空テーブルを作成します。 Cloud Storage ストレージ バケットの作成 などを参考にCloud Storage バケットを作成します。
転送先のBigQueryのテーブル、S3からのデータを一時保存するためのCloud Storageのバケットがすでに存在する場合は不要です。

Source詳細

AWS S3

次のように設定します。
設定完了後、「プレビュー」をクリックして実行後のプレビューが確認できます。設定に不備がない場合Completedと表示されます。
プレビューで実行結果を確認後、問題なければ「設定」を選択して完了します。
Source「AWS S3」の詳しい説明は以下ドキュメントをご確認ください。

Transform詳細

フィールド変換

BigQueryではフィールド名に日本語が使えないため、フィールド変換という機能を使って日本語フィールドを英語フィールドに変換する処理を行います。
Source詳細で作成したAWS S3とフィールド変換をデータパイプラインで連携します
AWS S3で作成した情報が引き継がれるので次のように設定します。
  • From : ["日付", "店名", "売上"]
  • To : ["date", "store_name", "sales"]
  • 型 : ["no_convert", "no_convert", "no_convert"]
フィールド名の変換のみ実行し、型変換やフィールド追加は行いません。
設定完了後、「プレビュー」をクリックして実行後のプレビューが確認できます。設定に不備がない場合Completedと表示されます。
プレビューで実行結果を確認後、問題なければ「設定」を選択して完了します。
Transform「フィールド変換」の詳しい説明は以下ドキュメントをご確認ください。

Sink詳細

Google BigQuery

Transform詳細で作成したフィールド変換とGoogle BigQueryをデータパイプラインで連携します。
フィールド変換で作成した情報が引き継がれるので次のように設定します。
プロジェクトID、テーブル、バケットに事前準備で作成したプロジェクトID、テーブル名、バケット名を入力します。
設定完了後、「プレビュー」をクリックして実行後のプレビューが確認できます。設定に不備がない場合Completedと表示されます。
プレビューで実行結果を確認後、問題なければ「設定」を選択して完了します。
Sink「Google BigQuery」の詳しい説明は以下ドキュメントをご確認ください。

ワークフローの実行

「名前」と「説明」を入力して「保存」を選択。
「実行」を選択します。
ジョブが問題なく完了すると「成功」となります。

BigQuery上で確認

下記のようにBigQuery上のtableにCSVファイルのデータが登録されていることが確認できれば完了です。

スケジュールの設定

ワークフローを手動で実行することなく、スケジュールを設定することで定期実行することができます。
時計のアイコンをクリックします。
月次で実行したいスケジュールを選択、入力して設定をクリックします。
  • スケジュール : ON
  • ベーシック/カスタム : ベーシック
  • タイムゾーン : Asia/Tokyo
  • 実行単位 : カスタム
  • 実行単位 : 月
  • 日 : 17
  • 開始時間 : 22:00
東京時間で毎月17日の22:00にワークフローを実行します。
ワークフローを定期的に実行させる詳しい説明は以下ドキュメントをご確認ください。