你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
本文提供了有关使用存储任务的最佳做法指南。
组成
可应用于多个存储帐户的设计条件。 在条件中使用删除操作之前,请考虑启用 Blob 软删除,并仔细检查条件分组的影响。 本部分介绍这些建议中的每一项。
定义可同时应用于多个存储帐户的单个存储任务条件
通过使条件可重用,无需为每个存储帐户创建单独的存储任务条件,并简化大量存储帐户的管理。
若要利用此功能,请创建一个存储任务条件来扫描存储帐户中的 Blob 并将其分配给每个帐户。 为此,可以使用存储任务的“ 分配 ”菜单选项在 Azure 门户中为单个存储任务添加多个存储任务分配。
启用所有这些任务分配后,存储任务执行将同时在各自账户中的 Blob 上运行,从而实现水平扩展。
在使用删除操作之前,请考虑在存储帐户中启用 Blob 软删除
为了增强数据保护,Microsoft 建议在存储帐户中启用 Blob 软删除。 Blob 软删除允许恢复意外删除的 Blob,从而提供额外的保留层并让用户感到安心。 通过启用 Blob 软删除,可以在保留期内取消删除 Blob,从而最大程度地降低因意外删除而导致数据丢失的风险。 如果在软删除的存储帐户中意外删除了 Blob,可以使用存储任务中的取消删除操作来恢复 Blob。
了解将存储任务分配给启用了生命周期管理策略的帐户的影响
如果生命周期管理策略尝试删除同一 Blob,则删除作可能会失败。 因此,如果某个存储任务包含删除操作,并且该任务被分配给一个具有定义了删除操作的活动生命周期管理策略的帐户,那么当它们同时作用于同一组 Blob 时,失败率可能较高。
了解存储任务条件分组的影响
验证分组条件的方式是否会导致所需的结果。 不正确的分组可能会导致意外操作。 使用预览功能彻底测试分组条件。 确保条件符合预期的 Blob。
验证
在撰写条件时验证条件,并在启用存储任务分配之前再次验证条件。 本部分介绍这些建议中的每一项。
在撰写条件时验证条件
应使用条件预览功能验证撰写的每个条件。 此功能提供交互式体验,显示所选 Blob 中哪些 Blob 满足你配置的条件谓词。 条件预览体验不会对数据进行任何更改。 可以通过指定不同的存储帐户或 Blob 路径前缀,针对各种 Blob 集验证条件。 不正确的组合条件可能会对数据产生不利影响,这一步对于确保条件正确组合至关重要。
请参阅 预览条件的效果
在提交存储任务分配之前验证条件
条件预览功能也显示在 “添加分配 ”窗格中。 在提交分配之前,请使用此功能来验证存储任务是否在存储帐户中的正确 Blob 集上运行。 如果存储任务用于其他存储帐户分配,则不会影响任何意外的 Blob。
规模和性能
一次启用一个存储任务。 应用技术来优化条件和任务分配计划。
一次启用单个存储任务分配
存储操作当前支持在一个存储帐户上同时执行一个存储任务分配。 如果将两个存储任务分配到帐户并同时启用,则在第二个任务排入队列时执行第一个任务,直到第一个任务完成。 这适用于单次运行和重复计划任务分配。
对于计划的任务分配,如果上一个任务迭代仍在进行中,则会跳过新迭代。 下一个计划任务仅在前一个任务完成后才会在指定的触发时间运行。 在安排重复任务时,要考虑任务分配至大型存储帐户时的规模效应,这可能导致完成时间延长。 因此,建议计划它们,以便每个任务运行可以在下一次迭代之前完成,以防止跳过后续迭代。
对于单次运行任务分配,如果并行任务已经在进行中,新任务的执行将被推迟 60 分钟,加上额外随机的分钟数,然后再尝试进行。 一般情况下,为了避免对正在执行哪个任务分配产生混淆,Microsoft 建议一次只启用一个任务分配。
规模限制的解决方法
存储操作已经被定义了规模限制。 请参阅 缩放限制
若要优化规模限制的管理,请考虑实现以下解决方法:
按前缀划分的任务分段:不分配单个任务来处理存储帐户中的所有 Blob,而是创建多个任务,每个任务负责基于其前缀的特定筛选 blob 子集。 这种分段方法可以更均匀地分配工作负荷,并帮助保持在规模限制范围内。 可以在任务分配期间添加筛选器,如下所示:
交错计划:计划任务在不同时间运行,尤其适用于大规模操作。 通过错开执行时间,可以避免并发任务超出并发限制并导致任务执行争用。
增量处理:将大型任务分解为较小的增量步骤。 此方法可确保每个任务段可以在给定的限制内完成,从而降低不完整作的风险。
监视和调整:定期监视任务性能和进度。 根据需要调整任务条件/前缀和计划,以确保在规模限制内高效处理。
通过使用这些策略,可以有效地管理和解决施加的规模限制,确保任务执行的流畅高效。
可靠性
在具有 异地冗余存储(GRS)或 异地区域冗余存储(GZRS)配置的帐户中,存储操作执行得更加可靠。
使用异地冗余实现业务连续性
当发生存储帐户故障转移时,具有 GRS 和 GZRS 的存储帐户会将数据复制到次要区域。 存储作的业务连续性在很大程度上取决于目标存储帐户的冗余配置。 使用异地冗余配置的存储帐户受益于自动故障转移过程。 这种自动管理可确保将来的任务分配运行迭代(无论是单次还是反复执行)在次要区域中执行,而不会出现问题。 但是,故障转移时正在进行的存储任务可能会遇到故障。 新的存储任务和存储任务分配将继续按预期工作。
对存储帐户的一致监视至关重要。 通过故障转移,应该彻底检查任务报告和监视,以验证所有 Blob 操作是否成功完成,并识别任何需要注意的差异。
监测
定期监视存储任务执行,并避免删除存储任务执行报表的报表容器。
定期监视任务
应定期监视存储任务执行,以确保任务按预期运行。 查看任务报告、指标、监视仪表板。 检查是否有任何错误,并验证任务是否在预期的时间范围内完成。
确保未删除结果报表容器
存储操作会以 CSV 格式生成详细报告,并将这些报告写入在任务分配期间配置的结果报告容器中。 这些报告提供关于任务执行操作的见解,其中 CSV 文件中的每一行都包含有关执行的操作、每个操作的状态以及遇到的任何错误的信息。 请务必确保在任务执行期间不会从存储帐户中删除任务分配期间配置的结果报告容器。 如果在任务运行期间删除了报告容器的结果,则任务执行可能会失败。
存储操作以 CSV 格式生成详细报告,这些报告会写入在任务分配时配置的结果报告容器中。 这些报告提供关于任务执行操作的深入了解,CSV 文件中的每一行都包含有关执行的操作、每个操作的状态以及任何遇到的错误。 请务必确保在任务执行期间不会从存储帐户中删除结果报告容器。 如果在任务运行期间删除了报告容器的结果,则任务执行可能会失败。
存储操作生命周期
使用中央存储库的订阅来管理任务
为了有效管理任务和任务分配,请考虑使用中心订阅来包含存储任务库。 此方法允许同时将这些任务分配给不同订阅和区域的多个存储帐户,而无需为每个区域或订阅单独配置它们。 通过集中任务管理,可以简化流程,减少管理开销,并确保整个 Azure 环境中的任务执行一致性。