Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/318.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 实时分析数据_C#_Jquery_Asp.net_Node.js_Analytics - Fatal编程技术网

C# 实时分析数据

C# 实时分析数据,c#,jquery,asp.net,node.js,analytics,C#,Jquery,Asp.net,Node.js,Analytics,我正计划为我的网站创建一个live analytics的页面——有点像Google analytics,但真实的live数据会随着新用户在我的网站上加载页面而改变 主站点将使用Asp.Net/C作为后端编写,并带有MS SQL数据库,前端将支持JavaScript(JQuery)、CSS3、HTML5(如果需要)等功能 我想知道我可以用什么方法来进行现场分析;如何在分析页面上获取数据,我可以使用什么高效的图形,并使用快速输入/输出存储数据。 我想到的第一件事是使用Node.js——我可以用它来实

我正计划为我的网站创建一个live analytics的页面——有点像Google analytics,但真实的live数据会随着新用户在我的网站上加载页面而改变

主站点将使用Asp.Net/C作为后端编写,并带有MS SQL数据库,前端将支持JavaScript(JQuery)、CSS3HTML5(如果需要)等功能

我想知道我可以用什么方法来进行现场分析;如何在分析页面上获取数据,我可以使用什么高效的图形,并使用快速输入/输出存储数据。

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

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

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

这说明了我对此事的最初想法-

编辑:


我将在多个网站上使用这个系统,我可能一次获得10个点击率,达到1000000左右(可能性很小,但仍然有可能)。我希望能够扩展此系统并使其适应所处的环境。

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


使用像谷歌图表Api这样的Api是显示存储数据输出的一种好方法,可以减少开发时间。如果您提供有关exspect点击次数的更多信息,以及该软件将托管的服务器的规模,那么您将更容易回答速度问题。

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

使用像谷歌图表Api这样的Api是显示存储数据输出的一种好方法,可以减少开发时间。如果您提供有关您所查看的点击次数的更多信息,以及该软件将托管的服务器的规模,那么您将更容易回答速度问题。

这实际上取决于实时数据的“实时”程度。例如,我最近做了这样一件事:

这显示了进入系统的工作申请。显然,在繁忙的时间里,要真正实时查询主数据库,要做的事情太多了——因此,我们要做的就是查询一个滑动的“窗口”并将其缓存在服务器上——这是过去5分钟事件的一部分

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

[编辑-进一步解释]

数据只是从一个基本的存储过程调用中检索出来的——很自然,像reed这样的大型系统每秒有数百个事务——因此我们不能为每个用户一直访问主集群

我们所要做的就是确保我们有一个当前窗口,在本例中是缓存在服务器上的最后5分钟的数据。当客户端访问站点时,我们会获取最后5分钟的数据,并像现在一样回放数据-最终用户并不明智-但这意味着所有客户端都在读取缓存。缓存使用5分钟后,我们将使其失效,然后重新启动。这意味着每五分钟最多可点击1 DB,从而使系统具有更大的可伸缩性(并非它真的需要,因为它只是为了好玩,真的)

这实际上取决于实时数据的“实时”程度。例如,我最近做了这样一件事:

这显示了进入系统的工作申请。显然,在繁忙的时间里,要真正实时查询主数据库,要做的事情太多了——因此,我们要做的就是查询一个滑动的“窗口”并将其缓存在服务器上——这是过去5分钟事件的一部分

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

[编辑-进一步解释]

数据只是从一个基本的存储过程调用中检索出来的——很自然,像reed这样的大型系统每秒有数百个事务——因此我们不能为每个用户一直访问主集群

我们所要做的就是确保我们有一个当前窗口,在本例中是缓存在服务器上的最后5分钟的数据。当客户端访问站点时,我们会获取最后5分钟的数据,并像现在一样回放数据-最终用户并不明智-但这意味着所有客户端都在读取缓存。缓存使用5分钟后,我们将使其失效,然后重新启动。这意味着每五分钟最多可点击1 DB,从而使系统具有更大的可扩展性(不是它真正需要的)