Индексировать данные для нескольких индексов, используя один пожарный шланг

Я пытаюсь понять, возможно ли индексировать данные в 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, вы можете создать несколько потоков доставки.

Другие вопросы по тегам