1.背景
对于零售公司,不同门店经常会上新多种商品,此时就想要知道哪些门店上哪些新品在销售上是成功的,哪些是失败的,从而进行及时监控,便于货品调度和推广。
因此当前希望能实现对新商品销售的效果监控,业务人员能快速查询和获取新品零售的情况,做到心中有数。
当前遇到以下问题:
人工计算非常耗时且难以保证准确性和时效性,而大数据量且复杂的计算如果在前端报表中展示则会导致查询速度很慢,甚至出现无法查询的问题;
同时,由于销售单明细数据和维度数据分属于不同的两个数据系统来源,想要制作报表时无法直接进行跨数据库关联计算。
2. 方案介绍
2.1 接口取出销售明细数据并增量更新
使用 FineDataLink 将 NEC 系统中的销售明细数据通过接口取出,生成 ODS_NES_SELLS 表,以便后续和数据库系统中的维度数据关联和进行复杂业务计算。
由于销售单数据量较大,使用增量更新方式,通过每天定时调度执行任务,保证数据的实时性。
同时为了避免每天更新的接口数据量过大,造成系统压力,使用循环容器,将每天划分24个小时,再细化到每小时的0-,1-,2-,3-,4-,5-分钟,使每次抽取数据在十分钟的范围内,循环抽取数据,如下图所示:
2.2 数据跨库关联和复杂合并计算
DW 层将取出的销售数据表 ODS_NES_SELLS 带上门店名称信息后,进行增量更新:
DM层使用 FineDataLink 进行复杂的跨数据库关联和计算,将复杂的计算从 FineReport 转移到 FineDataLink 中减轻查询压力,同时实现了跨系统之间的数据关联。
将 DW层销售数据聚合求出每天每个门店每种商品的销量销售额,如下图所示:
然后带上 MySQL 数据库中的维度信息,例如商品类型、门店名称等信息,并生成销售明细宽表和不同商品大类的销售数据明细,如下图所示:
2.3 制作报表计算
使用 DM 层输出的销售明细数据表 DM_XPCGL_ZS 计算新品成功率并生成查询表单。
新品成功率可取各商品名称前百分之三十的门店当日销售额用于计算平均值,得到的结果就是成功线,门店当日销售额大于等于成功线的产品,则视为成功
3. 价值
将复杂的计算交给 FineDataLink 和 FineReport ,减少人工计算的耗时,提升准确性。
将 FineDataLink 中大数据量情况下复杂的计算转移到 FineDataLink 中,大大提升报表的查询速度,更好的帮助业务人员进行商品销售数据分析。
解决了报表制作看板时数据系统分裂的问题,实现了跨系统的数据取用。