過去に色々Embulkについて調べてgistなどに書き散らかしてた記事のリンク集です。
どこに書いたかわからなくなってしまったので、、、
将来FAQみたいなものになるといいな。
書いてあることについて詳しく知りたい方は、私に(hiroysato)にお問い合わせください。
JSONデータ中の時刻欄に""
がありnullとしたい。
{ "time":"2017-02-22", "name":"Alice" }
{ "time":"", "name":"Bob" }
こんなデータの2番目のデータを時刻(時刻なし)としてパースしたい。
回答: フィルタで処理
jsonはnull
は通常{ "time": }
のように書くため、jsonlパーサーでは上記データを時刻として取り扱うことはできません。
次のプラグインを組み合わせると""
を時刻なしとして扱うことができます。
- time部分は文字列型として取り込み
-
embulk-filter-null_stringで
""
をnull
に変換 - embulk-filter-timestamp_format で時刻をパース、時刻型に変換
PostgreSQLのuuid型を利用したい。
column_optionsを使いましょう
時刻のフォーマットが複数あるのをパースしたい。
embulk-filter-timestamp_format を使いましょう。
複雑なJSONデータを利用したい。
回答
embulk-parser-jsonpathとembulk-filter-expand_jsonを組み合わせると良いと思います。例
runはうまく動くのにPreviewは失敗する
これはguessやpreviewが最初のファイルの32KBしか読まないのが原因です。
こちらの機能で将来PreviewやGuessのサイズを指定できるようになります。
CSVパーサのnull_stringの使い方がよくわからない。
公式ドキュメントに表を書きました。CSV parser plugin
embulk selfupdateってembulk実行中にアップデートしても大丈夫?
embulk-input-postgresqlってviewは読めるの?
読めます。
type: fileで、path_prefixがシンボリックリンクだとエラーになる。
現在(0.8.18)はそのような動作です。これがマージされたら直ります。
type: renameのcolumnsは非推奨?
@hiroysato 記事のケースの場合はコメントされているようにinの方にcolumnsをつければ大丈夫かと思います。カラム名を直接指定するrenameは混乱が多く、使わないで済むなら使わないことを推奨…という感じですね (not recommendedであってdeprecatedではありません)
— Dai MIKURUBE (@dmikurube) 2017年4月26日
embulk-filter-timestamp_format
- [embulk-filter-timestamp_format のjavaとJRubyのパーサーの動作について](embulk-filter-timestamp_format のjavaとJRubyのパーサーの動作について)
2015-01-27 19:23:49 aaa
のようなデータをパースした場合、JRubyはパースできるが、Javaはエラーになる。