LoginSignup
6
6

More than 5 years have passed since last update.

embulkでSQLなどの長いパラメータを複数行で記述する

Last updated at Posted at 2017-03-24

はじめに

embulkでembulk-input-jdbc などを使っていると、query に長いSQLを書きたいときがあります。
次のように工夫することで複数行に渡る文字列を記述することができます

方法1: YAMLの複数行リテラルを使う方法

| を使うと複数行の入力ができます

in:
    type: mysql
    host: localhost
    user: root
    password: foobar
    query: |
       SELECT 
          ID,
          NAME
       FROM
          USER_MST      

方法2: liquidのcapture を使う方法

{%capture%} ... {%endcapture%}を使った方法です。

  1. 複数行リテラルをcaptureで変数raw_queryに代入する
  2. さらに変数queryに改行コードを除いたものを代入する
  3. YAML内でquery を参照する
{%capture raw_query %}
       SELECT 
          ID,
          NAME
       FROM
          USER_MST 
{%endcapture%}
{% capture query %} {{ raw_query | strip_newlines }} {%endcapture%}
    type: mysql
    host: localhost
    user: root
    password: foobar
    query: {{query}}

変数queryを使わず、YAML内に{{ raw_query | strip_newlines }} と書いてもOKです。

6
6
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
6
6