首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何为统计服务设计数据库?

如何为统计服务设计数据库?
EN

Database Administration用户
提问于 2013-09-17 14:52:08
回答 1查看 1.9K关注 0票数 1

我将在RoR上创建统计数据。我有三种模式:用户,项目和渠道。用户拥有项目,而项目有许多渠道。现在,我正在使用MySQL设计所有这些模型。

该业务的目的是为用户提供每个信道不同参数的时间变化。例如:谷歌广告频道每天有1000个节目,每天100次点击,来自谷歌广告公司的两个人当天买了些东西。所以我可以把所有的信息存储在专栏里,比如:频道“谷歌广告”,显示: 1000,点击: 100,购买: 2。但是我需要按天发布,请给我一个如何设计这样的数据库的建议?也许我该用另一个解决方案,也许是NoSQL?

Upd.

输入:用户每天填写来自不同来源的广告的数据(我称之为渠道,例如: Google ):印象和点击的数量(稍后的数据将自动导入使用API)。输出:各种统计,如图形和CTR的不同渠道,所有渠道等。

EN

回答 1

Database Administration用户

回答已采纳

发布于 2013-09-17 18:33:16

我建议您为每个属性创建一个单独的表。就像这样

代码语言:javascript
复制
table impressions
-channel_id
-date timestamp
-other attributes like ad_id

table clicks
-channel_id
-date timestamp
-ad_id

对于每一个事件,您只要做一个插入,以显示统计数据也是非常有效的-它只是索引扫描与计数或聚合函数。而且,这种方法扩展得很好--您可以很容易地分割这些表。或者用nosql解决方案替换它。对于这样的任务,我推荐HBase --这个数据模型自然会在HBase模式中转换,而且HBase非常擅长范围扫描。

UPD:我看到你的问题更新了,所以我需要澄清。基本表,这些表仍然可以用来存储事实。在它们之上,您可以立即生成图表和报告。如果您关心性能,人们通常会预先收集数据。因此,如果您的员工需要5/10/30分钟的决议,您可以将其汇总为5/10/30_ into _table,以便进行快速报告。

这批处理旧数据需要时间。如果它不适合您的SLA,现代男性使用CEP引擎,如twitter风暴,以分析和汇总这个表的实时。或者,您只需缓冲一分钟,聚合它们,然后存储。我不知道RoR如何适合这个角色,我也不知道您的需求。但我认为这是另一个故事。

票数 1
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/50064

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档