Re: [SQL ] 大量LOG记录架构选择

楼主: OpenGoodHate (什么东西什么东西)   2015-05-12 11:25:21
感谢P 大提供建议
log 的项目只是一些机器记录的参数
(可以想像是Apache LOG 这样,只是是一个人一秒一笔)
目前想到一个方法就是直接每个人每周或每月开一个文字档写入
然后再用LOG PARSER 去处理剩下的事
应该比较能让架构单纯化
机器打算租用标准A2
再定时把log 捞回本地端存放
这样的预估量应该在初期是够的
※ 引述《popcorny (毕业了..@@")》之铭言:
: ※ 引述《OpenGoodHate (什么东西什么东西)》之铭言:
: : 数据库名称:MSSQL / MYSQL
: : 数据库版本:2014 / 5.5.22
: : 内容/问题描述:
: : 其实还在架构选择中
: : 就是目前有个需求是要记录每个USER每秒产生的一笔LOG
: : 如果是这样
: : worst case 就是一个user 一天要产出86400笔记录
: : 有1000个user 的话不就一天要记录86400000笔
: : 没一个月资料表应该就破亿笔
: : 想请问如果有log 需求的话通常会怎么写
: : 这个log 是要可以随时被查询的
: : 若是算保存3个月(或1个月)的话该怎么处理
: : 因为目前的主机打算租用在Azure,服务环境应该就是ASP.NET
: : 所以也有硬盘容量限制
: : 有想过自动分表,但是以月份分表难保不会随着使用着的成长会有更大量的资料
: : 或是这个情况要考虑NOSQL 的解决方案??
: : 目前是全新案子刚起步,所以要NOSQL 可能也要等目前架构真的爆炸才会换吧
: 不知道你的Log是什么样的Log
: 使用者行为?
: 还有你打算怎么查询?
: 通常这种Log或是称为Raw Log
: 不太适合放在数据库太久
: 顶多一周了不起
: 你应该可以把他从Raw Log转成Aggregated Data
: 例如如果你想提供查pageview
: 可以根据你想查询的分类每个小时算个统计
: 例如文章观看次数
: 你可以把每个小时每篇文章的观看次数放在一个aggragated table
: 然后rawlog就超过七天就把它删掉
: 当然你马上删也可以 但是我通常会让他有个Time To Live
: 让资料有机会re-aggregate
: 如果你真的想要把资料存超过七天
: 建议可以每天的凌晨把前一天的log dump出来
: 存到云端storage
: 你用azure可以用blobstorage
: 如果用amazon可以用s3
: 之后可以用其他方法对资料做adhoc query
: 当然非数据库的资料查询又是另外一个故事了
: 有hive/pig/impala/presto/spark sql等等选择 XD
作者: popcorny (毕业了..@@")   2015-05-12 15:14:00
你的这个做法很好,也是常用的做法。也可以参考LogStash或是Fluentd定时把log捞回本地端存放 可以改成放blobstorage

Links booklink

Contact Us: admin [ a t ] ucptt.com