假设我们要构建一个简单的 Google Analytics 克隆,跟踪页面浏览量。我们将在跟踪网页浏览量的网站上放置 javascript。
- javascript可以直接将数据转储到数据库中而无需通过服务器(首选)吗?
- 我们显然想在那里转储大量数据。数十亿行。
- 数据库是否可以在尽可能少的干扰的情况下轻松扩展?(DynamoDB 的模型很完美:0 开销)。
- 我们可以做一些灵活的查询吗:按日期限制,按多个标签过滤/限制?
假设我们要构建一个简单的 Google Analytics 克隆,跟踪页面浏览量。我们将在跟踪网页浏览量的网站上放置 javascript。
javascript可以直接将数据转储到数据库中而无需通过服务器(首选)吗?
对于我所知道的数据库,这将需要浏览器客户端对数据库具有写访问权限,这样攻击者就很容易用一些简单的 JavaScript 污染您的数据库。如果这很痛苦,那当然是可能的。对于CouchDB或Cloudant 之类的东西,您只需使数据库全局可写(但不可读取或可编辑),因此客户端可以在事件发生时推送事件。
数据库是否可以在尽可能少的干扰的情况下轻松扩展?(DynamoDB 的模型很完美:0 开销)。
Cloudant 专门构建在BigCouch 之上,创建者构建它是为了处理每秒生成 PB 级数据的系统。所以,它可以扩展。它使用 Dynamo 的仲裁概念来最大化节点之间的一致性。
仅供参考:BigCouch 将于今年晚些时候与 CouchDB 合并。
我们可以做一些灵活的查询吗:按日期限制,按多个标签过滤/限制?
CouchDB、BigCouch 和 Cloudant 都使用 MapReduce 进行查询,这些查询在您的数据进入系统时构建,因此访问 MapReduce 查询的结果发生在O(log n)时间内。每个系统还提供了特殊方法,用于在发生更改时将有关更改的信息流式传输到数据库,这非常适合仪表板。