作者OpenGoodHate (什麽东西什麽东西)
看板Database
标题Re: [SQL ] 大量LOG记录架构选择
时间Tue May 12 11:25:21 2015
感谢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
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 114.34.98.175
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Database/M.1431401125.A.69A.html
1F:推 popcorny: 你的这个做法很好,也是常用的做法。 05/12 15:14
2F:→ popcorny: 也可以参考LogStash或是Fluentd 05/12 15:14
3F:→ popcorny: 定时把log捞回本地端存放 可以改成放blobstorage 05/12 15:16