【问题标题】:Live Analytic Data实时分析数据
【发布时间】:2012-07-09 22:31:21
【问题描述】:

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

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

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

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

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

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

这说明了我对此事的初步想法——

编辑:

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

【问题讨论】:

  • 这大部分似乎取决于您拥有什么样的流量。您目前知道您每天有多少观看次数等等吗?
  • 还没有,站点还没有创建。但它可能从每天 10 次到 1,000,000 次不等 - 我计划在多个站点上使用这个系统。

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


【解决方案1】:

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

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

显示进入系统的工作申请。很明显,在繁忙期间发生了太多事情,无法真正实时查询主数据库——所以,我们要做的是查询一个滑动“窗口”并将其缓存在服务器上——这是最后 5 分钟的一部分事件。

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

[编辑-进一步解释]

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

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

【讨论】:

  • 我喜欢你制作的系统,正是我想要/需要的那种东西。您能否详细说明您是如何实现这一目标的?它背后的技术等?可以在最短的时间窗口内完成什么? 5 分钟对我的网站来说似乎有点太长了。附言。您对该网站使用什么地图系统?
  • 太棒了,这一切都很方便,花花公子什么的。但是网站是如何准确获取数据的呢?是否像一次获取 5 分钟的所有数据一样简单,将其存储在内存中,然后在 5 分钟内均匀地显示光点,然后丢弃数据并获取接下来的 5 分钟?抱歉所有问题 - 只是想确保我对此事有把握:)感谢您迄今为止的所有帮助。
  • 太棒了!感谢您的帮助,非常感谢 :)(您在 reed 网站上使用的是 Google 地图吗?)
【解决方案2】:

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

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

【讨论】:

    猜你喜欢
    • 2023-03-14
    • 1970-01-01
    • 2019-04-26
    • 1970-01-01
    • 2020-09-28
    • 1970-01-01
    • 1970-01-01
    • 2021-03-14
    • 1970-01-01
    相关资源
    最近更新 更多