Индексировать данные для нескольких индексов, используя один пожарный шланг
Я пытаюсь понять, возможно ли индексировать данные в asticsearch с помощью kinesis firehose для нескольких индексов, передавая ему имя и тип индекса (аналогично elasticsaerch bulk api)
Документация AWS ( здесь) гласит:
.... Кроме того, опция rest.action.multi.allow_explicit_index для вашего кластера Elasticsearch должна быть установлена в значение true (по умолчанию) , чтобы принимать массовые запросы с явным индексом, установленным для каждой записи. Дополнительную информацию см. В разделе "Дополнительные параметры настройки Amazon ES" в Руководстве разработчика сервиса Amazon Elasticsearch.
но я не могу найти никакой документации о том, как это сделать, и, кроме того, для конфигурации пожарного шланга требуется индексное имя.
эта попытка не сработала:
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
});
помощь будет оценена
2 ответа
Если ваши индексы имеют суффикс с отметкой времени, AWS предлагает чередование индексов. https://docs.aws.amazon.com/firehose/latest/dev/basic-deliver.html#es-index-rotation.
В зависимости от выбранного варианта поворота Kinesis Data Firehose добавляет часть метки времени прибытия в формате UTC к указанному имени индекса. Он соответствующим образом поворачивает добавленную временную метку. В следующем примере показано результирующее имя индекса в службе OpenSearch для каждого параметра ротации индексов, где указанное имя индекса — myindex, а отметка времени прибытия — 2016-02-25T13:00:00Z.
Прошло много времени с тех пор, как спросили, но все же... Согласно часто задаваемым вопросам Kinesis (https://aws.amazon.com/kinesis/data-firehose/faqs/):
В настоящее время один поток доставки может доставлять данные только в один домен Amazon Elasticsearch Service и один индекс. Если вы хотите, чтобы данные доставлялись в несколько доменов или индексов Amazon Elasticsearch, вы можете создать несколько потоков доставки.