大家好,最近公司运行的商城项目需要做数据分析,因为后台的订单数据(不只是订单)都是用mysql来储存的,所以想采集数据到mongodb或者elasticsearch进行数据分析。目前想到的有两种实现方式:
1、埋点,这种不会对数据库产生压力,但是需要在项目多个位置留下埋点代码,在开发维护上感觉比较麻烦,有可能存在采集数据死角,同时采集的也不是用户行为的数据,觉得没什么需要这样做。
2、直接读数据库,因为公司的mysql数据库读写权限掌握在自己手中,只要访问数据库把数据取出来更新到mongodb就行了。但是这个方法需要把mysql数据库的部分数据全部取出来更新一遍,并定时访问。增大了生产环境数据库的访问压力。
请问大家采用哪一种方案比较好,或者说是否有一个更好的方案呢?
PS:自己了解到的,还可以通过mysql的binlog获取数据
我说下我们的做法,我们每天的交易数据量是200万以上,核心在后半夜交易量极少的情况下做跑批清算,这个动作每天只做一次,在早上上班之前跑出结果,然后由清算人员进行人工审核。数据库用的是oracle10g,公司购买的正版。即使是埋点,从运营角度出发,也是要写入日志库,然后再做二次分析。