我有一个复制活动,它将表从 MySQL 复制到 Azure 表存储。
这很好用。
但是当我在 Azure 表上进行查找时,出现错误。 (数据太多)
这是按照文档设计的:
Lookup 活动最多可包含 5,000 行,最大大小为 2 MB。
另外还提到了一个解决方法:
设计一个两级管道,其中外部管道迭代内部管道,从而检索不超过最大行数或大小的数据。
我怎样才能做到这一点?有没有办法定义偏移量(例如只读取 1000 行)
你真的需要 5000 次 foreach 迭代吗?您在 foreach 中执行什么样的过程,是否有更有效的方法来执行此操作?
否则,也许下面的解决方案是可能的。
创建一个包含 2 个整数变量的新管道:迭代次数和计数,默认值为 0。
首先确定所需的迭代次数。进行查找以确定数据集的总数。在您的查询中,将此值除以 5000,加一并向上舍入。使用设置变量活动将迭代变量的值设置为此值。
接下来,添加一个 while 循环,其中的表达式类似于 @less(variables('count'),variables('iterations'))。在此 while 循环中调用当前管道并将 count 变量作为参数传递。执行管道活动后,将计数变量设置为 +1。
在当前管道中,您可以将 limit/offset 子句与 MySQL 查询中传递的参数结合使用,以获得第一次迭代的前 0-5000 个结果,第二次迭代的前 0-5000 个结果,等等。
如果您确实需要迭代表存储,我看到的唯一解决方案是您必须自己在结果集上创建分页,您可以为此目的使用逻辑应用程序并使用 Webhook 调用它。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)