加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

数据聚合和交易明细查询分析

发布时间:2020-12-13 22:00:17 所属栏目:百科 来源:网络整理
导读:需求 医院、供货商、监管单位通过交易明细查询功能,查询出指定时间段内历史 交易清单。 监管单位,查询目的是为了监督。 医院、供货商查询目的,查询与自己相关交易信息。 1.2 分析 1.2.1 多表查询 主查询表:yycgdmx(采购单明细表) 关联查询表: useryy(

需求

医院、供货商、监管单位通过交易明细查询功能,查询出指定时间段内历史 交易清单。

监管单位,查询目的是为了监督。
医院、供货商查询目的,查询与自己相关交易信息。

1.2 分析

1.2.1 多表查询

主查询表:yycgdmx(采购单明细表)

关联查询表: useryy(内链接)、yycgd(内链接)、usergys(内链接)、ypxx(内链接)、入库信息表(【因为入库的采购单信息少于采购单表信息所以数据不完整,(并不是所有的采购单都入库了)所以使用】外链接)、退货信息(外链接)、结算 信息(外链接)

select 

yycgdmx.*,yycgdrk.rkl,yycgdrk.rkje,yythdmx.thl,yythdmx.thje,yyjsdmx.jsl,yyjsdmx.jsje
 from (
select 
   useryy.mc useryymc,yycgd.bm yycgdbm,yycgd.id yycgdid,usergys.mc usergysmc,yycgdmx.ypxxid,ypxx.*,yycgdmx.cgl,yycgdmx.cgje

  from yycgdmx2014 yycgdmx,yycgd2014 yycgd,useryy,usergys,ypxx
 where yycgdmx.yycgdid = yycgd.id
   and yycgd.useryyid = useryy.id
   and yycgdmx.usergysid = usergys.id
   and yycgdmx.ypxxid = ypxx.id
   )yycgdmx

   --外链接入库信息
   left join yycgdrk2014 yycgdrk on yycgdrk.yycgdid = yycgdmx.yycgdid and yycgdrk.ypxxid = yycgdmx.ypxxid
   --外链接退货信息
   left join yythdmx2014 yythdmx on yythdmx.yycgdid = yycgdmx.yycgdid and yythdmx.ypxxid = yycgdmx.ypxxid

   --外链接结算信息
   left join yyjsdmx2014 yyjsdmx on yyjsdmx.yycgdid = yycgdmx.yycgdid and yyjsdmx.ypxxid = yycgdmx.ypxxid

分析数据量:
采购明细表:上千万
入库信息:上千万
退货信息: 少
结算信息:上千万

三张大数据量的表关联查询,如果作统计,在三张表关联的基础上实现,速度慢,。

设想:如果将四张表的数据全部放在一张表,单表查询速度提高很大。

1.2.2 数据聚合意义

数据聚合的意义:
案例:
统计网站页面的访问量。
统计每一年每一个页面访问量。

实现方法:
数据采集:
完成原始数据(统计的来源数据)采集。
当用户点击页面时,需要记录用户点击信息(用户客户端ip、访问时间、访问页面的地址)
用户客户端ip:统计出用户来源于哪个地区
访问时间:统计出网站访问时段(比如哪些时间段访问量大)
访问页面的地址:统计出用户的喜好,哪些页面用户访问多。

如果对原始数据直接进行统计,速度很慢,因为原始数据量很大,所以说要对原始进行数据分析,分析后进行数据聚合。
数据聚合结果:
按分钟聚合:
将原始数据按分钟聚合后存储到单独的分钟聚合表:
聚合时执行一次小范围的统计。
时间(年、月、日、时、分)、XXX页面、访问量(这一分钟的访问总量)
时间(年、月、日、时、分)、XXX页面、访问量(这一分钟的访问总量)
按小时聚合:
将原始数据按小时聚合后存储到单独的小时聚合表:
从分钟聚合表中执行一次小范围的统计。
时间(年、月、日、时)、XXX页面、访问量(这一小时的访问总量)
时间(年、月、日、时)、XXX页面、访问量(这一小时的访问总量)
….
按天聚合:
近年聚合:

通常情况下,单独开发统计系统,后台开始定时任务进行专门数据采集、数据分析、数据聚合。

1.2.3 本系统数据聚合方法

目标:将采购单明细信息、入库信息、退货信息、结算 信息聚合到一张表中,提高查询统计的速度。

设想:在采购单明细表中添加入库信息、退货信息。。。。字段?
这种方法不合理,将统计分析业务功能和采购业务功能使用一张表存储信息,耦合性较强,可扩展性较差。

采用方案:
新创建一张交易明细表YYBUSINESS+4位年份:
记录采购明细、入 库信息、退货信息、结算 信息。
唯一约束:采购单id和药品id

聚合方法如下:


1.2.4 使用触发器进行数据同步

如果原始表和目标表在一个数据库中,建议使用触发器进行数据同步:
原始表插入时向目标表插入
原始表修改时更新目标表记录
原始表删除时删除目标表记录

注意:如果触发器仅仅数据同步,建议使用触发器,如果触发器中有业务逻辑,不建议使用触发器。
:new:在触发器中的一个关键字,表示新记录。
在insert和update触发器中使用。

在delete触发器中:old,:old表示旧数据。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读