首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Azure中使用.Net为大数据创建实时仪表板的最有效方法是什么?

在Azure中使用.Net为大数据创建实时仪表板的最有效方法是什么?
EN

Stack Overflow用户
提问于 2020-02-15 18:06:12
回答 1查看 287关注 0票数 1

假设的简化情景:

我有一个Asp.Net核心3API,接受必胜客订单从Javascript。一个比萨饼被订购,我在C# API中反序列化对象。我现在有一个“必胜客”:

代码语言:javascript
复制
{
   "name": "Margherita",
   "date": "20201502",
   "amount": "10"
   "ingredients": ["tomato", "mozzarella"]
}

我每天收到1亿份比萨饼订单,我需要一个显示订单的实时仪表板,还有一个菜单来搜索历史数据,比如“昨天”、“本月”、“去年”等等。

我还需要一个清单,在一个特定的时间框架内,或最主要的成分使用的比萨饼。

:使用Microsoft和C#实现这种结果的最现代、最有效的方法是什么?

有太多的队列,数据工厂,湖泊,存储,流等分析服务可供选择。

我能想到两种方法:

1)

  • 将每个比萨订单发送到一个队列,如Service队列、AzureStorage队列或事件中心
  • 将保存在内存中的对象暂时排出队列
  • 在内存中有10k或更多的元素之后,以这样的方式聚合它们以满足未来的查询,并将它们保存到CosmosDB中,而不是保存每一个订单。
  • 这在将来的查询中效率很低,限制了CPU,但节省了存储成本,因为没有存储单个对象,而只是聚合数据。

2)

  • 将每个比萨饼像事件中心或流分析一样发送到队列中
  • 将每个对象保存到“大数据”的存储区
  • 使用Azure或类似的Apache查询数据
  • 创建一个工作者角色,该角色在每分钟查询数据集并创建单个聚合记录,例如使用"date“作为PartitionKey在仪表板中显示
  • 不确定删除数据以节省存储成本是否有意义

我认为第二条道路是可行的,但我还没有决定什么是最适合于简单和成本效益的任务的“堆栈”。

EN

回答 1

Stack Overflow用户

发布于 2020-02-16 18:09:04

我建议您考虑实现一些遵循Lambda体系结构的技术。基本上,这是分开的热路径和冷路径技术。这是一个很好的引言,不过我不会只关注James提到的技术。

如果您有一些常设查询,如“在滚动5分钟窗口中订购的比萨饼数量”,则Analytics可以输出这些聚合的恒定流。

然后,比萨饼订购事件也可以存档在Blob存储中,以便摄入到某些批处理技术中。例如,每天或每小时加载Azure SQL数据仓库(最近更名为Azure Synapse Analytics )。然后你的应用程序可以以一种临时的方式运行诸如“上个月最受欢迎的比萨饼配料”之类的查询。将这些热路径和冷路径技术结合起来,应该比尝试一种工具来做任何事情更有效。

另一个选择是星火。我建议在中查看Spark流。您应该能够进行流聚合,还可以为旧时间段的批处理查询加载Delta表。这个文章可以给出一个例子。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60241630

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档