c# - 实时分析数据

标签 c# jquery asp.net node.js analytics

我计划为我的网站创建一个实时分析页面 - 有点像 Google Analytic,但实时数据会随着新用户在我的网站上加载页面等而发生变化。

主站点将使用 Asp.Net/C# 作为后端和 MS SQL 数据库编写,前端将支持 JavaScript (JQuery)、CSS3 等HTML5(如果需要)。

我想知道我可以使用什么方法来进行实时分析;如何将数据获取到分析页面,我可以使用什么高效的图表,以及通过快速输入/输出存储数据。

我首先想到的是使用Node.js - 我可以用它来实现实时分析页面吗?是个好主意吗?还有更好的选择吗?这有什么缺点吗?

我是否需要在服务器上运行一个 C# 应用程序来使用 Node.js 向网站发送/接收所有数据?

使用 MS SQL 数据库足够快吗?我是否需要实时存储所有数据,或者我可以每 x 秒/分钟将其存储在 block 中吗? (哪个效率更高?)

这说明了我对此事的初步想法 - Flow Diagram Of Live Analytic's

编辑:

我将在多个站点上使用该系统,一次可能会获得 10 次点击,达到大约 1,000,000 次(可能性很小,但仍有可能)。我希望能够扩展这个系统并使其适应所处的环境。

最佳答案

这实际上取决于实时数据需要有多“实时”。例如,我最近做了这个:

http://www.reed.co.uk/labs/realtime/

这显示进入系统的职位申请。显然,在繁忙期间发生的事情太多,无法实时查询主数据库 - 因此,我们所做的是查询滑动“窗口”并将其缓存在服务器上 - 这是最后 5 分钟的一部分事件。

然后我们将其回放给用户,就像它“现在”发生的那样。作为 SLA 的一部分(用户并不真正关心)有一点延迟可以使整个系统的可扩展性大大提高。

[编辑-进一步解释]

数据只是从基本的存储过程调用中检索 - 当然,像 reed 这样的大型系统每秒有数百个事务 - 因此我们不能为每个用户持续访问主集群。

我们所做的就是确保我们有一个当前窗口,在本例中是服务器上缓存的最后 5 分钟的数据。当客户端访问该站点时,我们会获取最后 5 分钟的数据,并像现在一样回放它 - 最终用户并不知情 - 但这意味着所有客户端都在读取缓存。一旦缓存超过 5 分钟,我们就使其失效,然后重新开始。这意味着每五分钟最多 1 个数据库命中 - 从而使系统的可扩展性大大提高(并不是真的需要如此 - 因为它只是为了好玩,真的)

关于c# - 实时分析数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11396036/

相关文章:

c# - 将 CSS 类设置为选定的 ASP.NET Listview 项

c# - 如何使用c#读取二进制文件?

c# - 使用 jquery ajax post 填充下拉列表并在 C# 页面上获取所选值

javascript - 如何在 ASP.NET C# 中针对 RangeValidator 错误调用 javascript 代码?

javascript - jQuery 不更改 Internet Explorer 中的类或 CSS

javascript - 联系表格和 IE8 问题 - 似乎无法停止提交表格

html - IE9 的 CSS 圆 Angular 问题

c# - Xamarin 应用程序在模拟器上构建和运行,但在真实手机上我遇到装配失败

c# - 新线程(方法)与新线程(新线程启动(方法))?

javascript - 在多个 div 之间切换可见性