在 Azure 事件中心/blob 存储中查询事件
Posted
技术标签:
【中文标题】在 Azure 事件中心/blob 存储中查询事件【英文标题】:Querying events in Azure event hub/blob storage 【发布时间】:2019-03-23 06:29:12 【问题描述】:我正在研究捕获和存储系统事件的技术(以期将来可能实施一些“事件溯源”系统)。
我对 Azure 事件中心很感兴趣,因为我喜欢在 Azure Functions & Logic Apps 中构建处理服务并让它们由引发的事件触发。
我创建了客户事件中心并启用了“捕获”,因此我的事件和有效负载存储在 Azure Blob 存储(.avro 文件)中
我想知道如何,或者甚至是否能够查询事件,所以说我有一个流捕获我所有的“客户”交互,例如 Register/Update_Contact_Address 等.....我想搜索特定客户 ID 的所有事件,这是如何实现的?我见过流分析工作,但这些似乎是用于“实时数据分析”,而不是我能够使用来自应用程序的参数进行查询,比如我的客户 Guid。
我希望创建一个小型管理应用程序,允许我选择一个客户,并收集为该 ID 捕获的所有客户事件?
以下是我存储的示例事件(从 .avro 文件中提取)
"EventId": "51e3610f-8520-406d-8736-45f382bc5110",
"EventName": "ReceiveCustomerReview",
"ReceivedAt": "0001-01-01T00:00:00",
"Client": 1,
"customerGuid": "x45y57x2-5dcc-45c4-86c5-78942db363w1"
"Payload":
"stars": 5,
"comment": "OMG..... Beautiful product",
"ClientId": 1
【问题讨论】:
【参考方案1】:流分析具有一项新功能,您可以通过该功能按您选择的任何属性或字段将输出分区到 Blob 存储。那,用简单的 SQL 查询就很简单了。
【讨论】:
以上是关于在 Azure 事件中心/blob 存储中查询事件的主要内容,如果未能解决你的问题,请参考以下文章
“排队”的 Azure 事件网格 Blob 触发器事件消息存储在哪里,如何清除它们?
将文件上传到 Azure Blob 存储时没有触发事件网格事件——为啥?