elasticsearch 使用单个消防水带将数据索引到多个索引

dluptydi  于 2023-03-01  发布在  ElasticSearch
关注(0)|答案(2)|浏览(165)

我试图理解是否可以使用kinesis firehose将数据索引到elasticsearch,通过传递索引名称和类型(类似于elasticsaerch bulk API)
AWS文档(here)指出:
...另外,您的Elasticsearch集群的rest.action.multi.allow_explicit_index选项必须设置为true(默认值),才能接受带有为每条记录设置的显式索引的批量请求.有关详细信息,请参阅Amazon Elasticsearch服务开发者指南中的Amazon ES配置高级选项。
但是我找不到任何文档说明如何操作,而且消防水管配置需要索引名。
这个尝试没有成功:

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
});

将感谢您的帮助

neekobn8

neekobn81#

这是很长一段时间以来问,但仍然...根据Kinesis常见问题(https://aws.amazon.com/kinesis/data-firehose/faqs/):
当前,单个传送流只能将数据传送到一个Amazon Elasticsearch服务域和一个索引。如果您希望将数据传送到多个Amazon Elasticsearch域或索引,您可以创建多个传送流。

7tofc5zh

7tofc5zh2#

如果你的索引后缀是时间戳,AWS提供索引循环https://docs.aws.amazon.com/firehose/latest/dev/basic-deliver.html#es-index-rotation。
根据您选择的旋转选项,Kinesis Data Firehose会将UTC到达时间戳的一部分附加到您指定的索引名称。它会相应地旋转附加的时间戳。以下示例显示OpenSearch Service中每个索引旋转选项的结果索引名称,其中指定的索引名称为myindex,到达时间戳为2016-02- 25 T13:00:00 Z。

相关问题