有没有办法在通过AWS Kinesis Firehose插入时手动设置ElasticSearch文档ID?

Ale*_*man 11 php amazon-web-services elasticsearch amazon-elasticsearch amazon-kinesis-firehose

我设置了AWS Kinesis Firehose Stream以将数据提供给AWS ElasticSearch集群,我可以通过将文档发送到Firehose Stream来成功插入文档,Firehose Stream将它们加载到ElasticSearch中.

但我希望能够在将文档id发送到Firehose Stream时手动指定/设置文档的值.我成功使用AWS PHP SDK将数据发送到Firehose,我无法弄清楚是否有办法手动设置文档id.

$firehoseParams = [
    'DeliveryStreamName' => 'myStreamName', // REQUIRED
    'Record' => [ // REQUIRED
        'Data' => '{"json_encoded": "data", ...}', // REQUIRED
    ],
];
$firehoseResult = $this->_firehoseClient->putRecord($firehoseParams);
Run Code Online (Sandbox Code Playgroud)

我试过在JSON数据中设置id,_idesDocumentId值都无济于事.

有人有主意吗?

小智 6

我们有完全相同的问题,我很遗憾地说目前没有好的解决方案.亚马逊支持已确认他们已收到多个此请求,并且他们目前正在制定解决方案.

  • 你对此有任何更新吗?我仍然没有在文档中看到设置ES文档ID的方法. (2认同)

小智 -1

您可以使用 Kinesis Data Streams 来实现此目的,您可以将文档发送到流,并通过 lambda 函数,您可以使用官方 Elasticsearch API 提供 _id 属性。