BigQuery Transferが正式リリースされてからBigQueryへのインポートがめちゃくちゃ楽ちんになりました。
それまではCloud Functionsを使ってバッチを組んだり、更に昔に遡るとSDKを使って独自にバッチプログラムを組んだりとひと手間かかったんですが、BiqQuery TransferはすべてUIのみでできてしまうので、例えば営業や経理などのノンプログラマーの方が何らかのログを自動収集したい場合などにも活用できます。
日本語で解説しているページがほとんどないので使い方の流れを解説してみます。
#BigQuery Transferとは#
公式ページによると、
BigQuery Data Transfer Service は、あらかじめ設定されたスケジュールに基づき、SaaS アプリケーションから Google BigQuery へのデータの移動を自動化するマネージド サービスです。そのため、1 行もコードを書くことなく分析用のデータ ウェアハウス基盤を構築できます。
とのこと。
https://cloud.google.com/bigquery/transfer/?hl=ja
対応しているデータソースは、Google広告、キャンペーンマネージャー、Googleアドマネージャー、YouTube、Amazon S3、Cloud Storageなど様々です。
#BigQuery Transferを設定してみる#
ここではCloud Storageのある特定のフォルダにあるCSVを定期的にインポートする処理を例に取ります。
##準備##
「APIサービス」にてBig Query APIを有効にしてください。
更にBigQueryでインポート先のデータセット、テーブルを作成しておきます。
今回のケースでは大変シンプルに↓こんな感じでデータセットbqt、テーブルbqtを作成しスキーマを定義しておいてください。
またインポート元としてCloud Storageにバケットとフォルダを作成しておいてください。
この例では「bqt-test」というバケット、更にその中に「import」というフォルダを作成し、「yyyymmdd.csv」というファイルが毎日決まった時間にフォルダ内に保存されるケースを想定します。
##転送の基本設定##
そもそもどこからアクセスするのかと言うと、
https://console.cloud.google.com/bigquery
プロジェクトが適切に選択されている状態で上記の管理画面にアクセスすると、ここに「転送」と日本語でメニューが登場しますのでクリック。
次のページではデータソースを選択します。
(今回はGoogle Cloud Storage)
##転送の詳細設定##
次のページで転送の詳細設定を行います。
必須のもの、使いそうなパラメータのみ以下説明します。
設定値 | 説明 |
---|---|
表示名 | わかりやすい名前を適当に |
繰り返しの頻度 | 毎日、毎週、毎月、カスタム、オンデマンドの中からお好みのものを |
開始日と実行時間 | 一番最初に実行したい日時を設定してください。ここを起点にして↑の頻度で処理されます。BigQuery TransferはCloud Storageに保存してから60分以上経過しているファイルしか処理してくれないのでこの点だけご注意を。 |
データセットID | インポート先のBigQueryのデータセットIDを入力してください。 |
Destination Table | インポート先のBigQueryのテーブル名を入力してください。 |
Delete source files after transfer | インポートが終わったらファイルを削除するかどうかです。バッチ処理の場合は毎回消してしまってよいかと思います。 |
File Format | CSV, JSON, AVRO, PARQUET, ORCからファイル形式が選択できます。 |
Header rows to skip | CSVなどでは1行目にヘッダー行がある場合がほとんどだと思います。ここで先頭から何行スキップするかが設定できます。 |
これで「保存」をクリックして完了。
めっちゃ簡単\(^o^)/
#おまけ - 定期実行以外のタイミングで実行したい場合#
transferのトップページ右上の「さらに表示」から「今すぐ転送を実行」でいつでも実行ができます。