我的问题是将数据从流分析保存到blob存储。在我们的系统中,我们通过事件中心从许多网站收集clictstream数据。然后我们正在进行一些小的分组和聚合。之后,我们将结果发送到我们的blob存储区。
问题是我们想通过每个网站的id将我们的结果分成许多blob容器。现在我们只能通过日期和时间模式来完成,例如/ logs / {date} / {time}但我们想要/ {websiteID} / {date} / {time}
有没有办法实现这个目标?
答案 0 :(得分:1)
这是一个重复的问题:
Stream Analytics: Dynamic output path based on message payload
Azure Stream Analytics -> how much control over path prefix do I really have?
上述简短版本是您无法在Stream Analytics中执行此操作的。如果您有多个目标路径可供多个接收器使用,那么您最好的选择是流式传输到单个Blob存储接收器并使用ASA以外的其他方式处理结果。 Azure Functions,WebJobs或ADF任务是一些可能的解决方案。
答案 1 :(得分:0)
问题是我们想通过每个网站的id将我们的结果分成许多blob容器。现在我们只能通过日期和时间模式来完成,例如/ logs / {date} / {time}但我们想要/ {websiteID} / {date} / {time}
正如此官方文档stream-analytics-define-outputs提到的关于Blob存储输出的Path Prefix Pattern
:
用于在指定容器中写入blob的文件路径。 在路径中,您可以选择使用以下2个变量的一个或多个实例来指定blob的写入频率: {date} , {time}
示例1:cluster1 / logs / {date} / {time}
示例2:cluster1 / logs / {date}
根据我的理解,您可以为每个网站的单个Stream Analytics作业创建多个blob输出目标,并且使用类似SQL的查询语言,您可以过滤事件数据并将数据发送到特定输出。有关详细信息,请参阅Common query patterns。