【发布时间】:2016-04-29 00:12:56
【问题描述】:
和许多人一样,我对 NoSQL 世界并不陌生。我做了很多研究,但我仍然只缺少一点,我找不到正确的答案。
系统简介:
我正在构建一个系统,用于收集不同网站上的访问者数据。每次访问都是数据存储中的一个实体,具有设备类型、IP、访问时间等属性。
数据存储区将有数百万次访问。
我的问题是如何将这些数据提供给客户。我的数据在数据存储中设置为“访问”实体。
现在,当客户登录时,我不想向他们展示数百万条记录。例如,我想向他们展示一般统计数据。比如移动设备上的访问次数、某个时间范围内来自特定国家/地区的访问次数等等。
现在,由于我是 NoSQL 数据库的新手,我不确定应该如何在客户的仪表板中显示这些统计信息。
据我所知,Datastore 不支持聚合,例如获取查询结果的计数。
我查看了 BigQuery,但 BigQuery 适用于 Datastore“备份”,我需要实时提供数据,而无需手动进行备份。
我还阅读了有关计数器和分片计数器的信息,这是正确的方法吗?每个跟踪组的每个属性的每个客户都有一个计数器?并以这种方式显示总数?对于一个简单的目的来说,这听起来太多了。
任何可以让我朝着正确方向前进的意见或解释都将受到高度赞赏。
最好的问候
【问题讨论】:
-
您可以将数据流式传输到 bigquery,Datastore 可能不适合进行复杂分析
-
我想总结一下。如果我只需要 count aggr 函数,我可以使用 GAE “datastore statistics api”。但如果我需要做更多的事情,更多的聚合函数和更复杂的实时查询,我想我需要 BigQuery(并将数据从 Datastore 流式传输到它)?
-
好吧,只是使用 bigquery,从你的解释来看,我认为你不需要将数据放入数据存储区,只需 bigquery
-
我不认为数据存储对于您想要完成的任务来说是一个好的存储机制。云平台有谷歌搜索API,它允许分面,但即使是这种机制也已经落后于时代。您是否考虑过使用弹性搜索? elastic.co/products/elasticsearch
-
@marcadian 我需要从另一个来源(如 Datastore/Cloud Storage cloud.google.com/bigquery/loading-data987654322@)将数据加载到 bigQuery
标签: google-app-engine google-cloud-datastore nosql-aggregation nosql