はじめに
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以上がオススメ
partial indexのwhere条件がindex-only scanに反映されるのは、PostgreSQL 9.6からだけども…digdagの内蔵分散キューは性能的にはPostgreSQL 9.6から本領発揮すると言うべき
— Sadayuki Furuhashi (@frsyuki) 2016年9月2日
ER
こんなテーブルがつくられるようだ。