在我有时间获取摄取策略之前在流程设置中,我开始收集最终将通过Stream Analytics作业的数据。现在我坐在一个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&#时,ASA作业将失败39; s lastModified time与它所在的文件夹不匹配...
有任何建议如何解决这个问题?
编辑:未能提及(1)这些容器中没有文件夹...所有blob都位于容器的根目录中,(2)我的LastModifiedTime
位于blob上不再有用或有意义。后者的原因是这些blob是从多个其他容器中收集的,并使用Azure CLI copy-batch
命令合并在一起。
答案 0 :(得分:0)
你能在下面试试吗?
由于 RefillJob 具有固定数量的blob,因此在System.Timestamp上放置一个谓词以确保它只处理旧事件。使用至少6个SU开始此工作并运行它直到所有事件都已处理完毕。您可以通过查看LastOutputProcessedTime或查看输入事件计数或检查输出源来确认。检查完毕后,停止工作。不再需要这份工作。
使用时间戳>启动 partitionedJob RefillJob 。这假定时间戳的文件夹存在。