Skip to content
Minero Aoki edited this page Jun 12, 2015 · 1 revision

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/ 以下に配置できます。 両方にある場合の処理はファイルごとに異なります。

config/database.yml (必須)

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クライアント

config/password.yml (任意)

YAML形式です。database.ymlのうち、パスワードなどセキュリティ的に レポジトリへコミットできない値だけをこちらのファイルに分離できます。

config/ 直下と config/ENVIRONMENT/ 以下の両方に配置した場合は、 config/ENVIRONMENT/ 以下のファイルのみが有効です。

s3_apikey: "xxxxxxxxxxxxxxxxxxxxxx"
mysql_main: "xxxxxxxxxxxx"

config/variable.yml (任意)

YAML形式です。全ジョブで共通の変数を定義できます。

config/ 直下と config/ENVIRONMENT/ 以下の両方に配置した場合は、 両方のファイルが読み込まれ、両方の変数が有効になります。 ただし同じ変数を定義した場合は config/ENVIRONMENT/ 側の変数で上書きされます。

eRuby構文でRubyの式を埋め込めます。

dwh_schema: dwh_dev
datadir: /tmp/dwh
data_date: "2015-11-01"