1

哪种存储大数据的方式对于快速搜索和报告使用情况更有效?

{ website: "google.com", 
  description: "google is a search engine", 
  vistits: [
    {date: 1334565455, referrer: "http://bing.com"}, 
    {date: 1334565455, referrer: "http://bing.com"},
    {date: 1334565455, referrer: "http://bing.com"},
    {date: 1134565455, referrer: "http://bing.com"},
    {date: 1334542455, referrer: "http://bing.com"},
    {date: 1334555455, referrer: "http://bing.com"},
    {date: 1334575455, referrer: "http://bing.com"},
    {date: 1324565455, referrer: "http://bing.com"},
    {date: 1334565455, referrer: "http://bing.com"},
]}

还是使用传统方式将访问存储在单独的表中,并以站点 ID 作为参考?

4

1 回答 1

2

这取决于。如果您有来自某些站点的多次访问,那么这些文档将会增长得非常快。最终,它们将太大而无法加载。

另一方面,如果您的报告工具总是需要加载所有访问,则将它们拆分为多个文档会降低性能。

尝试平衡这两个目标。例如,如果数组visits变得太大,则创建另一个文档并将其文档 ID 保存为continuedIn. 这样,您可以限制每个文档的大小,但仍然可以将很多信息放在一起。

如果您的报告工具按天汇总,您也可以尝试按天对访问进行分组(即一个文档包含某一天的所有访问)。这样,文档可以增长,但不会永远增长——只会增长一天。

最后,您可以在 N 次访问后停止记录(例如 100'000)。知道您的访问量是 100001 还是 100015 有什么意义?

注意:根据您所在的位置,只有在您获得每位访问者的书面许可的情况下,长时间记录 IP 地址和推荐人信息才是合法的。即使在您所在的国家/地区是合法的,一些访问者对跟踪他们的网站也很敏感。当然,他们对此无能为力。除了停止访问您、配置他们的网络浏览器以停止与您的服务器交谈或在博客和论坛中发表负面评论。

于 2012-10-18T13:24:23.993 回答