Links

CSVデータをBigQueryへの書き込みを月次で行った場合

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

全体図

ワークフロー概要

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

事前準備

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

Source詳細

File Upload

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

Transform詳細

投影

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

Sink詳細

Google BigQuery

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

ワークフローの実行

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

BigQuery上で確認

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

スケジュールの設定

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