index data to multiple indices using single firehose

时间:2018-01-24 09:47:36

标签: node.js elasticsearch amazon-kinesis-firehose

I'm trying to understand if it's possible to index data to elasticsearch using kinesis firehose to multiple indices, by passing it the index name and type (similar to elasticsaerch bulk api)

AWS documentation ( here)说:

  

....另外,你的rest.action.multi.allow_explicit_index选项   必须将Elasticsearch集群设置为true(默认值)才能获取   具有为每条记录设置的显式索引的批量请求。更多   信息,请参阅亚马逊中的Amazon ES配置高级选项   Elasticsearch Service开发人员指南。

但是我找不到任何关于如何操作的文档,而且firehose配置需要索引名称。

这个尝试没有用:

 const data = [
    {
        "value": "1",
        "_index": "index1",
        "_type": "type1"
    }];

const params = {
    DeliveryStreamName: 'XXX', /* required */
    Records: [/* required */
        {
            Data: JSON.stringify(data[0]) //new Buffer('...') || 'STRING_VALUE' /* Strings will be Base-64 encoded on your behalf */ /* required */
        }
    ]
};
firehose.putRecordBatch(params, (err, data) => {
    if (err) console.log(err, err.stack); // an error occurred
    else console.log(data);           // successful response
});

将不胜感激

1 个答案:

答案 0 :(得分:0)

自问问以来已经有一段时间了,但仍然...根据Kinesis常见问题解答(https://aws.amazon.com/kinesis/data-firehose/faqs/):

单个传送流只能将数据传送到一个Amazon Elasticsearch Service域和当前一个索引。如果要将数据传递到多个Amazon Elasticsearch域或索引,则可以创建多个传递流。