本发明涉及计算机数据库系统技术领域,尤其涉及的是一种实现多地区数据统计的数据库系统和方法。
背景技术:
目前,实现多地区多国家数据统计分析,大多利用一地区或者国家部署服务器,利用服务器shell脚本定时计算产生数据报表。一个地区或者一个国家部署服务器,独立计算数据报表,主要存在以下几个缺点:
(1)数据分散,无法做到随时将任意a地区和任意b地区合并计算;
(2)数据互通性差,数据分散于各个地区,后续的数据分析或者数据提取不方便;
(3)管理复杂,由于采用多地区独立计算统计报表,造成管理成本增加;
(4)可扩展性差,现有的技术想实现增加一个地区或者国家的数据统计,需要增加对应的服务器,迁移程序等。
因此,现有技术存在缺陷,需要改进。
技术实现要素:
本发明所要解决的技术问题是针对现有技术的不足提供一种实现多地区数据统计的数据库系统和方法。
本发明的技术方案如下:
一种实现多地区数据统计的数据库系统,包括:数据库总库模块:该数据库总库为总库,由用户向该数据库总库写入数据,该数据带有数据唯一标识id,数据唯一标识id至少能够标识该数据所对应的区域信息。
所述的数据库系统,还包括:
数据分发模块:利用数据库定时事务触发存储过程,定时按照数据唯一标识id对应的区域信息将数据库总库模块的总库数据分发到各个区域对应的数据分库模块;
数据分库模块:用于存放通过数据分发后得到的某区域的数据。
所述的数据库系统,还包括:
定时统计计算模块:定时获取数据库分库模块的数据,通过相应预设置的计算统计后,形成数据库报表的数据库表,存放在对应区域的报表库模块中;
报表库模块:用于存放生成的数据报表的数据库表;
用户端:通过php、web或者java程序读取该报表库模块中的数据报表,在用户端数据统计页面呈现该数据报表;
所述的数据库系统,该数据分库模块可以无限扩展,可以根据业务需要或增加或去掉。
所述的数据库系统,定时统计计算模块按照每日、每周、每年的周期进行统计计算。
一种实现多地区数据统计的数据库方法,包括:用户向数据库总库为总库写入数据的时候,向该数据增加数据唯一标识id,数据唯一标识id至少能够标识该数据所对应的区域信息。
所述的数据库方法,还包括:
数据分发模块:利用数据库定时事务触发存储过程,定时按照数据唯一标识id对应的区域信息将数据库总库模块的总库数据分发到各个区域对应的数据分库模块;
数据分库模块:用于存放通过数据分发后得到的某区域的数据。
所述的数据库方法,还包括:
定时获取数据库分库模块的数据,通过相应预设置的计算统计后,形成数据库报表的数据库表,存放在对应区域的报表库模块中;
将生成的数据报表的数据库表存储在报表库模块中;
通过php、web或者java程序读取该报表库模块中的数据报表,在用户端数据统计页面呈现该数据报表。
本发明利用数据库总库、数据库分库、数据分发、数据库定时运行计算统计的方法,来解决多地区或者多国家数据报表统计的业务场景,为企业提供可扩展性强、独立性强、极易管理的后台数据统计报表解决方案。
附图说明
图1为本发明数据库系统示意图;
图2为具体应用案例数据库系统示意图;
具体实施方式
以下结合具体实施例,对本发明进行详细说明。
参考图1,一种实现多地区数据统计的数据库系统,包括:数据库总库模块:该数据库总库为总库,由用户向该数据库总库写入数据,在写入数据的时候带有数据唯一标识id,数据唯一标识id至少能够标识该数据所对应的区域信息,例如大中华地区、中东地区或者全球;
数据分发模块:利用数据库定时事务触发存储过程,定时按照数据唯一标识id对应的区域信息将数据库总库模块的总库数据分发到各个区域对应的数据分库模块;
数据分库模块:用于存放通过数据分发后得到的某一特定地区的数据,该数据分库模块可以无限扩展,可以根据业务需要或增加或去掉,做到可扩展性;
定时统计计算模块:利用数据库定时事务触发存储过程,定时获取数据库分库模块的数据(例如每日、每周、每年等),通过相应预设置的计算统计后,形成数据库报表的数据库表,存放在对应区域的报表库模块中,此处的统计计算存储可以根据地区业务不同而作调整,实现了地区业务差异化的需求;
报表库模块:用于存放生成的数据报表的数据库表;
用户端:通过php、web或者java程序读取该报表库模块中的数据报表,在用户端数据统计页面呈现该数据报表;
参考图2,是一个实际应用案例的示意图,某app初始化,全球不同区域的用户向该数据库总库写入数据,在写入数据的时候带有数据唯一标识id,例如有关大中华地区的数据带有大中华地区的标识id、有关中东地区的数据带有中东地区的标识id,有关全球的数据带有全球标识id;
定时按照数据唯一标识id对应的区域信息将数据库总库模块的总库数据分发到各个区域对应的数据分库模块;大中华地区的数据根据其大中华地区的标识id分发到大中华地区分库、有关中东地区的数据根据其中东地区的标识id分发到中东地区分库,有关全球的数据根据其全球标识id分发到全球合计分库;
定时各个获取数据库分库模块的数据,通过相应预设置的计算统计后,形成数据库报表的数据库表,存放在对应区域的报表库模块中;
通过php或者java程序通过读取该报表库,在客户端数据统计页面呈现该数据报表;
应当理解的是,对本领域普通技术人员来说,可以根据上述说明加以改进或变换,而所有这些改进和变换都应属于本发明所附权利要求的保护范围。
1.一种实现多地区数据统计的数据库系统,其特征在于,包括:数据库总库模块:用户向该数据库总库写入数据,该数据带有数据唯一标识id,数据唯一标识id至少能够标识该数据所对应的区域信息。
2.根据权利要求1所述的数据库系统,其特征在于,还包括:
数据分发模块:利用数据库定时事务触发存储过程,定时按照数据唯一标识id对应的区域信息将数据库总库模块的总库数据分发到各个区域对应的数据分库模块;
数据分库模块:用于存放通过数据分发后得到的某区域的数据。
3.根据权利要求2所述的数据库系统,其特征在于,还包括:
定时统计计算模块:定时获取数据库分库模块的数据,通过相应预设置的计算统计后,形成数据库报表的数据库表,存放在对应区域的报表库模块中;
报表库模块:用于存放生成的数据报表的数据库表;
用户端:通过php、web或者java程序读取该报表库模块中的数据报表,在用户端数据统计页面呈现该数据报表。
4.根据权利要求1所述的数据库系统,其特征在于,该数据分库模块可以无限扩展,可以根据业务需要或增加或去掉。
5.根据权利要求1所述的数据库系统,其特征在于,定时统计计算模块按照每日、每周、每年的周期进行统计计算。
6.一种实现多地区数据统计的数据库方法,其特征在于,包括:用户向数据库总库为总库写入数据的时候,向该数据增加数据唯一标识id,数据唯一标识id至少能够标识该数据所对应的区域信息。
7.根据权利要求6所述的数据库方法,其特征在于,还包括:
数据分发模块:利用数据库定时事务触发存储过程,定时按照数据唯一标识id对应的区域信息将数据库总库模块的总库数据分发到各个区域对应的数据分库模块;
数据分库模块:用于存放通过数据分发后得到的某区域的数据。
8.根据权利要求7所述的数据库方法,其特征在于,还包括:
定时获取数据库分库模块的数据,通过相应预设置的计算统计后,形成数据库报表的数据库表,存放在对应区域的报表库模块中;
将生成的数据报表的数据库表存储在报表库模块中;
通过php、web或者java程序读取该报表库模块中的数据报表,在用户端数据统计页面呈现该数据报表。