Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
Help us understand the problem. What is going on with this article?

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

More than 3 years have passed since last update.

はじめに

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です。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away