Azure 流分析 -> 我真的对路径前缀有多少控制?

Posted

技术标签:

【中文标题】Azure 流分析 -> 我真的对路径前缀有多少控制?【英文标题】:Azure Stream Analytics -> how much control over path prefix do I really have? 【发布时间】:2017-01-09 21:39:39 【问题描述】:

我想根据来自事件中心的一些数据设置前缀。

我的数据是这样的: "id":"1234",...

我想写一个类似于以下内容的 blob 前缀: foo/id/guid....

最终我希望每个 id 都有一个 blob。这将有助于它如何被下游消耗掉。

我没有看到创建与日期和时间无关的前缀的方法。从理论上讲,我可以编写另一个工作来从 blob 中提取并在流分析步骤之后将其分解。但是,感觉 SA 应该允许我立即分手。

有什么想法吗?

【问题讨论】:

【参考方案1】:

date 、 time 和 partition 是 blob 输出前缀中唯一支持的。 partition 是一个数字。

目前不支持在 blob 前缀中使用列值。

如果您的此类 id 数量有限,那么您可以通过编写多个“select --”语句来解决问题,其中不同的过滤器写入不同的输出并硬编码输出中的前缀。否则,仅使用 ASA 是不可能的。

【讨论】:

除了硬“不”之外,当我遇到类似问题时,Alexander 还提供了一些很好的实用解决方法:***.com/questions/41233928/…【参考方案2】:

应该注意的是,现在您实际上可以做到这一点。不确定何时实现,但您现在可以使用消息中的单个属性作为自定义分区键,语法与 OP 要求的完全相同:foo/id/something/else

此处记录了更多详细信息:https://docs.microsoft.com/en-us/azure/stream-analytics/stream-analytics-custom-path-patterns-blob-storage-output

关键点:

只允许一个自定义属性 必须是对现有消息属性的直接引用(即没有像 prop1+prop2 这样的串联) 如果自定义属性导致分区过多(超过 8,000 个),则可能会为同一分区创建任意数量的 blob

【讨论】:

以上是关于Azure 流分析 -> 我真的对路径前缀有多少控制?的主要内容,如果未能解决你的问题,请参考以下文章

Data Lake Store 的流分析可能的输出路径前缀

是否可以将 azure 流分析与 mod 总线一起使用?

Azure 流分析作业对小数据来说很昂贵?

Azure 流分析作业无限运行

Terraform Azure 流分析作业 - 开始/停止

Azure 流分析 blob 输出 schemaHashcode、Guid 和 Number 变量指的是啥?