谷歌分析数据库设计

6
我想了解一下Google Analytics的数据库设计,他们如何处理每小时甚至每分钟的海量数据。
假设他们有1亿用户,几乎每个用户每分钟都有300个计数器。对于一个用户,300个计数器在一个小时内会有18000行。一天则为432K行,近300万行。
我认为他们没有使用关系型数据库,但不确定...
您有什么建议吗?
此致敬礼

2
我非常确定谷歌使用一种定制开发的数据库叫做BigTable(http://en.wikipedia.org/wiki/BigTable)。 - Kane
Google说:

BigTable是建立在GFS(Google文件系统)之上的分布式哈希机制。它不是关系型数据库。它不支持连接或SQL类型查询。

它提供了查找机制来通过键访问结构化数据。GFS存储不透明数据,许多应用程序需要具有结构的哈希数据。

从这个评论中可以看出,关键字很重要。查找机制仅处理一个关键字。 似乎它内部有一个非常大的哈希表...
- Melih
2个回答

12

BigTable

你说得对,他们没有使用关系数据库。


1

High Scalability有一篇关于Google架构的总结在这里。虽然它没有直接讨论Analytics,但它展示了BigTable如何适应整个基础设施。我不确定Google模式的细节是否可用-正如文章所说,“基础设施可以成为竞争优势”-但我猜想它与硬件实现的绑定要比常规数据模型更紧密。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接