我正在使用eventgrid,事件被写入主题,数据被处理并保存在cosmos db中。
现在我们正在尝试在 power bi 中构建一个报告,我们计划使用流聚合。是否可以聚合日志并将数据移动到 sql DB,例如每小时进入事件网格的日志数。
一种有状态操作,使用类似 Samza EventHubs 连接器的东西
最佳答案
一个想法如下:
将事件从事件网格推送到事件中心,并使用流分析将数据存储在 cosmos Db 中(如您已有的那样),并以 {date}/{time} 格式存储到 Blob 存储中。您可以将时间设置为每小时。
这样,您可以将按日期和每小时分区的日志存储在文件中。
现在,您可以在 blob 上触发 azure 函数,该函数将读取文件、对数组中的对象进行计数,并将计数写入 SQL DB 中。这样您的计数将更加由事件驱动,并且或多或少您将始终在数据库中拥有准确的信息
另一种方法是,您不存储到 SQL DB,而只在 PowerBI 中进行计数,因为还有一个用于 Blob 存储的连接器。
另一个想法是使用 Azure 流分析作业和时间窗口函数。但这里棘手的部分是分区,以及如何使其与 SQL DB 上的插入或更新正确配合。为此,我们需要了解一些实现细节。
关于c# - 聚合事件网格事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59089258/