考虑一个每天有大约 50K 独立访问者的网站。现在,我想使用像素跟踪来跟踪访问网站的用户。在开始任何开发之前,我希望决定我将用于项目的存储数据库。
显然,当某人(管理员)试图查看分析数据时,这将是一个写入过多且搜索很少的写入密集型数据库。
那么,我应该为这个项目使用什么类型的数据库 - mysql 或不使用 sql ?
如果我不清楚我的疑问,请发表评论。
谢谢 !
考虑一个每天有大约 50K 独立访问者的网站。现在,我想使用像素跟踪来跟踪访问网站的用户。在开始任何开发之前,我希望决定我将用于项目的存储数据库。
显然,当某人(管理员)试图查看分析数据时,这将是一个写入过多且搜索很少的写入密集型数据库。
那么,我应该为这个项目使用什么类型的数据库 - mysql 或不使用 sql ?
如果我不清楚我的疑问,请发表评论。
谢谢 !
从扩展的角度来看,最简单的事情是将信息写入文件(简单的日志文件)。然后您可以使用Hadoop并处理数据。首先是无集群(嵌入式模式下的 Hadoop)。然后,您可以添加任意数量的节点。
但关键问题也是你想如何处理你的数据。那么你的分析期望是什么。你想可视化你的数据吗?你想多快得到你的答案?新数据应该以多快的速度集成。你总是有同样的问题或想玩数据?想与其他一些数据混合,等等......
Mysql 在分析工具方面可能更成熟。只要您的数据大小不太大,它可能会更快。使用 Hadoop,您可以使用Hive和 consorts 来帮助您处理数据,但可视化可能不是那么简单。
鉴于提供的负载估计和合理的保留政策,比如 2 年的数据,我相信常规的关系数据库应该这样做。MySQL 支持表的分区和分区的归档。
用户访问数据自然可以按日期划分。对这类数据的分析查询通常也涉及日期或日期范围。为了避免管理太多太小的分区的性能问题,我建议按周进行范围分区。
如果您的数据增长了 2 个数量级(每天 1000 万条记录而不是 100K),您应该认真考虑一些大数据解决方案。Flume/Hadoop/Hive 的组合将允许以最少的修改重用您的分析查询。