Help us understand the problem. What is going on with this article?

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

More than 1 year has passed since last update.

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

t-yotsu
ここに記載の内容は個人の見解であり、必ずしも所属組織の立場、戦略、意見を代表するものではありません。
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした