实时分析数据

时间:2012-07-09 13:29:40

标签: 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秒/分钟将其存储在块中? (哪个更有效率?)

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

修改

我将在多个站点上使用这个系统,我可以一次获得10次点击到大约1,000,000(非常不可能,但仍然可能)。我希望能够扩展这个系统并使其适应它所处的环境。

2 个答案:

答案 0 :(得分:4)

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

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

显示进入系统的作业应用程序。显然,在繁忙时期实际上要实时查询主数据库有太多的事情 - 所以,我们所做的是查询滑动“窗口”并将其缓存在服务器上 - 这是最后5分钟的一小部分事件

然后我们将这个回复给用户,因为它正在“现在”发生。作为SLA(其中用户并不关心)的一部分具有一点延迟可以使整个系统更具可扩展性。

[编辑 - 进一步解释]

数据只是从一个基本的存储过程调用中检索出来的 - 当然,像reed这样的大型系统每秒有数百个事务处理 - 所以我们不能为每个用户持续点击主集群。

我们所做的就是确保我们有一个当前窗口,在这种情况下,服务器上缓存的最后5分钟数据。当客户端访问该站点时,我们会获得最后5分钟的数据,然后像现在一样发生回放 - 最终用户不是更明智的 - 但这意味着所有客户端都在读取缓存。一旦缓存为5分钟,我们将其无效,然后重新开始。这意味着每5分钟最多可以达到1分贝命中 - 从而使系统更具可扩展性(不是真的需要 - 因为它只是为了好玩,真的)

答案 1 :(得分:0)

您知道Google Analytics已经提供了实时用户跟踪功能。在Google Analytics(分析)网站的仪表板内。单击顶部栏上的主页按钮,然后单击左侧栏上的实时按钮。考虑到此服务的设计工作和质量,似乎这可能是尝试重新创建其服务的更好选择。如果您确实选择继续创建自己的服务,那么您至少可以使用他们的服务作为所需功能的基准。

像谷歌图表API https://developers.google.com/chart/一样使用Api是显示存储数据输出的好方法,缩短了开发时间。如果您提供有关您所期望的点击次数的更多信息,以及将托管此软件的服务器规模,那么更容易为您提供速度问题的答案。