05 系统面临的现实问题:大数据团队需要订单数据,该怎么办?
Posted 鮀城小帅
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了05 系统面临的现实问题:大数据团队需要订单数据,该怎么办?相关的知识,希望对你有一定的参考价值。
1.所谓大数据
每天如果有100万用户来访问你的APP,积累下来的一些浏览行为、访问行为、交易行为都是各种数据,这个数据量很大,可以称之为“大数据”。
大数据团队每天要做的就是尽可能的搜集每天100W用户在你的APP上的各种行为数据。比如:用户搜索了什么、点击了什么、评论了什么等。以及最为核心的订单数据。
2.大数据团队的数据来源可能带来的问题
大数据团队的数据包含了我们的订单数据,那么这些数据怎么去提取?
最low的做法:直接从订单库里select数据出来。
这种情况下是将订单数据库对外暴露,让大数据团队可以直接访问我们的订单数据库。这种方式下,每次都有几百行的大SQL从数据库里去查数据,这样造成的危害太大了。
问题:几百行的大SQL直接查库,是非常消耗性能的。按照每个月新增千万级订单数据,在不考虑有分库的前提下,很快就能达到亿级数据。而这时候如果跑几百行的大SQL,会导致数据库CPU负载很高,磁盘IO负载很高。而这些负载很高,将导致我们正常的订单系统执行的CRUD操作性能下降。
而此时,如果处在并发访问的高峰期,那么订单系统能承受的了吗?这时一个查询的TPS可能会被拉长到几秒,那么用户的体验如何?系统能承受那么多堆积的请求吗?TPS慢了,单位时间内打在数据库的QPS是不是也会累加起来,一旦超过负载临界点怎么办?
解决方案:
- 订单系统定时用MQ将DB数据推到数仓
- DB主从复制,通过binlog将数据复制到从库,个别从库给大数据团队专用
以上是关于05 系统面临的现实问题:大数据团队需要订单数据,该怎么办?的主要内容,如果未能解决你的问题,请参考以下文章