fluentd の in_http プラグインで、elasticsearch に bulkAPI で大量のデータ登録を行いたい
fluentd の in_http プラグインを利用して、
json ファイルを送り、elasticsearch に登録したいと考えております。
現状、以下のような json ファイルを扱おうとしています。
{
"user_id" : 0,
"time" : 0,
"data" : [
{
"data0" : 0.0,
"data1" : 0.1
},
{
"data0" : 0.0,
"data1" : 0.2
}
]
}
1つのデータとしては無事登録されることを確認できました。
ただ、"data" 配列の各要素はそれぞれ別のidとして登録したいので、
bulkAPI を利用できるように、
{ "index" : { "_index" : <index_name>, "_type" : <type_name>, "_id" : <id> } }
{ "user_id" : 0, "time" : 0, "data" : { "data0" : 0.0, "data1" : 0.1 } }
{ "index" : { "_index" : <index_name>, "_type" : <type_name>, "_id" : <id> } }
{ "user_id" : 0, "time" : 0, "data" : { "data0" : 0.0, "data1" : 0.2 } }
のような形に変換して elasticsearch に投げる方法を検討しています。
その実装について、
・index_name/type_name を http の POST で fluentd に渡す方法
・bulkAPI 形式に fluentd 上で変換する方法
が分からず困っている状態です。
fluentd-elasticsearch で bulkAPI 形式で登録する手順について、
良い方法をご存じの方がいらっしゃいましたら、ご教示頂きたく思います。
よろしくお願いいたします。
なお、各種バージョンは以下のとおりです。
OS : CentOS Linux release 7.5.1804 (Core)
td-agent : 2.3.6
elasticsearch : 5.5.3