ElasticsearchでCSVからインデクシングする
インデクシングしたいデータがCSVだった場合、CSVからjsonへの変換は意外と面倒だったりしませんか。
そんな場合、CSV River Pluginを使ってCSVから直接インデクシングがオススメです。
インストール
(ver 2.0.1の場合。ESとのバージョン対応は上記Githubで要確認)
1
|
|
登録
こんな感じ。他のオプションは上記ページで要確認
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
|
罠
しかし罠がありました。
GithubのREADME.mdには一言も書いてませんが、処理されたCSVファイルは以下の命名規則でRenameされます。
(hoge.csvの場合)
- 読み込み中:hoge.csv.processing
- 読み込み済:hoge.csv.processing.imported
登録のjsonを見れば雰囲気でわかりますが、folder以下のfilename_patternで指定したファイルが対象になります。
そのため、
1
|
|
みたいな正規表現で設定すると、読み込み済みのCSVファイルが、次回polling時に読み込み対象になります。
pollingはデフォルト60minなので(変更可)、1時間ごとにすべてのファイルが再インデクシングされます。
デフォルト値が上記正規表現なので、通常であればこのままにしとくのが吉です。
変更する場合、登録する正規表現は
.csv$
で終わるようにしましょう。