elasticsearch 使用Elasticsearch的Azure数据工厂REST API分页,elasticsearch,azure-data-factory,restapi,elasticsearch,Azure Data Factory,Restapi" /> elasticsearch 使用Elasticsearch的Azure数据工厂REST API分页,elasticsearch,azure-data-factory,restapi,elasticsearch,Azure Data Factory,Restapi" />

elasticsearch 使用Elasticsearch的Azure数据工厂REST API分页

elasticsearch 使用Elasticsearch的Azure数据工厂REST API分页,elasticsearch,azure-data-factory,restapi,elasticsearch,Azure Data Factory,Restapi,在开发将使用Elasticsearch作为源的管道时,我遇到了与问题相关的分页。我正在使用SQL Elasticsearch API。基本上,我已经开始在《邮递员》中做请求了,效果很好。请求主体如下所示: { “查询”:“按Id从“核心”订单中选择Id、名称、所有权、修改日期”, “获取大小”:20, “光标”:” } 在响应体中第一次运行后,它包含游标字符串,该字符串是指向下一页的指针。如果在postman中,我发送请求并提供来自上一个请求的游标值,则返回第二页的数据,依此类推。我正试图在A

在开发将使用Elasticsearch作为源的管道时,我遇到了与问题相关的分页。我正在使用SQL Elasticsearch API。基本上,我已经开始在《邮递员》中做请求了,效果很好。请求主体如下所示:

{
“查询”:“按Id从“核心”订单中选择Id、名称、所有权、修改日期”,
“获取大小”:20,
“光标”:”
}
在响应体中第一次运行后,它包含游标字符串,该字符串是指向下一页的指针。如果在postman中,我发送请求并提供来自上一个请求的游标值,则返回第二页的数据,依此类推。我正试图在Azure Data Factory中归档相同的结果。为此,我使用复制活动来存储对Azure blob的响应。源的设置如下。

这是身体的表达

{
“查询”:“从\“{variables('TableName')}”中选择Id、名称、所有权、modifiedDate,其中按Id排序”,“获取大小”:@{variables('Rows')},“游标”:”
}
我不知道如何正确设置分页规则。管道正常工作,但仅适用于第一个请求。我尝试设置Headers.cursor和expression$.cursor,但这种设置会导致无限循环,管道会因Elasticsearch限制而失败

我也曾尝试在上阅读该文档,但在使用示例方面似乎非常有限,难以理解

有人能帮我理解如何利用分页功能构建管道吗?

使用光标的响应如下所示:

{
    "columns": [
        {
            "name": "companyId",
            "type": "integer"
        },
        {
            "name": "name",
            "type": "text"
        },
        {
            "name": "ownership",
            "type": "keyword"
        },
        {
            "name": "modifiedDate",
            "type": "datetime"
        }
    ],
    "rows": [
        [
            2,
            "mic Inc.",
            "manufacture",
            "2021-03-31T12:57:51.000Z"
        ]
    ],
    "cursor": "g/WuAwFaAXNoRG5GMVpYSjVWR2hsYmtabGRHTm9BZ0FBQUFBRUp6VGxGbUpIZWxWaVMzcGhVWEJITUhkbmJsRlhlUzFtWjNjQUFBQUFCQ2MwNWhaaVIzcFZZa3Q2WVZGd1J6QjNaMjVSVjNrdFptZDP/////DwQBZgljb21wYW55SWQBCWNvbXBhbnlJZAEHaW50ZWdlcgAAAAFmBG5hbWUBBG5hbWUBBHRleHQAAAABZglvd25lcnNoaXABCW93bmVyc2hpcAEHa2V5d29yZAEAAAFmDG1vZGlmaWVkRGF0ZQEMbW9kaWZpZWREYXRlAQhkYXRldGltZQEAAAEP"
}

我终于找到了解决办法,希望它对社区有用。 基本上,需要做的是将解决方案分为四个步骤

步骤1:提出问题描述中的第一个请求,并将文件转移到blob。 步骤2读取blob文件并获取光标值,将其设置为变量 步骤3:使用已更改的正文继续请求数据

{"cursor" : "@{variables('cursor')}" }
管道如下所示:

分页的配置如下所示
. 这是一种解决方法,因为服务器忽略了此标头,但我们需要有允许在循环中发送请求的内容。

服务器返回的响应是否包含下一页的绝对或相对地址?微软官方教程将直接发送下一页请求的绝对地址。不,很遗憾,响应只包含游标。如果我在请求体中传递这个游标,响应将包含下一页的数据。游标是否包含下一页的信息?你能给我看一下cource的游标吗。很抱歉我将把它添加到问题中