LoginSignup
7
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して、その解析データを別のクラウドや別サービスに使うといったことが簡単に実現可能。

7
1
0

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
  3. You can use dark theme
What you can do with signing up
7
1