使用 Azure 数据工厂实现 OpenSearch 滚动分页

问题描述 投票:0回答:1

我需要通过rest API从OpenSearch在Azure数据工厂复制活动上实现滚动API(https://opensearch.org/docs/2.0/opensearch/search/paginate/)。

Scroll API 可用于迭代与查询匹配的大量 OpenSearch 文档,甚至所有匹配文档。

这是一个例子(curl):

第一个请求

GET products/_search?scroll=1m
{"size": 10 }

下一个请求

GET _search/scroll
{"scroll_id":"FGluY2x1ZGVfY29udGV4dF91dWlkDXF1ZXJ5QW5kRmV0Y2gBFlViblo1YXZTU2pxYkl1eE9zV3JLaEEAAAAAAAAAChZLem1HOElfcVRkT2JoZWljcnlWaFN3" }

我在 ADF 复制活动分页规则方面遇到了麻烦。请帮忙。

我尝试首先捕获scroll_id作为第一次调用的输出,并将其存储到变量中。但我不知道如何在复制活动的分页规则(下一个请求)中使用该变量来复制 OpenSearch Index json 响应。

谢谢

rest pagination azure-data-factory opensearch
1个回答
0
投票

根据文档

ADF 中的分页支持

Next request’s header = property value in current response body
的情况。

您的场景与此相同,当前页面给出

_scroll_id
的值,该值应用作下一页标题
scroll_id

因此,您可以在复制活动源中尝试如下分页规则。

在 REST API 的 URL 中,提供您的

_search/scroll
URL,并在复制活动的源中,创建标头
scroll_id
并为其提供变量,其中存储了来自 Web 活动的第一个
_scroll_id

在分页规则中,给出标题名称并提供正文属性

_scroll_id
,如下所示。

enter image description here

您可以查看@Matt 的类似SO 答案。另外,请检查相同的文档以了解分页的结束条件。

在这种情况下,您还可以使用直到活动尝试循环方法。

© www.soinside.com 2019 - 2024. All rights reserved.