统计订单数量,销售订单统计

  统计订单数量,销售订单统计

  java基础教程栏目带大家了解如何便捷的统计订单收益。

  如何解决写爬虫IP受阻的问题?立即使用。

  

引言

  统计订单收入是电商APP的老生常谈的问题。一般要求是用户收入日报/月报/年报。这些基于报告的数据给表格设计和程序设计带来了巨大的挑战。传统的聚集查询语句的查询时间会随着收入表数据的增加而逐渐变长。这时候就需要思考如何设计收益表来更高效的查询。什么样的设计可以让统计收入变得简单?

  

需求

  

效果图

  

具体需求

  收入类型如下:自购订单收入、分享订单收入、分销收入、活动收入统计当日收入,当月收入按放映时间计算。

思考

  

设计思路

  订单肯定是需要的。编写或修改订单时,同步编写修改后的收入单。订单表格中只会记录自购和分享订单,分销和活动的收入只会写入特殊业务中的收入表格。然后,以天为维度。创建用户收入的每日报告。写下用户当天收入的单个记录。查询用户日/月/年收入统计时减少数据量。以单个用户为例,一个月拆分用户只能产生31条数据,这是一个可控的增长速度。如果使用利润表,由于利润表中的数据量与用户的订单数是一一对应的,如果用户的订单数很大,表格就会很大。当用户数量在早期增加时,这种方法可以用来避免大量的数据

  

可见问题

  同步每日财报的时机是个问题,因为原始订单的操作非常复杂,需要同步写收益和计算每日财报的数据,代码耦合度太高。有什么办法可以通过财报把每天的财报异构化?收入虽然写进了日报表,但是可能要查询几次SQL语句才能达到效果图要求的效果。有什么办法可以在不影响程序效率的情况下,尽可能减少聚合SQL?

实现

  总结了以上问题。我开始收集数据,并最终采用canal RocketMQ作为异构方案。

  

技术栈

  简单介绍以下两个技术框架:

  Canal:主要目的是提供基于MySQL数据库增量日志分析的增量数据订阅和消费。RocketMQ:一个开放源码的分布式消息系统,基于高度可用的分布式集群技术,提供低延迟和高度可靠的消息发布和订阅服务。注:阿里云的家庭桶,我用的MQ和mysql都是阿里云的。如果是自建服务器,可能会有差异。我会试着在后面做标记。

  

方案流程

  在编写或修改损益表的同时,canal对mysql损益表的binlog日志进行监控。canal检测到变化,组装变化后的JSON消息,发送预先在RocketMQ中定义的主题。节目消费话题,异质收益日报。

canal配置部分

  请参考运河安装的官方文件。

  解压后可以得到一个canal文件夹,里面包含三个目录。

  Bin:存储启动和重启脚本conf:存储核心配置文件lib:存储核心jar包。我们需要重点关注conf文件夹中conf/canal.properties的核心配置文件和conf/example/instance . properties的单个监控节点的配置文件。

  

conf/canal.properties

   # tcp,kafka,RocketMQ,这里默认是tcp读取模式,RocketMQ需要改成RocketMQ模式。

  canal.serverMode=RocketMQ

  #如果是阿里云的RocketMQ,需要配置以下两个键,AK/SK

  canal.aliyun.accessKey=

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: