游戏日志存储与查询系统的设计

bluemaths 2015-05-25 10:49:51
大家,有没有做过游戏日志分析系统的?这样的需求

(1)游戏日志有一定的格式,以字符串的形式存起来
(2)日志量比较大,可能会上T级别
(3)日志的类型不固定,即可能登录的时候有一条日志,消费的时候有一条,游戏中操作的时候有一条,这样就有3种类型的日志;但不同类型的日志会有固定的格式。例子

登录日志; time=20150525|id=1234|name=abcd
消费日志: time=20150525|id=4567|itemid=1234|itemnum=10|cost=100

固定格式是 key=value,以“|” 分隔各个键值对。

(3)要依据日志的内容进行一些数据统计,具体就是解析日志的内容,获取一些统计信息。
(4)最好能做实时的统计,查询所有日志内容,得到相应的结果

有没有什么比较好的方案?

当前一个比较传统的方式
(1)以mysql存放日志串
(2)以系统任务的方式,定期调用php脚本分析统计昨天的日志信息,存放到一个数据库表里
(3)查询时,统计每天的分析结果得到最后结果。
...全文
958 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
Yuki_kun 2016-04-23
  • 打赏
  • 举报
回复
很不喜欢存日志串的方式,因为解析比较麻烦,别人使用起来也容易出错。 比较倾向在数据库里存字段... 如果有多种不同结构的日志,直接放在不同的表里好了。
carawola 2015-09-13
  • 打赏
  • 举报
回复
大家有没有好注意哪。。。。。。。。。。。。
糖几颗的 2015-05-26
  • 打赏
  • 举报
回复
你现在的方案是我之前有使用过的...但是解析很麻烦, 我之前参与的项目是写在文件里的... 之后, 我主导的项目, 也是用的mysql, 但是没有直接写字符串, 而是, 写的字段.. 这样统计和查询方便了非常多... 少了解析那一步.. 程序那边, 记录日志的时候, 根据字段插入数据, 而不是将所有数据拼接成字符串整个插入.. 不知道我说清楚了没... 这种方式, 其实满足需求是没问题的了. 用mysql的事物和存储过程去做统计... 但是我在项目过程中, 很苦恼的一点就是, 日志的字段不可能一次性就做的很完整, 所以需要不定时的去增加数据库的字段, 程序代码里也要增加... 上版本的时候, 两边一定要同步上, 否则就会出错...记录不了日志.... 我不是dba所以不会动态的去增加字段, 算是一个小小的缺点... 现在我用的是mongo数据库... 本身就是key - value结构nosql.. 所以记录日志就方便很多, 数据库这边是不需要规定字段的, 程序不管怎么增加字段都没问题... 数据库是不需要修改什么的... 然后统计的话, 就需要手动或者自己写脚本来实现.... 其实方式有很多, 而且没什么压力和性能上的问题, 只需要找到适合自己项目的方式就行...

8,305

社区成员

发帖
与我相关
我的任务
社区描述
游戏开发相关内容讨论专区
社区管理员
  • 游戏开发
  • 呆呆敲代码的小Y
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧