0

我有一个 OData 提要,其中包含许多大表(数千万行)。我需要配置 PowerQuery(或 PowerPivot,以最适合该工作的工具为准)来访问此 OData 提要,但要以分页方式进行,这样单个请求就不会尝试同时返回 1000 万行,而是使用多个分页查询构建数千万行的完整结果。我不想手动提交许多具有不同 $top 和 $skip 值的不同 URL 来执行我自己的手动分页,而是需要 PowerQuery 或 PowerPivot 来为我处理分页。

我希望 PQ/PP 能够足够聪明地进行分页,也许是通过首先发出“计数”查询来确定存在多少行,但情况似乎并非如此。当我给 PQ/PP 一个指向大型 OData 表的 URL 时,它只是盲目地发出一个查询来检索所有行(实际上,它发出 2 个这样的相同查询,这看起来很奇怪),这会使服务器上的数据库崩溃。

在寻找答案时,我看到了 PQ/PP 可以进行分页的提示,但不知道如何启用此行为。那么有没有办法告诉 PQ/PP 使用某种分页来访问大型数据集?如果是这样,我可以设置页面大小吗?

4

2 回答 2

0

如果您使用 Web API,您可以将 PageSize 放在 EnableQueryAttribute 上吗?

[EnableQuery(PageSize = 10)]
public IHttpActionResult Get()
{
  return Ok(customers);
}
于 2015-01-08T06:53:43.947 回答
0

您可以使用递归来获取和附加连续的页面。每个连续的 fetch 在 url 中使用一个更高的“开始”行号。如果 fetch 产生一个空列表,则递归结束。在“M”中,if 语句可以检查空列表,否则附加并增加“@”以自我引用您当前的函数名称。

于 2015-12-09T00:32:15.180 回答