今日もプログラミング

IT技術とかプログラミングのこととか特にJavaを中心に書いていきます

Embulkの設定ファイルでエイリアスを使う

Embulkの設定ファイルを書いていると、同じ値が繰り返し現れることがある。

例えば、CSVをTSVに変換する設定ファイルを書いてみると、

in:
  type: file
  path_prefix: 'data/test.csv'
  parser:
    type: csv
    charset: SJIS
    delimiter: ","
    header_line: false
    columns:
    - {name: ID, type: long}
    - {name: STR, type: string}
out:
  type: file
  path_prefix: result
  file_ext: tsv
  formatter:
    type: csv
    charset: SJIS
    delimiter: "\t"
    header_line: false
    columns:
    - {name: ID, type: long}
    - {name: STR, type: string}

のように、parserとformatterとで重複する内容が出てくる。

何とかできないのかなー、と考えていたら、YAMLにはエイリアスの仕組みがあるようだ。

以下のように書けば、OK。

in:
  type: file
  path_prefix: 'data/test.csv'
  parser:
    type: csv
    charset: &CHARSET SJIS
    delimiter: ","
    header_line: false
    columns: &COLUMNS
    - {name: ID, type: long}
    - {name: STR, type: string}
out:
  type: file
  path_prefix: result
  file_ext: tsv
  formatter:
    type: csv
    charset: *CHARSET
    delimiter: "\t"
    header_line: false
    columns: *COLUMNS