c# - 聚合事件网格事件

标签 c# azure stream azure-eventgrid

我正在使用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/

相关文章:

c# - 内联 if 语句以确定 i++ 或 i-- 在 for 循环中递增

c# - 如何使用堆栈重写递归方法?

sql-server - PowerShell New-AzSqlDatabaseImport - 0 : The storage account cannot be accessed. 请检查存储帐户名称和 key ,然后重试

azure - C1 CMS - Azure 上安装了 IIS WebSocket 支持错误

java - 是否可以使用多个 java ObjectOutputStream 对象写入单个 java ObjectInputStream 对象?

C# - StateObject 类 - 位置

c# - 从 Service Fabric 内部关闭 StatelessService 实例的最佳实践

cordova - 在 azure 移动服务(.net 后端)上使用 Ripple 身份验证失败

java - 在并行流中遇到空对象时添加日志

java - MPEG-TS PSI解析