LoginSignup
1

More than 5 years have passed since last update.

Digdagを使ってBigQueryからテーブルをAvroフォーマットでExportする

Last updated at Posted at 2017-02-23

Digdagのワークフロー定義で直接BigQueryを操作できるようになっていたので試してみた。

実行環境:GCP CloudShell
digdag version: 0.9.5
digdagのインストール手順は省略:

今回試したのはBigQueryのあるテーブルをAvroフォーマットでGCSに格納する例。

BigQueryやGCSにアクセスするためには個人のアカウントやサービスアカウントを利用するが、処理の自動化を行う際はサービスアカウントを作るのが妥当。
サービスアカウントを作成し、鍵をjson形式でファイル出力する。このファイルをjson.keyとしてCloudShell上に配置。

DigdagのワークフローからGCPにアクセスするためには、Secrets情報としてgcp.credentialを設定する必要がある。
Digdagは秘密情報(パスワードや鍵など)をセキュアに管理するための機能を備えている。 Secretsは通常のワークフローパラメータとは別に処理され、暗号化されて保管されている。Local secretsはユーザのホームディレクトリ上に保存される。

以下のコマンドを実行し、ローカル環境にsecretsとしてgcp.credentialを設定する。

$ cat json.key |digdag secrets --local --set gcp.credential=@json.key
2017-02-23 15:54:04 +0900: Digdag v0.9.5
Secret 'gcp.credential' set

以下のコマンドを実行し、gcp.credentialがセットされているこを確認

$ digdag secrets --local
2017-02-23 15:54:24 +0900: Digdag v0.9.5
gcp.credential

ワークフローには以下のように記述

bqexport.dig
$ cat aaa.dig 
timezone: UTC
_export:
  bq:
    dataset: test_yotsu
+export:
  bq_extract>: table01
  destination: gs://{bucketName}/test01.avro
  destination_format: AVRO
  compression: NONE

あとはdigdag runをするとBQのデータをGCS上にexportされていることを確認。

BigQueryで解析した結果をある時刻にexportして、その解析データを別のクラウドや別サービスに使うといったことが簡単に実現可能。

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
What you can do with signing up
1