-
Notifications
You must be signed in to change notification settings - Fork 20
Configuration
Bricolageの設定
以下のレイアウトにする必要があります。 最低限、config/database.ymlとサブシステム1つが必要です。
batch_home/
config/
development/
database.yml
password.yml 省略可能
variable.yml 省略可能
production/
database.yml
password.yml 省略可能
variable.yml 省略可能
SUBSYSTEM_1/
ジョブネット名.jobnet
ジョブ名.job
ジョブ名.sql
テーブル名.ct
SUBSYSTEM_2/
ジョブネット名.jobnet
ジョブ名.job
ジョブ名.sql
テーブル名.ct
ジョブを構成するファイルはすべてサブシステムディレクトリの直下に置きます。 必要なファイルはジョブクラスによって異なりますが、 ジョブファイル(*.job)だけは常に必要です。
設定ファイルはすべて config/ 直下もしくは config/ENVIRONMENT/ 以下に配置できます。 両方にある場合の処理はファイルごとに異なります。
Railsのdatabase.ymlと同じような形式でデータベースなどの接続情報を記述します。
config/ 直下と config/ENVIRONMENT/ 両方に配置した場合は、 config/ENVIRONMENT/ 以下のファイルのみが有効になります。
またeRuby構文でRubyの式を埋め込むことが可能です。
例
sql:
type: psql
host: dwh-001.fltjq358ta.ap-northeast-1.redshift.amazonaws.com
port: 5439
database: dev
username: dwh_dev
pgpass: <%= user_home_relative_path '.pgpass' %>
encoding: utf8
td:
type: td
database: logs
apikey: <%= password 'td' %>
s3:
type: s3
bucket: dwh-tmp
prefix: ""
s3cfg: <%= user_home_relative_path '.s3cfg' %>
mysql:
type: mysql
host: web-001
database: main
username: dwh_export
password: <%= password 'mysql_dwh_export' %>
encoding: utf8
"type" 属性はタスクハンドラータイプを指定する項目です。 現在のところ、以下のタスクハンドラーが定義されています。
- psql
- PostgreSQLのpsqlコマンドを利用したRedshiftクライアント
- td
- tdコマンドを利用したTreasure Dataクライアント
- s3
- s3cmdコマンドを利用したAWS S3クライアント
- mysql
- Rubyのmysql2ドライバーを利用したMySQLクライアント
YAML形式です。database.ymlのうち、パスワードなどセキュリティ的に レポジトリへコミットできない値だけをこちらのファイルに分離できます。
config/ 直下と config/ENVIRONMENT/ 以下の両方に配置した場合は、 config/ENVIRONMENT/ 以下のファイルのみが有効です。
例
s3_apikey: "xxxxxxxxxxxxxxxxxxxxxx"
mysql_main: "xxxxxxxxxxxx"
YAML形式です。全ジョブで共通の変数を定義できます。
config/ 直下と config/ENVIRONMENT/ 以下の両方に配置した場合は、 両方のファイルが読み込まれ、両方の変数が有効になります。 ただし同じ変数を定義した場合は config/ENVIRONMENT/ 側の変数で上書きされます。
eRuby構文でRubyの式を埋め込めます。
例
dwh_schema: dwh_dev
datadir: /tmp/dwh
data_date: "2015-11-01"