存储任务的已知问题和限制

本文介绍了存储任务的限制和已知问题。 本文中显示的问题反映了服务的当前状态。 随着支持继续扩展,此列表将随时间而更改。

规模限制

比例因子 支持的限制
每个订阅的存储任务数 5,000
每个存储任务的存储任务分配数 5,000
每个订阅的存储任务分配数 1万
每个存储帐户的存储任务分配数 50
每个条件的子句的存储任务嵌套分组 10

Azure 存储操作会根据存储帐户中的数据量自动缩放其处理任务,但受内部限制的约束。 执行持续时间取决于存储帐户中的 blob 数及其在 Azure Data Lake Storage Gen2 中的层次结构。 通过路径前缀第一次执行任务可能比后续执行的用时更长。 Azure 存储操作还设计为自我调节,并允许存储帐户上的应用程序工作负载优先。 因此,根据存储帐户的最大请求限制,执行的规模和持续时间也取决于可用的事务容量。 下面是典型的处理规模,如果你有更多的可用事务容量,则规模可能会更大;如果存储帐户上的空闲事务容量较少,则它可能会更小。

跨区域对存储帐户应用的任务分配

任务分配只能应用于与存储任务位于同一区域的存储帐户。

账单不显示任务分配名称

账单上仅显示存储帐户名称的计费计量器。 订阅账单不会显示发出计量器的任务分配名称。 若要将计量与任务分配相关联,必须查看通过存储帐户筛选的当天存储操作的资源度量标准。

传播任务定义的更新

当对任务定义进行更改时,不会更新任务分配。 删除旧任务分配后,必须创建新的任务分配以捕捉任何更改。

停止任务分配

可以通过删除基础托管标识的角色分配来停止正在进行的运行。

当存在任务分配时,将阻止存储帐户资源的移动操作

解决方法是删除存储任务分配,然后移动存储帐户资源。

移动存储任务的限制

不能将存储任务移动到其他区域或其他订阅。 不能将包含存储任务的订阅移动到其他租户。

执行的并发限制

存储任务对可以在每个存储帐户上并发执行的任务分配数有限制。 为了实现最佳性能,请确保将单个存储帐户上的任务分配计划为在它们之间根据目标对象以合理的时间间隔运行,以确保任务运行及时完成。 超出存储帐户的并发限制的任务分配执行会被暂停,直到其他分配完成。

规模对可用于存储帐户的事务容量的依赖

存储任务分配执行是自动缩放的,具体取决于存储帐户上可用的事务请求容量。 当有更多可用的事务容量时,规模会更大;当可用的事务容量较少时,规模会更小。

当目标存储帐户的可用事务容量较低时,存储任务执行可能会受到限制,导致完成任务分配执行的持续时间超出预期。

有关规模限制的详细信息,请参阅 Blob 存储的可伸缩性和性能目标

注意

你可以请求更高的容量和流入量限制。 要请求提高限制,请联系 Azure 支持

存储任务运行可以在没有容器权限的情况下写入报表导出容器

创建任务分配时,你要将角色分配给存储任务的系统分配的托管标识。 存储任务运行时,它只能在它的托管标识被分配了所需角色的容器上进行操作。 任务分配时选择的报表导出容器并不是这种情况。 虽然存储任务不能在该容器中的现有 Blob 上运行,但任务不需要正确的角色将报表写入该容器。

如果值为数字,则容器元数据、blob 元数据和 blob 索引标记上的字符串运算符不起作用

不能将容器元数据、blob 元数据和 blob 索引标记上的字符串运算符与数字一起用作值。 例如,equals(Tags.Value[Year], '2022'),其中值 '2022' 是一个数字,它和字符串运算符 equals 在一起无法正确计算。

分配在引用以数字开头的存储帐户名称时会失败

如果你将存储任务分配给名称以数字开头的存储帐户,则存储任务分配会失败。

尚不支持 Blob 索引标记和元数据中的空格字符

blob 标记的键和值中的空格字符是可接受的输入。 但是,存储任务条件无法处理空格字符。 如果键或值包含空格字符,则任务运行时会出现错误。

Blob 名称属性值包含或匹配 "." 不受支持

blob 名称子句上的字符串字段输入接受 ".doc" 或 ".pdf" 作为输入,但无法部署任务资源。 服务资源提供程序验证会捕获它并引发错误。 属性 'Name' 的值为 '.doc',它不遵循模式 '^[a-zA-Z0-9]+$'"}]}。

当在具有分层命名空间的帐户中与多个目录筛选器配合使用时,存储任务分配会在一组不完整的 blob 上操作

如果在存储任务分配中使用了多个筛选器,则不会扫描所有目录前缀来找到要对其操作的 blob。

不支持在任务分配期间在路径前缀中使用空格字符

具有分层命名空间的存储帐户将位置信息显示为 container1 / subcontainer1,在字符串和 / 字符之间有一个空格字符。 如果在分配期间将此信息复制粘贴到路径前缀字段中,则会出现错误。

移动存储任务和任务分配

不支持跨不同的资源组和订阅移动存储任务和任务分配。 此限制意味着任何存储任务及其关联的任务分配都不能在资源组或订阅之间传输。

在移动存储帐户之前清理任务分配

在跨资源组和订阅移动存储帐户之前,必须清理任务分配。 具体而言,在存储帐户从一个资源组移动到另一个资源组或从一个订阅移动到另一个资源组之前,必须删除应用于存储帐户的所有任务分配,以确保顺利转换。

存储任务运行停滞在“进行中”状态

如果在分配过程中,您分配的角色不具备所需权限,则存储任务运行会在 14 天后失败。 若要取消阻止任务运行,可以将所需的角色添加到存储任务的托管标识。 否则,任务分配将停滞在 正在进行的 状态,直到任务运行在 14 天内结束。

高级块 Blob

无法在高级块 Blob 存储帐户中创建分配。

软删除的 Blob 会在扫描过程中作为目标对象包含在列表中

解决方法是排除软删除的特定前缀。

另请参阅