CN113486096B - 一种多库定时执行报表数据预处理及查询方法、系统 - Google Patents
一种多库定时执行报表数据预处理及查询方法、系统 Download PDFInfo
- Publication number
- CN113486096B CN113486096B CN202110685383.0A CN202110685383A CN113486096B CN 113486096 B CN113486096 B CN 113486096B CN 202110685383 A CN202110685383 A CN 202110685383A CN 113486096 B CN113486096 B CN 113486096B
- Authority
- CN
- China
- Prior art keywords
- data
- layer
- report
- report data
- configuration file
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/25—Integrating or interfacing systems involving database management systems
- G06F16/254—Extract, transform and load [ETL] procedures, e.g. ETL data flows in data warehouses
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/21—Design, administration or maintenance of databases
- G06F16/215—Improving data quality; Data cleansing, e.g. de-duplication, removing invalid entries or correcting typographical errors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2282—Tablespace storage structures; Management thereof
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24552—Database cache management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/284—Relational databases
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computational Linguistics (AREA)
- Quality & Reliability (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种多库定时执行报表数据预处理及查询方法、系统,包括:S1:设有多个MySQL数据库,各MySQL数据库根据不同数据源分别构建对应的报表数据模型,获取最终需要展示的报表数据;S2:预先部署NoSQL数据库;设有Logstash配置文件、Elasticsearch索引表、Redis缓存,logstash配置文件中链接各MySQL数据库,通过多库链接接收各报表数据模型输出的报表数据,导入到所述Elasticsearch索引表中,以及写入Redis缓存中;S3:利用Logstash配置文件执行报表数据的定时发布,利用Elasticsearch索引表中对Redis缓存中的数据报表进行定向查询。本发明设置多库定时执行报表数据预处理后,极大的减少了查询的数据量以及计算量,针对需要的模型,更加准确的获取数据,极大的提高了索引的命中率,使预处理的流程更简洁更快。
Description
技术领域
本发明涉及数据查询技术领域,尤其涉及一种多库定时执行报表数据预处理及查询方法、系统。
背景技术
近几年来,由于数据在互联网领域的持续增长,第三方电商平台以及在电商平台上的各商户都面临数据处理需求。本申请发明人发现,针对第三方电商平台以及各商户的报表展示需求,由于报表数据的统计,对报表的查询性能有较高要求。然而现有技术中,大多是在获取不同数据源的原始数据后,再获取报表,且每天获取报表需要在不同电商平台查看,不利于为公司决策提供支持。
发明内容
本申请实施例通过提供一种多库定时执行报表数据预处理及查询方法、系统,解决了现有技术中无法直接获取不同数据源的报表数据,以及每天需要分别查看不同数据源的报表数据的技术问题,实现了每天定时接收查看不同数据源的报表数据,以及将报表数据整合后,提高报表数据的条件搜索性能。
第一方面,本申请实施例提供了一种多库定时执行报表数据预处理及查询方法,沿数据流方向依次包括基础数据层、数据服务层以及数据应用层,所述方法包括步骤:
S1:所述基础数据层中设有多个MySQL数据库,各所述MySQL数据库根据不同数据源分别构建对应的报表数据模型,并对应连接数据源,用于分别采集各数据源中的原始数据;利用所述报表数据模型中的分层技术,对各原始数据进行包括清洗、降维、计算在内的预处理后,获取最终需要展示的报表数据;
S2:所述数据服务层中设有服务器,所述服务器与各所述MySQL数据库连接;通过所述服务器预先部署NoSQL数据库,以接口服务化方式的对外提供数据服务;所述NoSQL数据库中设有Logstash配置文件、Elasticsearch索引表以及Redis缓存,所述logstash配置文件中链接所述基础数据层中的各所述MySQL数据库,通过多库链接接收各所述报表数据模型输出的报表数据,导入到所述Elasticsearch索引表中,以及写入Redis缓存中;
S3:将所述数据应用层链接NoSQL数据库,利用所述Logstash配置文件执行报表数据的定时发布,以及利用所述Elasticsearch索引表中对所述Redis缓存中的数据报表进行定向查询。
进一步地,所述步骤S1中,所述报表数据模型中沿数据流方向依次包括STG层、ODS层、DWD层、DWS层以及DM层,
所述STG层为业务数据层,连接数据源,经过ETL进行包括抽取、转换、装载在内的采集操作,获取数据源中的原始数据;
所述ODS层为业务隔离层,获取所述STG层中的原始数据后,对原始数据进行压缩,并根据所述ODS层中预设的分区表存放原始数据;
所述DWD层按照报表数据的展示需求,对所述ODS层中各分区表中的原始数据进行包括清洗、转换、降维在内的处理,以使各分区表中的原始数据退化至报表数据的事实表;
所述DWS层基于所述DWD层处理后的数据,根据报表数据的展示需求,利用数据处理平台对事实表中的数据进行聚合处理,将相同主题的数据汇集到同一报表数据中,获取报表数据的维度表;
所述DM层连接所述DWD层、所述DWS层,获取并存储所述DWD层以及所述DWS层中得到的报表数据。
进一步地,所述步骤S2中,所述Logstash配置文件中,还设置对应MySQL数据库数据的索引。
进一步地,所述Logstash配置文件中设有定时任务执行脚本的文件路径以及定时执行的时间。
进一步地,所述Logstash的config文件设置执行脚本的文件路径,在对应的文件路径中编写读取所述DM层的脚本;
所述logstash的config文件中设置定时任务执行脚本的时间,以每天定时执行脚本,以及将查询的结果数据写入到所述elasticsearch索引表中。
进一步地,所述步骤S2中,所述数据服务层中设有数据转换器,获取报表查询时,通过所述数据转换器对报表数据进行转换,输出对应格式的报表数据。
进一步地,所述步骤S3中,所述数据应用层中输出的报表数据形式包括但不局限于折线图、柱状图、饼图、表格和地图。
进一步地,所述数据服务层中还构建有执行查询的客户端对象,以此限定查询报表数据的客户端对象。
第二方面,本申请实施例提供了一种多库定时执行报表数据预处理及查询系统,采用第一方面任意一项所述的多库定时执行报表数据预处理及查询方法,
包括:客户端、文件服务器、Web服务器以及多个MySQL数据库;
所述MySQL数据库配置为根据不同数据源分别构建报表数据模型,并对应连接数据源,用于分别采集各数据源中的原始数据;利用所述报表数据模型中的分层技术,对各原始数据进行包括清洗、降维、计算在内的预处理后,获取最终需要展示的报表数据;
所述文件服务器与各所述MySQL数据库连接,配置为预先部署NoSQL数据库,以接口服务化方式的对外提供数据服务;所述NoSQL数据库中设有Logstash配置文件、Elasticsearch索引表以及Redis缓存,所述logstash配置文件中链接所述基础数据层中的各所述MySQL数据库,通过多库链接接收各所述报表数据模型输出的报表数据,导入到所述Elasticsearch索引表中,以及写入Redis缓存中;
所述Web服务器配置为链接NoSQL数据库,利用所述Logstash配置文件执行报表数据的定时发布,以及利用所述Elasticsearch索引表中对所述Redis缓存中的数据报表进行定向查询;
所述客户端与所述Web服务器通信连接,定时接收各数据源的报表数据以及访问所述Web服务器,对报表数据进行定向查询。
本申请实施例中提供的一种多库定时执行报表数据预处理及查询方法、系统,至少具有如下技术效果:
1,由于根据报表数据展示需求设计出对应的报表数据模型,根据需求在ODS层、DWD层、DWS层中获取需要的数据,汇总成最终要展示的数据存入DM层。该处理方式,极大的减少了查询的数据量以及计算量,针对需要的模型,更加准确的获取数据,极大的提高了索引的命中率,使预处理的流程更简洁更快。
2,由于采用了将DM层输出的报表数据通过logstash配置文件导入到Elasticsearch索引表中,极大地减少了客户端请求MySQL数据库造成的压力,logstash配置文件还将DM层输出的报表数据写入到redis缓存中,从而客户端直接请求redis缓存和Elasticsearch索引表,进一步减少了访问请求MySQL数据库造成的压力。
附图说明
图1为本申请实施例一中多库定时执行报表数据预处理及查询方法流程图;
图2为本申请实施例一中logstash配置优化示意图;
图3为本申请实施例二中多库定时执行报表数据预处理及查询系统流程图。
具体实施方式
为了更好的理解上述技术方案,下面将结合说明书附图以及具体的实施方式对上述技术方案进行详细的说明。
参考图1所示,本申请实施例提供了一种多库定时执行报表数据预处理及查询方法,即本实施例实现报表数据的三个功能,包括报表数据的预处理、报表数据预处理的定时执行以及报表数据的查询。
本实施例中沿数据流方向依次包括基础数据层、数据服务层以及数据应用层。进一步地,实现本实施例中报表数据三个功能的方法包括如下步骤:
步骤S1:所述基础数据层中设有多个MySQL数据库,各所述MySQL数据库中分别构建对应的报表数据模型,并对应连接数据源,用于采集各数据源中的原始数据;利用所述报表数据模型中的分层技术,对各原始数据进行包括清洗、降维、计算在内的预处理后,获取最终需要展示的报表数据。
本步骤中利用报表数据模型极大的减少了查询的数据量以及计算量。针对需要的模型,更加准确的获取数据,极大的提高了索引的命中率,使预处理的流程更简洁更快。
进一步地,本实施例在电商平台的商户使用时,数据源可以理解为各大第三方电商平台,比如天猫、淘宝、京东等等,商户在各个电商平台中分别获取对应的报表数据,对于单个商品的报表数据,需要导出各个电商平台产品的数据,才进行处理才能获取。而利用本实施例中的步骤S1,即可直接获取最终需要展示的报表数据,包括但不限于单个商品的报表数据、商户整个的报表数据。
进一步地,基础数据层的任务时把数据从各种数据源中采集、处理以及存储在对应的MySQL数据库中,处理数据时会执行抽取、转换、装载、计算等操作。当然,从数据源中采集的数据中,日志所占份额最大,其他数据可以采用如Excel等手工录入。本实施例中实时采集不局限于一条一条采集,可以根据一些限制条件,比如数据大小限制(如512KB采集一批)、时间阈值限制(如30秒采集一批),采集数据可以但不局限于利用Flume、Sqoop工具。
在步骤S1中,报表数据模型中沿数据流方向依次包括STG层、ODS层、DWD层、DWS层以及DM层。进一步说明如下:
本实施例中的所述STG层为业务数据层,连接数据源,经过ETL进行包括抽取、转换、装载在内的采集操作,获取数据源中的原始数据。进一步地,STG层一般称为贴源层,表示与数据源贴近的一层,因此STG层获取的原始数据和数据源中的数据一致。本实施例中,利用STG层利用ETL采集原始数据的方式可以包括两种,增量抽取和全量抽取。对于事实表,数据量增长较快,总的数据量较大,会选择根据规则增量抽取,通常按照时间增量抽取;对于维表,数据量增长较慢,总的数据量较小,会选择全量抽取。
针对STG层,对于大数据量的表,优选根据条件分区处理。例如字段较多的,可以根据业务需要删减一些基本不用的字段,提升抽取效率;STG层需要加上tc_data_source数据源和tc_sync_time抽取时间两个字段;STG层的名称通常以stg_开头,后面接上数据源简称,再接上源表名称,例如stg_sap_bseg,就代表STG层stg_jd_bseg表对应数据源京东的BSEG表。
本实施例中的所述ODS层为业务隔离层,获取所述STG层中的原始数据后,对原始数据进行压缩,并根据所述ODS层中预设的分区表存放原始数据。进一步地,ODS层表示为操作数据层Opertional Data Source,作为数据运营层,也可以理解为接近数据源中数据的一层,ETL抽取后的原始数据,装入ODS层。ODS层中的数据大多还是按照数据源中的分类方式进行分类的,并分别存在在对应分区表中。
本实施例中的所述DWD层按照报表数据的展示需求,对所述ODS层中各分区表中的原始数据进行包括清洗、转换、降维在内的处理,以使各分区表中的原始数据退化至报表数据的事实表。进一步地,DWD层,表示为数据明细层Data Warehouse Detail,与ODS层保持一样的数据粒度,利用清洗过滤等操作,提供一定的数据质量保证,同时由于根据报表数据的展示需求,DWD层利用降维操作提高数据明细层的应用性,依次使清洗后的数据在降维处理后,退化至事实表。当然,在DWD层也会做一部分的数据聚合,将相同主题的数据汇集到一张表中,提高数据的可用性。DWD层对ODS层数据做ETL处理后的扁平化明细数据,并以orc/parquet文件格式存储。
进一步地,清洗过滤操作包括去除json数据中的废弃字段,比如,前端开发人员在埋点设计方案变更后遗留的无用字段;过滤json格式不正确的,比如脏数据;过滤deviceid及account为空的记录;过滤缺少关键字段的记录;过滤日志中时间段错误的记录;过滤爬虫请求,例如,通过useragent标识来分析。
本实施例中的DWS层基于所述DWD层处理后的数据,根据报表数据的展示需求,利用数据处理平台对事实表中的数据进行聚合处理,将相同主题的数据汇集到同一报表数据中,获取报表数据的维度表。进一步地,DWS层用作对数据做轻度聚合,按照guid,sessionid求起始时间,结束时间,访问页数,新老标记,地域,入口页,跳出页逻辑:按照guid,sessionid分组得到起始,结束时间,新老标记,访问页数,LEFT JOIN窗口guid,sessionidORDER BY timestamp。通常DWS层的数据表会相对比较少,一张表会涵盖比较多的业务内容,由于其字段较多,因此一般也会称为该层的表为宽表。在实际计算中,如果直接从DWD或者ODS计算出宽表的统计指标,会存在计算量太大并且维度太少的问题,因此可以在DWM层(数据中间层)先计算出多个小的中间表,然后再拼接成一张DWS的宽表。由于宽和窄的界限不易界定,也可以去掉DWM这一层,只留DWS层,将所有的数据放在DWS亦可。
所述DM层连接所述DWD层、所述DWS层,获取并存储所述DWD层以及所述DWS层中得到的报表数据。进一步地,DM层表示为data mart,又称数据集市或宽表。按照业务划分,如流量、订单、用户等,生成字段比较多的宽表,用于提供后续的业务查询,OLAP分析,数据分发等。本实施例中的DM层生成的报表数据由轻度汇总层DWS层和明细层DWD层数据计算生成。进一步地,所述DM层利用包括Hive、MapReduce、Spark Streaming、Storm、Flink、StreamCompute在内的数据处理平台对DWS层和DWD层输出的数据进行计算。本DM层中,可使用impala内表、parquet文件格式长久存储。在一种实施例中,一般按天创建分区,没有时间概念的按具体业务选择分区字段,以此构建表schema。
步骤S2:所述数据服务层中设有服务器,所述服务器与各所述MySQL数据库连接;通过所述服务器预先部署NoSQL数据库,以接口服务化方式的对外提供数据服务;所述NoSQL数据库中设有Logstash配置文件、Elasticsearch索引表以及Redis缓存,所述logstash配置文件中链接所述基础数据层中的各所述MySQL数据库,通过多库链接接收各所述报表数据模型输出的报表数据,导入到所述Elasticsearch索引表中,以及写入Redis缓存中。
在步骤S2中的所述Logstash配置文件中,还设置对应MySQL数据库数据的索引。进一步地,所述Logstash配置文件中设有定时任务执行脚本的文件路径以及定时执行的时间。在一种实施例中,所述Logstash的config文件设置执行脚本的文件路径,在对应的文件路径中编写读取所述DM层的脚本;所述logstash的config文件中设置定时任务执行脚本的时间,以每天定时执行脚本,以及将查询的结果数据写入到所述elasticsearch索引表中。
进一步地,本步骤中通过Logstash配置文件将DM层的报表数据导入到Elasticsearch索引表以及写入到redis缓存,缓解了客户端对各MySQL数据库的压力,通过提供NoSQL数据库,客户端直接请求redis缓存以及Elasticsearch索引表,极大的减小了MySQL数据库的压力。
在步骤S2中,所述Logstash脚本创建Elasticsearch索引表的基本步骤包括:
(1)新建Logstash_to_es.conf文件。
(2)配置LogStash的输入定时任务执行脚本的指定文件路径以及定时执行的时间。
(3)配置LogStash的输出output,输出到ElasticSeach,指定其IP及相应的端口,并指定其自动生成索引名的格式。
进一步地,通过logstash配置文件中链接数据库,多库链接,设置定时任务执行脚本的文件路径以及定时执行的时间,将数据写入Elasticsearch索引表。
在配置文件中,设置对应数据库预处理数据的索引如下表示,
filter{json{source=>"message"remove_field=>["message"]}}
output{if[type]=="es_market_campaign_clarks"(elasticsearch{hosts=>["http://172.16.33.234:9200"]index=>"clarks_market_test"document_id=>"%{id}"}stdout{codec=>json lines}}
if[type]=="es_market_campaign_achette"(elasticsearch{hosts=>["http://172.16.33.234:9200"]index=>"achette_market_test"document_id=>"%{id}}stdout{codec=>json_lines}}}
将预处理的执行程序写入脚本:
本步骤中,本步骤S2中的数据服务层中还构建有执行查询的客户端对象,以此限定查询报表数据的客户端对象。在PHP中链接Elasticsearch索引表可表示如下,
public function init(){
try{//初始化连接es服务器
$hosts=[C('ES.es_hosts'),];
$this->client=ClientBuilder::create()//实例化ClientBuilder
->setHosts($hosts)//设置主机信息
->build();//构建客户端对象
}catch(\Exception$e){
$res['msg']=$e->getMessage();
return_json_message(0,$res);}。
另外在步骤S2中,数据服务层中设有数据转换器,获取报表查询时,通过所述数据转换器对报表数据进行转换,输出对应格式的报表数据。
步骤S3:将所述数据应用层链接NoSQL数据库,参考图2所示,利用所述Logstash配置文件执行报表数据的定时发布,以及利用所述Elasticsearch索引表中对所述Redis缓存中的数据报表进行定向查询。
进一步在步骤S3中,所述数据应用层中输出的报表数据形式包括但不局限于折线图、柱状图、饼图、表格和地图。
本实施例中利用Elasticsearch索引表执行查询搜索操作,实现分词匹配和完全匹配。
完全匹配又称为term精确查询,搜索前不会再对搜索词进行分词,所以搜索词必须是文档分词集合中的一个。比如说我们要找标题为“***玩具”的所有文档,那么将查询到“***玩具”所有有关的报表数据。分词匹配又称为match类查询,match查询会先对搜索词进行分词,分词完毕后再逐个对分词结果进行匹配,因此相比于term的精确搜索,match是分词匹配搜索,match搜索还有两个相似功能的变种,一个是match_phrase,一个是multi_match。match查询时,只要搜索词的分词集合中的一个或多个存在于报表数据中即可,例如,当搜索“羊绒毛衣”,搜索词会先分词为羊绒和毛衣,只要报表数据中包含羊绒和毛衣任意一个词。
此外,本实施例中还利用Elasticsearch索引表的分页对查询结果进行展示,其中分页使用from-size分页和scroll分页两种方式,分别对应浅分页和深度分页。
From-size实现分页,from表示从第几行开始,size表示查询多少条文档。from默认为0,size默认为10,注意:size的大小不能超过index.max_result_window这个参数的设置,默认为10,000。如果搜索size大于10000,需要设置index.max_result_window参数。Scroll分页理解为关系型数据库里的cursor,因此,scroll并不适合用来做实时搜索,而更适用于后台批处理任务,比如群发。可以把scroll分为初始化和遍历两步,初始化时将所有符合搜索条件的搜索结果缓存起来,可以想象成快照,遍历时,从这个快照里取数据,也就是说,在初始化后对索引插入、删除、更新数据都不会影响遍历结果。
实施例二
参考图3所示,本申请实施例提供了一种多库定时执行报表数据预处理及查询系统,,采用如实施例一中的方法,包括:客户端400、文件服务器200、Web服务器300以及多个MySQL数据库100。
所述MySQL数据库100配置为根据不同数据源分别构建报表数据模型,并对应连接数据源,用于分别采集各数据源中的原始数据;利用所述报表数据模型中的分层技术,对各原始数据进行包括清洗、降维、计算在内的预处理后,获取最终需要展示的报表数据。
所述文件服务器200与各所述MySQL数据库100连接,配置为预先部署NoSQL数据库,以接口服务化方式的对外提供数据服务;所述NoSQL数据库中设有Logstash配置文件、Elasticsearch索引表以及Redis缓存,所述logstash配置文件中链接所述基础数据层中的各所述MySQL数据库100,通过多库链接接收各所述报表数据模型输出的报表数据,导入到所述Elasticsearch索引表中,以及写入Redis缓存中。
所述Web服务器300配置为链接NoSQL数据库,利用所述Logstash配置文件执行报表数据的定时发布,以及利用所述Elasticsearch索引表中对所述Redis缓存中的数据报表进行定向查询。
所述客户端400与所述Web服务器300通信连接,定时接收各数据源的报表数据以及访问所述Web服务器300,对报表数据进行定向查询。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (4)
1.一种多库定时执行报表数据预处理及查询方法,其特征在于,沿数据流方向依次包括基础数据层、数据服务层以及数据应用层,所述方法包括步骤:
S1:所述基础数据层中设有多个MySQL数据库,各所述MySQL数据库根据不同数据源分别构建对应的报表数据模型,并对应连接数据源,用于分别采集各数据源中的原始数据;利用所述报表数据模型中的分层技术,对各原始数据进行包括清洗、降维、计算在内的预处理后,获取最终需要展示的报表数据;
所述步骤S1中,所述报表数据模型中沿数据流方向依次包括STG层、ODS层、DWD层、DWS层以及DM层,
所述STG层为业务数据层,连接数据源,经过ETL进行包括抽取、转换、装载在内的采集操作,获取数据源中的原始数据;
所述ODS层为业务隔离层,获取所述STG层中的原始数据后,对原始数据进行压缩,并根据所述ODS层中预设的分区表存放原始数据;
所述DWD层按照报表数据的展示需求,对所述ODS层中各分区表中的原始数据进行包括清洗、转换、降维在内的处理,以使各分区表中的原始数据退化至报表数据的事实表;
所述DWS层基于所述DWD层处理后的数据,根据报表数据的展示需求,利用数据处理平台对事实表中的数据进行聚合处理,将相同主题的数据汇集到同一报表数据中,获取报表数据的维度表;
所述DM层连接所述DWD层、所述DWS层,获取并存储所述DWD层以及所述DWS层中得到的报表数据;
S2:所述数据服务层中设有服务器,所述服务器与各所述MySQL数据库连接;通过所述服务器预先部署NoSQL数据库,以接口服务化方式的对外提供数据服务;所述NoSQL数据库中设有Logstash配置文件、Elasticsearch索引表以及Redis缓存,所述Logstash配置文件中链接所述基础数据层中的各所述MySQL数据库,通过多库链接接收各所述报表数据模型输出的报表数据,导入到所述Elasticsearch索引表中,以及写入Redis缓存中;
其中,所述步骤S2中,所述Logstash配置文件中,还设置对应MySQL数据库数据的索引;所述Logstash配置文件中设有定时任务执行脚本的文件路径以及定时执行的时间;
所述Logstash的config文件设置执行脚本的文件路径,在对应的文件路径中编写读取所述DM层的脚本;
所述Logstash的config文件中设置定时任务执行脚本的时间,以每天定时执行脚本,以及将查询的结果数据写入到所述Elasticsearch索引表中;
所述步骤S2中,所述数据服务层中设有数据转换器,获取报表查询时,通过所述数据转换器对报表数据进行转换,输出对应格式的报表数据;S3:将所述数据应用层链接NoSQL数据库,利用所述Logstash配置文件执行报表数据的定时发布,以及利用所述Elasticsearch索引表中对所述Redis缓存中的数据报表进行定向查询。
2.如权利要求1所述的多库定时执行报表数据预处理及查询方法,其特征在于,所述步骤S3中,所述数据应用层中输出的报表数据形式包括但不局限于折线图、柱状图、饼图、表格和地图。
3.如权利要求1所述的多库定时执行报表数据预处理及查询方法,其特征在于,所述数据服务层中还构建有执行查询的客户端对象,以此限定查询报表数据的客户端对象。
4.一种多库定时执行报表数据预处理及查询系统,采用权利要求1-3任意一项所述的多库定时执行报表数据预处理及查询方法,包括:客户端、文件服务器、Web服务器以及多个MySQL数据库;
所述MySQL数据库配置为根据不同数据源分别构建报表数据模型,并对应连接数据源,用于分别采集各数据源中的原始数据;利用所述报表数据模型中的分层技术,对各原始数据进行包括清洗、降维、计算在内的预处理后,获取最终需要展示的报表数据;
所述报表数据模型中沿数据流方向依次包括STG层、ODS层、DWD层、DWS层以及DM层,
所述STG层为业务数据层,连接数据源,经过ETL进行包括抽取、转换、装载在内的采集操作,获取数据源中的原始数据;
所述ODS层为业务隔离层,获取所述STG层中的原始数据后,对原始数据进行压缩,并根据所述ODS层中预设的分区表存放原始数据;
所述DWD层按照报表数据的展示需求,对所述ODS层中各分区表中的原始数据进行包括清洗、转换、降维在内的处理,以使各分区表中的原始数据退化至报表数据的事实表;
所述DWS层基于所述DWD层处理后的数据,根据报表数据的展示需求,利用数据处理平台对事实表中的数据进行聚合处理,将相同主题的数据汇集到同一报表数据中,获取报表数据的维度表;
所述DM层连接所述DWD层、所述DWS层,获取并存储所述DWD层以及所述DWS层中得到的报表数据;
所述文件服务器与各所述MySQL数据库连接,配置为预先部署NoSQL数据库,以接口服务化方式的对外提供数据服务;所述NoSQL数据库中设有Logstash配置文件、Elasticsearch索引表以及Redis缓存,所述Logstash配置文件中链接所述基础数据层中的各所述MySQL数据库,通过多库链接接收各所述报表数据模型输出的报表数据,导入到所述Elasticsearch索引表中,以及写入Redis缓存中;
其中,所述步骤S2中,所述Logstash配置文件中,还设置对应MySQL数据库数据的索引;所述Logstash配置文件中设有定时任务执行脚本的文件路径以及定时执行的时间;
所述Logstash的config文件设置执行脚本的文件路径,在对应的文件路径中编写读取所述DM层的脚本;
所述Llogstash的config文件中设置定时任务执行脚本的时间,以每天定时执行脚本,以及将查询的结果数据写入到所述Eelasticsearch索引表中;
所述步骤S2中,所述数据服务层中设有数据转换器,获取报表查询时,通过所述数据转换器对报表数据进行转换,输出对应格式的报表数据;
所述Web服务器配置为链接NoSQL数据库,利用所述Logstash配置文件执行报表数据的定时发布,以及利用所述Elasticsearch索引表中对所述Redis缓存中的数据报表进行定向查询;
所述客户端与所述Web服务器通信连接,定时接收各数据源的报表数据以及访问所述Web服务器,对报表数据进行定向查询。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110685383.0A CN113486096B (zh) | 2021-06-21 | 2021-06-21 | 一种多库定时执行报表数据预处理及查询方法、系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110685383.0A CN113486096B (zh) | 2021-06-21 | 2021-06-21 | 一种多库定时执行报表数据预处理及查询方法、系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113486096A CN113486096A (zh) | 2021-10-08 |
CN113486096B true CN113486096B (zh) | 2022-07-26 |
Family
ID=77935587
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110685383.0A Active CN113486096B (zh) | 2021-06-21 | 2021-06-21 | 一种多库定时执行报表数据预处理及查询方法、系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113486096B (zh) |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101714157A (zh) * | 2009-09-29 | 2010-05-26 | 金蝶软件(中国)有限公司 | 异构数据库报表生成方法、装置和异构数据库系统 |
CN107193967A (zh) * | 2017-05-25 | 2017-09-22 | 南开大学 | 一种多源异构行业领域大数据处理全链路解决方案 |
CN107463709A (zh) * | 2017-08-21 | 2017-12-12 | 北京奇艺世纪科技有限公司 | 一种基于多数据源的etl处理方法及装置 |
CN107704608A (zh) * | 2017-10-17 | 2018-02-16 | 北京览群智数据科技有限责任公司 | 一种olap多维分析和数据挖掘系统 |
CN108052676B (zh) * | 2017-12-28 | 2021-06-18 | 广东金赋科技股份有限公司 | 多数据源数据的配置方法及装置 |
CN108984583A (zh) * | 2018-05-17 | 2018-12-11 | 北京国电通网络技术有限公司 | 一种基于日志文件的搜索方法 |
CN109189764A (zh) * | 2018-09-20 | 2019-01-11 | 北京桃花岛信息技术有限公司 | 一种基于Hive的高校数据仓库分层设计方法 |
CN110795441B (zh) * | 2019-09-18 | 2023-06-16 | 平安科技(深圳)有限公司 | 报表数据处理方法、装置、设备及存储介质 |
CN111061732A (zh) * | 2019-12-05 | 2020-04-24 | 深圳迅策科技有限公司 | 一种基于大数据处理的报表生成方法 |
CN111917887A (zh) * | 2020-08-17 | 2020-11-10 | 普元信息技术股份有限公司 | 大数据环境下实现数据治理的系统 |
CN112182089B (zh) * | 2020-10-15 | 2023-01-20 | 南方电网数字电网研究院有限公司 | 基于数据仓库模型的报表生成方法、装置和设备 |
CN112988863A (zh) * | 2021-02-09 | 2021-06-18 | 苏州中科蓝迪软件技术有限公司 | 一种基于Elasticsearch的异构多数据源的高效搜索引擎方法 |
-
2021
- 2021-06-21 CN CN202110685383.0A patent/CN113486096B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN113486096A (zh) | 2021-10-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11899681B2 (en) | Knowledge graph building method, electronic apparatus and non-transitory computer readable storage medium | |
JP6247292B2 (ja) | クエリ拡張 | |
EP2929467B1 (en) | Integrating event processing with map-reduce | |
CN107622103B (zh) | 管理数据查询 | |
US9361343B2 (en) | Method for parallel mining of temporal relations in large event file | |
CN111782265B (zh) | 基于字段级血缘关系的软件资源系统及其建立方法 | |
CN105512336A (zh) | 一种基于Hadoop的海量数据处理方法和装置 | |
CN103761236A (zh) | 一种增量式频繁模式增长数据挖掘方法 | |
CN105488231A (zh) | 一种基于自适应表维度划分的大数据处理方法 | |
CN103927314B (zh) | 一种数据批量处理的方法和装置 | |
CN107918618A (zh) | 数据处理方法及装置 | |
CN105550375A (zh) | 一种异构数据的整合方法及系统 | |
CN108459965B (zh) | 一种结合用户反馈和代码依赖的软件可追踪生成方法 | |
CN110413882B (zh) | 信息推送方法、装置及设备 | |
CN106021580B (zh) | Impala基于Hadoop集群日志分析方法和系统 | |
CN107704620A (zh) | 一种档案管理的方法、装置、设备和存储介质 | |
CN110321446A (zh) | 相关数据推荐方法、装置、计算机设备及存储介质 | |
CN113486096B (zh) | 一种多库定时执行报表数据预处理及查询方法、系统 | |
KR102345410B1 (ko) | 빅데이터 지능형 수집 방법 및 장치 | |
CN103823881B (zh) | 分布式数据库的性能优化的方法及装置 | |
CN106919566A (zh) | 一种基于海量数据的查询统计方法及系统 | |
CN117149804A (zh) | 数据处理方法、装置、电子设备及存储介质 | |
CN110955712A (zh) | 基于多数据源的开发api处理方法及装置 | |
CN114090558A (zh) | 针对数据库的数据质量管理方法和装置 | |
CN112667859A (zh) | 基于内存的数据处理方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
CB02 | Change of applicant information |
Address after: 200335 floor 2, building B, No. 1358 Xiehe Road, Changning District, Shanghai Applicant after: Shanghai baiqiu new online commerce Digital Technology Co.,Ltd. Address before: 200335 room 2403, floor 1, building 8, No. 33, Guangshun Road, Changning District, Shanghai Applicant before: Shanghai baiqiu e-commerce Co.,Ltd. |
|
CB02 | Change of applicant information | ||
GR01 | Patent grant | ||
GR01 | Patent grant |