Skip to content

Instantly share code, notes, and snippets.

@hiroyuki-sato
Last active September 3, 2020 15:51
Show Gist options
  • Star 3 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save hiroyuki-sato/ec502a7e37ae488e4256 to your computer and use it in GitHub Desktop.
Save hiroyuki-sato/ec502a7e37ae488e4256 to your computer and use it in GitHub Desktop.
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
Copy link

frsyuki commented Feb 25, 2015

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

@frsyuki
Copy link

frsyuki commented Feb 25, 2015

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

@yaggytter
Copy link

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

例:

out:
  encoders:
  - type: gzip
    level: 6

@hiroyuki-sato
Copy link
Author

@frsyuki

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

@yaggytter

  • 圧縮率直しました。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment