Create a gist now

Instantly share code, notes, and snippets.

What would you like to do?
Embulk組み込みアウトプット覚書

Embulk組み込みアウトプット覚書

ここに記載している情報は間違えている可能性があります。ご注意ください。

元ネタ なんちゃって個人情報をembulkで使う

Embulkアウトプットプラグイン覚書

設定例

#out: {type: stdout}
#out: {type: null}
out:
  type: file
  path_prefix: ./sampleo
  file_ext: .csv.gz
  formatter:
    type: csv
    header_line: true
    charset: UTF-8
    newline: CRLF
  encoders:
  - {type: gzip, level: 6 }

typeに出力したいアウトプットを種類を指定します。現在次のアウトプットが指定できます。

type 出力先 備考
stdout 標準出力
file ファイル
nulll 何も出力しない 動作未確認

各アウトプット詳細

各アウトプットの設定について詳述します。

stdout

オプションはありません。

file

fileアウトプットで指定できる設定は次のとおりです。

設定項目 データ型 説明 初期値等
path_prefix 文字列 出力ファイル名のプレフィックスパス
sequence_format 文字列 出力するファイル名につけるシーケンス .%03d.%02d
file_ext 文字列 出力先ファイルの末尾の文字列
encorders 配列 エンコーダーに関する設定
formatter ハッシュ フォーマッターに関する設定

ファイル出力例

  • path_prefix: /path/to/embulk/sample
  • file_ext: csv
  • sequence_format: ".%03d.%02d"
  • 出力されるファイルの形式: /path/to/embulk/sample.000.00.csv

シーケンスフォーマット(sequence_format)とは

タスクインデックスはインプットプラグインのタスクの数で、インプットプラグインがFileやS3の場合、入力ファイル数がタスクインデックスの数になります。入力がデータベースなどタスク数が1の場合、タスクインデックス数は0となります。

ファイルインデックスは、一つのタスク内複数ファイルを取り扱う場合に増える番号ですが、現状は複数タスクをまとめるがないため常に0になります。

フォーマッターの種類

typeを使って、利用するフォーマッタを指定します。 利用できるフォーマッタは次のとおりです。

type フォーマッタ説明
csv CSV形式の出力をするフォーマッタ

CSVフォーマッタ

設定キー データ型 説明
header_line 真偽値 ヘッダを出力する(true)/出力しない(false)
charset 文字列 文字エンコーディング(UTF-8), Shift_JIS等
newline 文字列 改行の形式(CRLF, LF, CR)

エンコーダー

現在gzipが動作します。

  • gzip
設定キー データ型 説明
level 数値 圧縮率(最大9), 最小0(非圧縮)、未指定時6

frsyuki commented Feb 25, 2015

formatter-csv のnewline や charset オプションは動きませんか?

frsyuki commented Feb 25, 2015

output-fileのオプションが違うようですね。path_prefix, file_ext, sequence_formatの3つです。

gzipのlevelですが、
0~9で、
0は非圧縮、
9が最高圧縮率です。

例:

out:
  encoders:
  - type: gzip
    level: 6
Owner

hiroyuki-sato commented Feb 26, 2015

@frsyuki

  • newline, charset動きました。
  • ファイル名の出力を直しました。

@yaggytter

  • 圧縮率直しました。
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment