在Lookup @ Azure Data Factory中处理> 5000行

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

我有一个复制活动,它将表从MySQL复制到Azure表存储。这非常有效。但是,当我在Azure表上执行查找时,我收到错误消息。 (太多数据)

这是根据文档设计的:Lookup活动最多有5,000行,最大大小为2 MB。

还有一个提到的解决方法:设计一个两级管道,其中外部管道在内部管道上迭代,该管道检索不超过最大行数或大小的数据。

我怎样才能做到这一点?有没有办法定义偏移量(例如只读取1000行)

azure data factory

azure azure-data-factory
1个回答
0
投票

你真的需要5000次迭代你的foreach吗?你在foreach做了什么样的过程,是不是有更有效的方法呢?

否则,可能以下解决方案是可能的。

创建一个包含2个整数变量的新管道:迭代和计数,默认值为0。

首先确定所需的迭代次数。执行查找以确定数据集的总数。在您的查询中将此除以5000,添加一个并向上舍入。使用set variable activity将iterations变量的值设置为此值。

接下来,添加一个while循环,其表达式类似于@less(变量('count'),变量('iterations'))。在此while循环中调用当前管道并将count变量作为参数传递。执行管道活动后,将count变量设置为+1。

在当前的管道中,您可以将limit / offset子句与MySQL查询中传递的参数结合使用,以获得第一次迭代的前0-5000个结果,第二次迭代时的5000-10000等。

如果你真的需要迭代表存储,我看到的唯一解决方案是你必须自己在结果集上创建分页,你可以使用逻辑应用程序来实现这个目的并使用webhook来调用它。

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