Digdag serverでH2やPostgreSQLのデータベースにデータを格納する


はじめに

Digdagのサーバは、H2(Java組み込みデータベース)やPostgreSQL内にプロジェクトなどの情報を格納することができる。

Digdagのサーバの設定は次の三つの場所に格納できる(ようだ)

  • H2オンメモリ
  • H2パス指定 (組み込みJavaのデータベースでパスを指定して永続化)
  • PostgreSQL

設定ファイルの形式

サーバの設定はJavaのシステムプロパティ形式で記述する(参考)。key = valueという形式です。
将来的にはHOCON形式で記述できるようになるかもしれないとのこと。use HOCON configuration format

:で区切った形式でも大丈夫なようですが(参考)、各種サイトを見ると=で書いているほうが多いので、=で統一することにしました。

H2オンメモリの場合

digdag scheduler -mとすれば良いようだ。(参考)

オンメモリなのでサーバを停止すると、データは削除されます。

H2パス指定の場合

H2でも次のようにパスを指定すれば、データを永続化することができるようだ。(サーバを立ち上げてみただけで永続化できているかは未確認 )

database.type = h2
database.path = ./test.db

digdag server -c h2.confで指定したパス上にデータベースが作成される。

tree test.db
test.db
|-- digdag.mv.db
`-- digdag.trace.db

0 directories, 2 files

PostgreSQLの場合

database.type = postgresql
database.user = user
database.password = passwd
database.host = 127.0.0.1
database.port = 5432
database.database = digdagdb

digdag server -c postgresql.confでテーブルが自動的に作成される。

Digdagが指定されたデータベースの初期化を行う際に、CREATE EXTENSION IF NOT EXISTS "uuid-ossp";を実行します。権限の設定によっては実行に失敗することがあります。その場合はあらかじめスーパーユーザでCREATE EXTENSION IF NOT EXISTS "uuid-ossp";を実行すると良いようです。

PostgreSQL 9.6以上がオススメ

ER

こんなテーブルがつくられるようだ。

(PDF版をダウンロード)