5
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Embulkの設定情報(環境変数版)

Last updated at Posted at 2018-02-26

概要

Embulkで処理を作成する際、DB接続情報などの環境によって変更したい設定をどう定義すればいいか調べた内容をメモしておきます。

環境変数を利用する

Embulkの場合、環境変数が利用可能なので下記のように環境変数を使う方がシンプルな感じがします。

ファイル構成

ファイル一覧
~/
| # 設定情報
├ secrets.sh
└ opt
  | # bundle plugin.
  ├ bundle
  │ ├ .bundle
  │ ├ .ruby-version
  │ ├ Gemfile
  │ ├ Gemfile.lock
  │ ├ embulk
  │ └ jruby
  |
  | # 処理内容
  └ users.yml.liquid

設定情報

設定ファイルを作ってみる。

~/secrets.sh
#!/bin/bash

## TreasureData Settings
export TREASURE_DATA_API_KEY=XXXXXXXXXXXXXXX

## MySQL Settings
export MYSQL_HOST=127.0.0.1
export MYSQL_USER=hoge
export MYSQL_PASSWORD=test

## PostgreSQL Settings
export POSTGRES_HOST=127.0.0.1
export POSTGRES_USER=hoge
export POSTGRES_PASSWORD=test

処理に組み込んでみる

実際に、上記設定を組み込んで実行してみる。

~/opt/users.yml.liquid
in:
  type: mysql
  host: {{ env.MYSQL_HOST }}
  user: {{ env.MYSQL_USER }}
  password: {{ env.MYSQL_PASSWORD }}
  database: hoge_db
  query: |
    SELECT
      id, name, created_at
    FROM
      users
    WHERE
      deleted_at IS NULL
    LIMIT
      5
    ;
out:
  type: file
  path_prefix: "./users_"
  file_ext: csv
  formatter:
    type: csv
    delimiter: ","
    newline: CRLF
    newline_in_field: LF
    charset: UTF-8
    quote_policy: MINIMAL
    quote: '"'
    escape: "\\"
    null_string: "\\N"
    default_timezone: 'Asia/Tokyo'

プレビュー

ターミナル
$ source ~/secrets.sh; embulk preview -b bundle users.yml.liquid

実行

ターミナル
$ source ~/secrets.sh; embulk run -b bundle users.yml.liquid

.bashrcに定義する

.bashrcか.bash_profileに下記を追記しておけば、ログイン時に環境変数を反映可能。

~/.bashrc
# Embulk Settings.
source ~/secrets.sh

まとめ

サブディレクトリを作成して、各処理をフォルダに分けても特に問題ないので、liquidより使いやすいかもしれませんが、secrets.shを実行せずに、うっかりembulkを実行してしまう場合もありそうですね。

参考サイト

5
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?