gpt4 book ai didi

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

转载 作者:可可西里 更新时间:2023-10-31 22:49:54 25 4
gpt4 key购买 nike

我设置了一个 AWS Kinesis Firehose Stream 以将数据馈送到 AWS ElasticSearch 集群,我可以通过将文档发送到 Firehose Stream 来成功插入文档,Firehose Stream 将它们加载到 ElasticSearch。

但我希望能够在将文档发送到 Firehose Stream 时手动指定/设置文档的 id 值。我成功地使用 AWS PHP SDK 将数据发送到 Firehose,我只是不知道是否有办法手动设置文档的 id

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

我已经尝试在 JSON 数据中设置 id_idesDocumentId 值,但都无济于事。

有人有什么想法吗?

最佳答案

Firehose Delivery Stream 目标是仅附加的,对于 Opensearch (AWS Elasticsearch),不支持更新插入。 Firehose 将为其流式传输的每条记录生成一个唯一 ID,并将其用作文档 ID。此时不能由用户配置。如果您是 AWS 企业支持客户,您可以通过与您的解决方案架构师 (SA) 或技术客户经理 (TAM) 交谈,请求将此功能添加到 Firehose。

一种可能的短期解决方案是使用 Kinesis Stream 并触发 Lambda 函数以使用 Opensearch API 将文档更新到 Opensearch。 Python 客户端会将 JSON 数据推送到 Kinesis Stream,而不是让 Lambda 函数只执行转换,它会触发流中的记录、执行转换并处理向 Opensearch 的更新。

关于php - 有没有办法在通过 AWS Kinesis Firehose 插入时手动设置 ElasticSearch 文档 ID?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37145837/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com