记录大量印象数据(5000 万 records/month)
Logging high volume of impression data (50 million records/month)
我们目前正在使用 MySQL 记录几个网站的印象数据,并且正在寻找更合适的替代方法来记录我们网站现在看到的大量流量。我们在MySQL数据库中最终需要的是聚合数据。
"high volume" 我的意思是我们每个月为此印象数据记录大约 5000 万条条目。重要的是要注意这个 table activity 几乎完全是 write 并且很少阅读。 (不同于 SO 上的这个用例:Which NoSQL database for extremely high volumes of data)。我们通过按范围对数据进行分区并执行批量插入来解决了一些 MySQL 性能问题,但总的来说,我们不应该使用 MySQL.
我们在 MySQL 数据库中最终需要的是 汇总的 数据,我相信还有其他技术更适合这种用途的大容量日志记录部分-案件。我已经阅读了有关 mongodb, HBase (with map reduce), Cassandra, and Apache Flume 的文章,我觉得自己走在正确的轨道上,但需要一些关于我应该关注的技术(或组合)的指导。
我特别想知道什么平台最适合大容量日志记录以及如何每天将 aggregated/reduced 数据集输入 MySQL。
一种方法可能是将原始印象日志简单地转储到平面文件中。每天都会有一个批次使用 MapReduce 程序处理这些文件。 MapReduce 聚合输出可以存储到 Hive 或 HBase。
如果您发现此方法有任何问题,请告诉我。大数据技术栈根据数据类型和需要聚合的方式有很多选择。
Hive 不存储信息,它只允许您使用 sql 语言 (HQL) 查询 "raw" 数据。
如果您的聚合数据足够小,可以存储在 MySQL 中,并且这是您数据的唯一用途,那么 HBase 对您来说可能太多了。
我的建议是使用 Hadoop(HDFS 和 MapReduce
- 创建包含印象事件的日志文件(文本文件)。
- 然后将它们移动到 HDFS(如果您需要近乎实时的解决方案,可以使用 kafka 或 storm 作为替代方案)。
- 创建一个能够读取和聚合日志的 MapReduce 作业,并在 reduce 输出中使用 DBOutputFormat 将聚合数据存储到 MySql。
我们目前正在使用 MySQL 记录几个网站的印象数据,并且正在寻找更合适的替代方法来记录我们网站现在看到的大量流量。我们在MySQL数据库中最终需要的是聚合数据。
"high volume" 我的意思是我们每个月为此印象数据记录大约 5000 万条条目。重要的是要注意这个 table activity 几乎完全是 write 并且很少阅读。 (不同于 SO 上的这个用例:Which NoSQL database for extremely high volumes of data)。我们通过按范围对数据进行分区并执行批量插入来解决了一些 MySQL 性能问题,但总的来说,我们不应该使用 MySQL.
我们在 MySQL 数据库中最终需要的是 汇总的 数据,我相信还有其他技术更适合这种用途的大容量日志记录部分-案件。我已经阅读了有关 mongodb, HBase (with map reduce), Cassandra, and Apache Flume 的文章,我觉得自己走在正确的轨道上,但需要一些关于我应该关注的技术(或组合)的指导。
我特别想知道什么平台最适合大容量日志记录以及如何每天将 aggregated/reduced 数据集输入 MySQL。
一种方法可能是将原始印象日志简单地转储到平面文件中。每天都会有一个批次使用 MapReduce 程序处理这些文件。 MapReduce 聚合输出可以存储到 Hive 或 HBase。
如果您发现此方法有任何问题,请告诉我。大数据技术栈根据数据类型和需要聚合的方式有很多选择。
Hive 不存储信息,它只允许您使用 sql 语言 (HQL) 查询 "raw" 数据。
如果您的聚合数据足够小,可以存储在 MySQL 中,并且这是您数据的唯一用途,那么 HBase 对您来说可能太多了。
我的建议是使用 Hadoop(HDFS 和 MapReduce
- 创建包含印象事件的日志文件(文本文件)。
- 然后将它们移动到 HDFS(如果您需要近乎实时的解决方案,可以使用 kafka 或 storm 作为替代方案)。
- 创建一个能够读取和聚合日志的 MapReduce 作业,并在 reduce 输出中使用 DBOutputFormat 将聚合数据存储到 MySql。