0

在我有时间获得摄取策略和流程设置之前,我开始收集最终将通过流分析工作的数据。现在我坐在一个 Azure blob 存储容器上,其中包含超过 500,000 个 blob(无文件夹组织),另一个包含 300,000 个,其他一些包含 10,000 - 90,000 个。

生产收集过程现在将这些 blob 以YYYY-MM-DD/HH格式写入不同的容器,但这只是向前发展的好方法。我拥有的这些存档数据对于进入我的系统至关重要,我想稍微修改一下现有生产 ASA 作业的输入,这样我就可以在查询、函数和其他依赖项中利用相同的逻辑。

我知道 ASA 不喜欢超过几百 / 千的批次,所以我正在尝试寻找一种方法来暂存我的数据,以便在 ASA 下正常工作。这将是一次运行...

一个想法是编写一个脚本来查看每个 blob,查看 blob 中的时间戳并重新创建YYYY-MM-DD/HH文件夹设置,但根据我的经验,当 blob 的 lastModified 时间与它的文件夹不匹配时,ASA 作业将失败在...

任何建议如何解决这个问题?

编辑:未能提及(1)这些容器中没有文件夹......所有 blob 都位于容器的根目录中,并且(2)我LastModifiedTime的 blob 不再有用或有意义。后者的原因是这些 blob 是从多个其他容器中收集的,并使用 Azure CLIcopy-batch命令合并在一起。

4

1 回答 1

0

你可以试试下面吗?

  1. 在两个不同的作业中执行此处理,一个用于具有日期分区的文件夹(例如partitionedJob)。另一个用于没有任何日期分区的旧 blob(例如RefillJob
  2. 由于RefillJob具有固定数量的 blob,因此在 System.Timestamp 上放置一个谓词以确保它只处理旧事件。使用至少 6 个 SU 启动此作业并运行它,直到处理完所有事件。您可以通过查看 LastOutputProcessedTime 或查看输入事件计数或检查输出源来确认。完成此检查后,停止作业。不再需要这项工作。

  3. 使用 timestamp > RefillJob启动partitionedJob。这假设时间戳的文件夹存在。

于 2017-10-23T18:45:55.467 回答