为Stream Analytics导入准备存档数据

时间:2017-10-21 17:00:01

标签: azure azure-stream-analytics stream-analytics

在我有时间获取摄取策略之前在流程设置中,我开始收集最终将通过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命令合并在一起。

1 个答案:

答案 0 :(得分:0)

你能在下面试试吗?

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

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