CN113282598A - 数据分析方法及装置、存储介质及电子装置 - Google Patents
数据分析方法及装置、存储介质及电子装置 Download PDFInfo
- Publication number
- CN113282598A CN113282598A CN202110469886.4A CN202110469886A CN113282598A CN 113282598 A CN113282598 A CN 113282598A CN 202110469886 A CN202110469886 A CN 202110469886A CN 113282598 A CN113282598 A CN 113282598A
- Authority
- CN
- China
- Prior art keywords
- data
- sending
- target database
- target
- primary key
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 62
- 238000007405 data analysis Methods 0.000 title claims abstract description 28
- 238000004590 computer program Methods 0.000 claims description 16
- 230000008569 process Effects 0.000 abstract description 12
- 238000004458 analytical method Methods 0.000 description 11
- 238000013500 data storage Methods 0.000 description 8
- 230000005540 biological transmission Effects 0.000 description 7
- 241000282813 Aepyceros melampus Species 0.000 description 6
- 230000008901 benefit Effects 0.000 description 6
- 238000004364 calculation method Methods 0.000 description 6
- 230000008859 change Effects 0.000 description 6
- 238000001914 filtration Methods 0.000 description 6
- 230000004048 modification Effects 0.000 description 6
- 238000012986 modification Methods 0.000 description 6
- 238000003825 pressing Methods 0.000 description 6
- 238000011161 development Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 238000013507 mapping Methods 0.000 description 3
- 238000005192 partition Methods 0.000 description 3
- 241000233805 Phoenix Species 0.000 description 2
- 230000002776 aggregation Effects 0.000 description 2
- 238000004220 aggregation Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000009466 transformation Effects 0.000 description 2
- 238000011144 upstream manufacturing Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 238000010223 real-time analysis Methods 0.000 description 1
- 238000007619 statistical method Methods 0.000 description 1
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/23—Updating
-
- 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/242—Query formulation
- G06F16/2433—Query languages
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Mathematical Physics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种数据分析方法及装置、存储介质及电子装置,其中,上述方法包括:通过采集工具从多个数据库中采集多个第一数据,并获取所述多个第一数据对应的主键信息,其中,所述多个第一数据具有相同的数据结构;将包括有所述多个第一数据和所述主键信息的第二数据发送至数据缓存系统,以使所述数据缓存系统保存所述第二数据;从所述数据缓存系统中获取所述多个第二数据,并将从所述多个第二数据中提取的所述多个第一数据发送至目标数据库,以在所述目标数据库中对所述多个第一数据进行分析。采用上述技术方案,解决了在对数据进行分析的过程中,数据分散在大量的数据库中,导致无法集中对数据进行分析等问题。
Description
技术领域
本发明涉及通信领域,具体而言,涉及一种数据分析方法及装置、存储介质及电子装置。
背景技术
随着社会的发展,越来越多的业务场景需要对数据进行实时处理,通常大数据量业务数据在分库分表后分布在几十上百个业务数据库中,此类数据往往数据结构统一,但数据分散,无法集中查询分析。并且传统数仓技术不支持更新,无法实时获取增量更新数据,因此在业务想要进行实时分析时有诸多不便。
针对相关技术中,在对数据进行分析的过程中,数据分散在大量的数据库中,导致无法集中对数据进行分析等问题,目前尚未提出有效的解决方案。
发明内容
本发明实施例提供了一种数据分析方法及装置、存储介质及电子装置,以至少解决在对数据进行分析的过程中,数据分散在大量的数据库中,导致进行无法集中进行分析等问题。
根据本发明实施例的一方面,提供一种数据分析方法,包括:通过采集工具从多个数据库中采集多个第一数据,并获取所述多个第一数据对应的主键信息,其中,所述多个第一数据具有相同的数据结构;将包括有所述多个第一数据和所述主键信息的第二数据发送至数据缓存系统,以使所述数据缓存系统保存所述第二数据;从所述数据缓存系统中获取所述多个第二数据,并将从所述多个第二数据中提取的所述多个第一数据发送至目标数据库,以在所述目标数据库中对所述多个第一数据进行分析。
进一步地,通过采集工具从多个数据库中采集多个第一数据,包括:确定所述采集工具对应的采集方式;基于所述采集方式从所述多个数据库中采集具有相同表名称的多个第一数据。
进一步地,将包括有所述多个第一数据和所述主键信息的第二数据发送至数据缓存系统,以使所述数据缓存系统保存所述第二数据,包括:通过所述采集工具配置所述数据缓存系统中的存储队列;将所述第二数据发送至所述存储队列,以使所述存储队列保存所述第二数据。
进一步地,将从所述多个第二数据中提取的所述多个第一数据发送至目标数据库之后,还包括:检测所述多个第一数据在所述多个数据库中对应的第一数据结构是否变化成了第二数据结构;在所述第一数据结构已变化为所述第二数据结构的情况下,将所述目标数据库的第一数据结构修改为所述第二数据结构。
进一步地,将从所述多个第二数据中提取的所述多个第一数据发送至目标数据库之前,所述方法还包括:获取目标对象配置的目标文件,其中,所述目标文件用于指示对所述目标数据库的配置信息;根据所述目标文件中指示的配置信息配置所述目标数据库。
进一步地,将从所述多个第二数据中提取的所述多个第一数据发送至目标数据库之后,还包括:通过所述目标数据库接收目标对象的查询请求,其中,所述查询请求携带有所述主键信息;根据所述主键信息从所述目标数据库中查询与所述主键信息对应的目标第一数据;通过所述目标对象编辑的结构化查询语句对所述目标第一数据进行分析。
根据本发明实施例的又一方面,还提供了一种数据分析装置,包括:采集模块,用于通过采集工具从多个数据库中采集多个第一数据,并获取所述多个第一数据对应的主键信息,其中,所述多个第一数据具有相同的数据结构;第一发送模块,用于将包括有所述多个第一数据和所述主键信息的第二数据发送至数据缓存系统,以使所述数据缓存系统保存所述第二数据;第二发送模块,用于从所述数据缓存系统中获取所述多个第二数据,并将从所述多个第二数据中提取的所述多个第一数据发送至目标数据库,以在所述目标数据库中对所述多个第一数据进行分析。
进一步地,所述采集模块,还用于确定所述采集工具对应的采集方式;基于所述采集方式从所述多个数据库中采集具有相同表名称的多个第一数据。
根据本发明实施例的又一方面,还提供了一种计算机可读的存储介质,该计算机可读的存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述数据分析方法。
根据本发明实施例的又一方面,还提供了一种电子装置,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,上述处理器通过计算机程序执行上述数据分析方法。
通过本发明,引入一种数据分析方法,通过采集工具从多个数据库中采集具有相同数据结构的多个第一数据,并获取所述多个第一数据对应的主键信息,将包括有所述多个第一数据和所述主键信息的第二数据发送至数据缓存系统,以使所述数据缓存系统保存所述第二数据;从所述数据缓存系统中获取所述多个第二数据,并将从所述多个第二数据中提取的所述多个第一数据发送至目标数据库,以在所述目标数据库中对所述多个第一数据进行分析。也就是说,通过采集工具从数据库中采集相同数据结构的第一数据,并保存至数据缓存系统,进而从数据缓存系统中将第一数据发送至目标数据库中,进而统一在目标数据库中进行数据分析。采用上述技术方案,解决了在对数据进行分析的过程中,数据分散在大量的数据库中,导致无法集中对数据进行分析等问题。进而通过将具有相同数据结构的数据保存在目标数据库中,提高了查询效率。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示例性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是本发明实施例的数据分析方法的计算机终端的硬件结构框图;
图2是根据本发明实施例的数据分析方法的流程图(一);
图3是根据本发明实施例的数据分析方法的流程图(二);
图4是根据本发明实施例的数据分析装置的结构框图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
本申请实施例中所提供的方法实施例可以在计算机终端或者类似的运算装置中执行。以运行在计算机终端上为例,图1是本发明实施例的数据分析方法的计算机终端的硬件结构框图。如图1所示,计算机终端可以包括一个或多个(图1中仅示出一个)处理器102(处理器102可以包括但不限于微处理器(Microprocessor Unit,简称是MPU)或可编程逻辑器件(Programmable logic device,简称是PLD))和用于存储数据的存储器104,在一个示例性实施例中,上述计算机终端还可以包括用于通信功能的传输设备106以及输入输出设备108。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述计算机终端的结构造成限定。例如,计算机终端还可包括比图1中所示更多或者更少的组件,或者具有与图1所示等同功能或比图1所示功能更多的不同的配置。
存储器104可用于存储计算机程序,例如,应用软件的软件程序以及模块,如本发明实施例中的数据分析方法对应的计算机程序,处理器102通过运行存储在存储器104内的计算机程序,从而执行各种功能应用以及数据处理,即实现上述的方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至计算机终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输装置106用于经由一个网络接收或者发送数据。上述的网络具体实例可包括计算机终端的通信供应商提供的无线网络。在一个实例中,传输装置106包括一个网络适配器(Network Interface Controller,简称为NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输装置106可以为射频(Radio Frequency,简称为RF)模块,其用于通过无线方式与互联网进行通讯。
本实施例提供了一种数据分析方法,图2是根据本发明实施例的数据分析方法的流程图(一),该流程包括如下步骤:
步骤S202,通过采集工具从多个数据库中采集多个第一数据,并获取所述多个第一数据对应的主键信息,其中,所述多个第一数据具有相同的数据结构;
步骤S204,将包括有所述多个第一数据和所述主键信息的第二数据发送至数据缓存系统,以使所述数据缓存系统保存所述第二数据;
步骤S206,从所述数据缓存系统中获取所述多个第二数据,并将从所述多个第二数据中提取的所述多个第一数据发送至目标数据库,以在所述目标数据库中对所述多个第一数据进行分析。
通过上述步骤,采集工具从多个数据库中采集具有相同数据结构的多个第一数据,并获取所述多个第一数据对应的主键信息,将包括有所述多个第一数据和所述主键信息的第二数据发送至数据缓存系统,以使所述数据缓存系统保存所述第二数据;从所述数据缓存系统中获取所述多个第二数据,并将从所述多个第二数据中提取的所述多个第一数据发送至目标数据库,以在所述目标数据库中对所述多个第一数据进行分析。也就是说,通过采集工具从数据库中采集相同数据结构的第一数据,并保存至数据缓存系统,进而从数据缓存系统中将第一数据发送至目标数据库中,进而统一在目标数据库中进行数据分析。采用上述技术方案,解决了在对数据进行分析的过程中,数据分散在大量的数据库中,导致无法集中对数据进行分析等问题。进而通过将具有相同数据结构的数据保存在目标数据库中,提高了查询效率。
需要说明的是,上述步骤S202具有多种执行方式,在一个可选的实施例中,通过采集工具从多个数据库中采集多个第一数据,可以通过以下技术方案实现:确定所述采集工具对应的采集方式;基于所述采集方式从所述多个数据库中采集具有相同表名称的多个第一数据。
在本实施例中,针对不同类型的数据库,通过不同的采集工具来采集,若多个第一数据都保存在MySQL数据库中,则可以通过canal部署采集程序(相当于采集工具),通过采集程序确定对应的采集方式,基于采集方式从所述多个数据库中采集具有相同表名称的多个第一数据。具体的,在使用canal框架时,可以使用canal开源框架1.13版本,并进行二次开发改造,获取binlog数据写入数据缓存系统,被采集MySQL数据库需要开启binlog协议,使用row模式,并对账号开启相应权限,且canal可在不同机器部署多套,即可支持高可用。需要说明的是,二次开发改造主要是增加了自动根据(库+表+主键)hash发送的不同分区、增加了通过聊天软件接收报错警告(传统报错警告主要是通过发送邮箱的方式实现,不具备聊天软件的实时性)。需要说明的是,如果数据库不能使用采集工具来采集,可以通过编写程序按照update time,高频轮询方式获取数据库变更,但此方式提高了对数据库的压力,且实时性较差。
可选的,上述步骤S204中,将包括有所述多个第一数据和所述主键信息的第二数据发送至数据缓存系统,以使所述数据缓存系统保存所述第二数据,包括:通过所述采集工具配置所述数据缓存系统中的存储队列;将所述第二数据发送至所述存储队列,以使所述存储队列保存所述第二数据。
在本实施例中,在通过采集工具将多个第一数据从MySQL数据库中采集以后,需要将多个第一数据和包含所述主键信息的其余信息一起,作为第二数据,发送至数据缓存系统,使数据缓存系统保存所述第二数据,具体的第二数据的数据结构可以如下表1所示:
表1
且将第二数据发送至数据缓存系统过程中,需要通过采集工具配置数据缓存系统中的存储队列,随后将所述第二数据发送至所述存储队列,以使所述存储队列保存所述第二数据。需要说明的是,通过采集工具配置数据缓存系统中的存储队列,支持按数据库中的表名发送到存储队列,也可以全部发送到一个存储队列。且配置发送数据缓存系统时,可以通过第一数据的key值计算使用的字段,也可以单独表配置,若不配置,则默认使用主键计算。
在一个可选的实施例中,从所述多个第二数据中提取的所述多个第一数据发送至目标数据库之前,所述方法还包括:获取目标对象配置的目标文件,其中,所述目标文件用于指示对所述目标数据库的配置信息;根据所述目标文件中指示的配置信息配置所述目标数据库。
在本实施例中,可以通过Sparkstreaming框架编写消费程序,首先获取目标对象配置的目标文件,随后消费程序根据目标对象配置的目标文件中指示的配置信息,配置目标数据库,具体的,目标文件中的配置信息包括如下配置项:(1)配置目标数据对应表的前缀,根据前缀拼出目标数据库表名,并写入同一张目标数据库的表中;(2)配置目标数据库对应表的主键是否增加MySQL库名,避免不同库的主键重复;(3)支持列过滤,可过滤不需要的列;(4)支持表名映射,不同表名,但同结构数据也可写入同一个目标数据库表;(5)支持表名过滤,可过滤掉不需要的表。
可选的,将从所述多个第二数据中提取的所述多个第一数据发送至目标数据库,还包括:检测所述多个第一数据在所述多个数据库中对应的第一数据结构是否变化成了第二数据结构;在所述第一数据结构已变化为所述第二数据结构的情况下,将所述目标数据库的第一数据结构修改为所述第二数据结构。
在本实施例中,在消费程序从第二数据中提取出第一数据,并将第一数据发送至目标数据库之后,需要判断第一数据在原先数据库中的第一数据结构是否发生了变化,例如第一数据结构增加了一列,变成了第二数据结构,此时消费程序会感知到变化,并将目标数据库中的第一数据结构修改为第二数据结构。
可选的,将从所述多个第二数据中提取的所述多个第一数据发送至目标数据库之后,还包括:通过所述目标数据库接收目标对象的查询请求,其中,所述查询请求携带有所述主键信息;根据所述主键信息从所述目标数据库中查询与所述主键信息对应的目标第一数据;通过所述目标对象编辑的结构化查询语句对所述目标第一数据进行分析。
在本实施例中,目标数据库可以支持使用java api按主键单条数据获取,或者按主键进行条件scan查询多条数据,也可以配合impala查询引擎,使用SQL语言进行分析查询。
需要说明的是,现有的实时数仓存储大概分为以下几种情况:(1)支持SQL查询,但数据不支持更新,只能定时获取增量更新数据,且查询需要聚合去重,效率低,此类代表为hive+habse,优点是能存储的数据量大;(2)支持数据更新,但不支持SQL查询或仅支持简单SQL,无法满足复杂分析逻辑,此类代表为elasticsearch,优点是支持索引与全文索引,查询效率高;(3)支持更新,支持SQL,但需要预先设定用来分析的单列、组合列,数据冗余量大,此类代表为phoenix、kylin,优点是查询效率高。
为了能够支持全量数据的即时分析,并且数据延迟在秒级,可选的,上述目标数据库可以是Kudu,Kudu作为一种新兴数据存储引擎,并且支持按主键更新/删除操作,支持按照主键进行索引,数据存储量大,配合Impala查询引擎,能够满足既能实时更新,又能使用SQL进行即席分析的需求,非常适合存储实时数据。
显然,上述所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。为了更好的理解上述数据分析方法,以下结合实施例对上述过程进行说明,但不用于限定本发明实施例的技术方案,具体地:
在一个可选的实施例中,图3是根据本发明实施例的数据分析方法的流程图(二),具体可以分为如下几个部分,
(1)数据采集部分
具体的,采用canal开源框架1.13版本(相当于上述实施例中的采集工具),并进行二次开发改造,获取binlog数据(相当于上述实施例中的第一数据)写入kafka(相当于上述实施例中的数据存储系统),被采集Mysql实例需要开启binlog协议,使用row模式,并对账号开启相应权限。canal可在不同机器部署多套,即可支持高可用;
需要说明的是,canal部署采集程序,需要注意的几个配置项为:(a)配置kafkatopic,支持按表名发送topic,也可以全部发送到一个topic;(b)配置要采集的表名,支持正则方式配置;(c)配置发送kafka时,key值计算使用的字段,可以单独表配置,不配置默认使用主键计算。
此外,如果数据库不能使用工具采集,也可通过编写程序按照updatetime,高频轮询方式获取数据库变更,但此方式提高了对数据库的压力,且实时性较差。
(2)数据传输部分
采用kafka作为实时数据队列,由于数据(相当于上述实施例中第二数据)按照唯一主键进行hash发送,因此同条数据在kafka单个分区始终保持有序性,不会出现因为乱序,而导致的脏数据。如果数据量增加,只需调整kafka分区数即可提高数据吞吐量。
(3)数据消费部分
采用Sparkstreaming框架编写消费程序,将第一数据分布式写入Kudu,消费程序重要的功能有:1)支持幂等操作,避免网络波动时产生的第一数据重复写入引起的脏数据;2)支持kudu表自动增加列,如果原数据表增加列,消费程序感知到后会根据列名与数据类型自动在kudu表中增加该列,减少运维成本;3)支持主键修改,根据修改前第一数据主键将第一数据删除后重新增加。
此外该消费程序还支持外部文件(相当于上述实施例中的目标文件)配置特定采集方案,可配置项为:1)配置kudu对应表的前缀,不同库,但同表名的数据,根据前缀拼出Kudu表名,并写入同一张kudu表中;2)配置kudu数据表主键是否增加MySQL库名,避免不同数据库的主键重复;
3)支持列过滤,可过滤不需要的列;4)支持表名映射,不同表名同结构数据也可写入同一个kudu表;5)支持表名过滤,可过滤掉不需要的表。
(4)数据存储部分
使用kudu作为数据存储组件,kudu表数据支持按照主键更新,因此要求该表主键要与MySQL主键对应,从而确保数据唯一。如果需要提高查询性能,可根据时间列或者维度列增加联合主键列,这些列通常数据不会改变,并大多数时间会出现在查询条件中。
(5)数据查询部分
数据查询支持两种方式:a)使用java api按主键单条数据获取,或者按主键进行条件scan查询多条数据;b)配合impala查询引擎,使用SQL语言进行分析查询。
此外,通过canal采集后,需要构建新的数据结构,将从MySQL数据库中采集的第一数据,作为此数据结构的一部分,需要说明的是,此第二数据的数据结构使用canal1.13flatjson结构稍作更改,结构如下:
具体每个字段的说明可以参考上述实施例中的表1,此外,需要说明的是,针对MySQL数据库,使用的采集工具为canal,如果需要从其余数据库中采集第一数据,例如oracle或者sqlserver,则需使用不同采集工具,所以第二数据的格式会有不同,由消费端兼容即可。
需要说明的是,通过kafka数据缓存系统,可以解耦上下游,写入程序出现问题可以只回溯kafka数据时间,canal正常写入无需重启调整配置。并且多个下游可以都消费此kafka队列,避免上游开多个canal拉取数据对源数据库造成影响。
此外,本发明实施例的上述技术方案,使用kudu作为数据存储介质,聚合不同数据库的同结构数据,一方面实现了全部增量数据的实时聚合;另一方面实现了不同物理数据库之间的关联聚合查询,且支持海量数据高效率分析。并且基于Kudu数据的高可用性、支持更新、支持海量数据的特性,我们可以将多个数据库的实时数据存储其中。依托Kudu即可使用java api查询,又可以使用impala编写SQL查询的特点,既满足了分析人员在程序按照主键查询单条数据的需求,又支持了分析人员进行复杂统计的需求。同时,由于kudu数据支持按照哈希和范围将数据分块,且impala为mpp查询引擎,这两个特性使得查询性能提高了数个量级,进而可以为分析人员的统计分析工作节约大量时间,并且可以将某些负载不高的查询直接对接前台报表或者大屏显示。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例的方法。
在本实施例中还提供了一种数据分析装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的设备较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
图4是根据本发明实施例的数据分析装置的结构框图,该装置包括:
采集模块42,用于通过采集工具从多个数据库中采集多个第一数据,并获取所述多个第一数据对应的主键信息,其中,所述多个第一数据具有相同的数据结构;
第一发送模块44,用于将包括有所述多个第一数据和所述主键信息的第二数据发送至数据缓存系统,以使所述数据缓存系统保存所述第二数据;
第二发送模块46,用于从所述数据缓存系统中获取所述多个第二数据,并将从所述多个第二数据中提取的所述多个第一数据发送至目标数据库,以在所述目标数据库中对所述多个第一数据进行分析。
通过上述模块,采集工具从多个数据库中采集具有相同数据结构的多个第一数据,并获取所述多个第一数据对应的主键信息,将包括有所述多个第一数据和所述主键信息的第二数据发送至数据缓存系统,以使所述数据缓存系统保存所述第二数据;从所述数据缓存系统中获取所述多个第二数据,并将从所述多个第二数据中提取的所述多个第一数据发送至目标数据库,以在所述目标数据库中对所述多个第一数据进行分析。也就是说,通过采集工具从数据库中采集相同数据结构的第一数据,并保存至数据缓存系统,进而从数据缓存系统中将第一数据发送至目标数据库中,进而统一在目标数据库中进行数据分析。采用上述技术方案,解决了在对数据进行分析的过程中,数据分散在大量的数据库中,导致无法集中对数据进行分析等问题。进而通过将具有相同数据结构的数据保存在目标数据库中,提高了查询效率。
需要说明的是,采集模块42用于确定所述采集工具对应的采集方式;基于所述采集方式从所述多个数据库中采集具有相同表名称的多个第一数据。
在本实施例中,针对不同类型的数据库,通过不同的采集工具来采集,若多个第一数据都保存在MySQL数据库中,则可以通过canal部署采集程序(相当于采集工具),通过采集程序确定对应的采集方式,基于采集方式从所述多个数据库中采集具有相同表名称的多个第一数据。具体的,在使用canal框架时,可以使用canal开源框架1.13版本,并进行二次开发改造,获取binlog数据写入数据缓存系统,被采集MySQL数据库需要开启binlog协议,使用row模式,并对账号开启相应权限,且canal可在不同机器部署多套,即可支持高可用。需要说明的是,如果数据库不能使用采集工具来采集,可以通过编写程序按照updatetime,高频轮询方式获取数据库变更,但此方式提高了对数据库的压力,且实时性较差。
可选的,第一发送模块44用于通过所述采集工具配置所述数据缓存系统中的存储队列;将所述第二数据发送至所述存储队列,以使所述存储队列保存所述第二数据。
在本实施例中,在通过采集工具将多个第一数据从MySQL数据库中采集以后,需要将多个第一数据和包含所述主键信息的其余信息一起,作为第二数据,发送至数据缓存系统,使数据缓存系统保存所述第二数据,具体的第二数据的数据结构可以如下表1所示。且将第二数据发送至数据缓存系统过程中,需要通过采集工具配置数据缓存系统中的存储队列,随后将所述第二数据发送至所述存储队列,以使所述存储队列保存所述第二数据。需要说明的是,通过采集工具配置数据缓存系统中的存储队列,支持按数据库中的表名发送到存储队列,也可以全部发送到一个存储队列。且配置发送数据缓存系统时,可以通过第一数据的key值计算使用的字段,也可以单独表配置,若不配置,则默认使用主键计算。
在一个可选的实施例中,第二发送模块46用于获取目标对象配置的目标文件,其中,所述目标文件用于指示对所述目标数据库的配置信息;根据所述目标文件中指示的配置信息配置所述目标数据库。
在本实施例中,可以通过Sparks treaming框架编写消费程序,首先获取目标对象配置的目标文件,随后消费程序根据目标对象配置的目标文件中指示的配置信息,配置目标数据库,具体的,目标文件中的配置信息包括如下配置项:(1)配置目标数据对应表的前缀,根据前缀拼出目标数据库表名,并写入同一张目标数据库的表中;(2)配置目标数据库对应表的主键是否增加MySQL库名,避免不同库的主键重复;(3)支持列过滤,可过滤不需要的列;(4)支持表名映射,不同表名,但同结构数据也可写入同一个目标数据库表;(5)支持表名过滤,可过滤掉不需要的表。
可选的,第二发送模块46还用于检测所述多个第一数据在所述多个数据库中对应的第一数据结构是否变化成了第二数据结构;在所述第一数据结构已变化为所述第二数据结构的情况下,将所述目标数据库的第一数据结构修改为所述第二数据结构。
在本实施例中,在消费程序从第二数据中提取出第一数据,并将第一数据发送至目标数据库之后,需要判断第一数据在原先数据库中的第一数据结构是否发生了变化,例如第一数据结构增加了一列,变成了第二数据结构,此时消费程序会感知到变化,并将目标数据库中的第一数据结构修改为第二数据结构。
可选的,第二发送模块46还用于通过所述目标数据库接收目标对象的查询请求,其中,所述查询请求携带有所述主键信息;根据所述主键信息从所述目标数据库中查询与所述主键信息对应的目标第一数据;通过所述目标对象编辑的结构化查询语句对所述目标第一数据进行分析。
在本实施例中,目标数据库可以支持使用java api按主键单条数据获取,或者按主键进行条件scan查询多条数据,也可以配合impala查询引擎,使用SQL语言进行分析查询。
需要说明的是,现有的实时数仓存储大概分为以下几种情况:(1)支持SQL查询,但数据不支持更新,只能定时获取增量更新数据,且查询需要聚合去重,效率低,此类代表为hive+habse,优点是能存储的数据量大;(2)支持数据更新,但不支持SQL查询或仅支持简单SQL,无法满足复杂分析逻辑,此类代表为elasticsearch,优点是支持索引与全文索引,查询效率高;(3)支持更新,支持SQL,但需要预先设定用来分析的单列、组合列,数据冗余量大,此类代表为phoenix、kylin,优点是查询效率高。
为了能够支持全量数据的即时分析,并且数据延迟在秒级,可选的,上述目标数据库可以是Kudu,Kudu作为一种新兴数据存储引擎,并且支持按主键更新/删除操作,支持按照主键进行索引,数据存储量大,配合Impala查询引擎,能够满足既能实时更新,又能使用SQL进行即席分析的需求,非常适合存储实时数据。
本发明的实施例还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。
可选地,在本实施例中,上述存储介质可以被设置为存储用于执行以下步骤的计算机程序:
S1,通过采集工具从多个数据库中采集多个第一数据,并获取所述多个第一数据对应的主键信息,其中,所述多个第一数据具有相同的数据结构;
S2,将包括有所述多个第一数据和所述主键信息的第二数据发送至数据缓存系统,以使所述数据缓存系统保存所述第二数据;
S3,从所述数据缓存系统中获取所述多个第二数据,并将从所述多个第二数据中提取的所述多个第一数据发送至目标数据库,以在所述目标数据库中对所述多个第一数据进行分析。
在一个示例性实施例中,上述计算机可读存储介质可以包括但不限于:U盘、只读存储器(Read-Only Memory,简称为ROM)、随机存取存储器(Random Access Memory,简称为RAM)、移动硬盘、磁碟或者光盘等各种可以存储计算机程序的介质。
本实施例中的具体示例可以参考上述实施例及示例性实施方式中所描述的示例,本实施例在此不再赘述。
本发明的实施例还提供了一种电子装置,包括存储器和处理器,该存储器中存储有计算机程序,该处理器被设置为运行计算机程序以执行上述任一项方法实施例中的步骤。
可选地,在本实施例中,上述处理器可以被设置为通过计算机程序执行以下步骤:
S1,通过采集工具从多个数据库中采集多个第一数据,并获取所述多个第一数据对应的主键信息,其中,所述多个第一数据具有相同的数据结构;
S2,将包括有所述多个第一数据和所述主键信息的第二数据发送至数据缓存系统,以使所述数据缓存系统保存所述第二数据;
S3,从所述数据缓存系统中获取所述多个第二数据,并将从所述多个第二数据中提取的所述多个第一数据发送至目标数据库,以在所述目标数据库中对所述多个第一数据进行分析。
在一个示例性实施例中,上述电子装置还可以包括传输设备以及输入输出设备,其中,该传输设备和上述处理器连接,该输入输出设备和上述处理器连接。
本实施例中的具体示例可以参考上述实施例及示例性实施方式中所描述的示例,本实施例在此不再赘述。
显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种数据分析方法,其特征在于,包括:
通过采集工具从多个数据库中采集多个第一数据,并获取所述多个第一数据对应的主键信息,其中,所述多个第一数据具有相同的数据结构;
将包括有所述多个第一数据和所述主键信息的第二数据发送至数据缓存系统,以使所述数据缓存系统保存所述第二数据;
从所述数据缓存系统中获取所述多个第二数据,并将从所述多个第二数据中提取的所述多个第一数据发送至目标数据库,以在所述目标数据库中对所述多个第一数据进行分析。
2.根据权利要求1所述的方法,其特征在于,通过采集工具从多个数据库中采集多个第一数据,包括:
确定所述采集工具对应的采集方式;
基于所述采集方式从所述多个数据库中采集具有相同表名称的多个第一数据。
3.根据权利要求1所述的方法,其特征在于,将包括有所述多个第一数据和所述主键信息的第二数据发送至数据缓存系统,以使所述数据缓存系统保存所述第二数据,包括:
通过所述采集工具配置所述数据缓存系统中的存储队列;
将所述第二数据发送至所述存储队列,以使所述存储队列保存所述第二数据。
4.根据权利要求1所述的方法,其特征在于,将从所述多个第二数据中提取的所述多个第一数据发送至目标数据库之后,还包括:
检测所述多个第一数据在所述多个数据库中对应的第一数据结构是否变化成了第二数据结构;
在所述第一数据结构已变化为所述第二数据结构的情况下,将所述目标数据库的第一数据结构修改为所述第二数据结构。
5.根据权利要求1所述的方法,其特征在于,将从所述多个第二数据中提取的所述多个第一数据发送至目标数据库之前,所述方法还包括:
获取目标对象配置的目标文件,其中,所述目标文件用于指示对所述目标数据库的配置信息;
根据所述目标文件中指示的配置信息配置所述目标数据库。
6.根据权利要求1所述的方法,其特征在于,将从所述多个第二数据中提取的所述多个第一数据发送至目标数据库之后,还包括:
通过所述目标数据库接收目标对象的查询请求,其中,所述查询请求携带有所述主键信息;
根据所述主键信息从所述目标数据库中查询与所述主键信息对应的目标第一数据;
通过所述目标对象编辑的结构化查询语句对所述目标第一数据进行分析。
7.一种数据分析装置,其特征在于,包括:
采集模块,用于通过采集工具从多个数据库中采集多个第一数据,并获取所述多个第一数据对应的主键信息,其中,所述多个第一数据具有相同的数据结构;
第一发送模块,用于将包括有所述多个第一数据和所述主键信息的第二数据发送至数据缓存系统,以使所述数据缓存系统保存所述第二数据;
第二发送模块,用于从所述数据缓存系统中获取所述多个第二数据,并将从所述多个第二数据中提取的所述多个第一数据发送至目标数据库,以在所述目标数据库中对所述多个第一数据进行分析。
8.根据权利要求7所述的装置,其特征在于,所述采集模块,还用于确定所述采集工具对应的采集方式;基于所述采集方式从所述多个数据库中采集具有相同表名称的多个第一数据。
9.一种计算机可读的存储介质,其特征在于,所述计算机可读的存储介质包括存储的程序,其中,所述程序运行时执行上述权利要求1至6任一项中所述的方法。
10.一种电子装置,包括存储器和处理器,其特征在于,所述存储器中存储有计算机程序,所述处理器被设置为通过所述计算机程序执行所述权利要求1至6任一项中所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110469886.4A CN113282598A (zh) | 2021-04-28 | 2021-04-28 | 数据分析方法及装置、存储介质及电子装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110469886.4A CN113282598A (zh) | 2021-04-28 | 2021-04-28 | 数据分析方法及装置、存储介质及电子装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113282598A true CN113282598A (zh) | 2021-08-20 |
Family
ID=77277812
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110469886.4A Pending CN113282598A (zh) | 2021-04-28 | 2021-04-28 | 数据分析方法及装置、存储介质及电子装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113282598A (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109284334A (zh) * | 2018-09-05 | 2019-01-29 | 拉扎斯网络科技(上海)有限公司 | 实时数据库同步方法、装置、电子设备及存储介质 |
CN110196884A (zh) * | 2019-05-31 | 2019-09-03 | 北京大米科技有限公司 | 基于分布式数据库的数据写入方法、存储介质和电子设备 |
CN110647579A (zh) * | 2019-08-16 | 2020-01-03 | 北京百度网讯科技有限公司 | 数据同步方法及装置、计算机设备与可读介质 |
CN110674213A (zh) * | 2019-08-30 | 2020-01-10 | 中国人民财产保险股份有限公司 | 一种数据同步方法及装置 |
CN111241044A (zh) * | 2020-01-08 | 2020-06-05 | 中国联合网络通信集团有限公司 | 搭建异构数据库的方法、装置、设备及可读存储介质 |
CN112000737A (zh) * | 2020-08-14 | 2020-11-27 | 苏州浪潮智能科技有限公司 | 基于多云管理的数据同步方法、系统、终端及存储介质 |
-
2021
- 2021-04-28 CN CN202110469886.4A patent/CN113282598A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109284334A (zh) * | 2018-09-05 | 2019-01-29 | 拉扎斯网络科技(上海)有限公司 | 实时数据库同步方法、装置、电子设备及存储介质 |
CN110196884A (zh) * | 2019-05-31 | 2019-09-03 | 北京大米科技有限公司 | 基于分布式数据库的数据写入方法、存储介质和电子设备 |
CN110647579A (zh) * | 2019-08-16 | 2020-01-03 | 北京百度网讯科技有限公司 | 数据同步方法及装置、计算机设备与可读介质 |
CN110674213A (zh) * | 2019-08-30 | 2020-01-10 | 中国人民财产保险股份有限公司 | 一种数据同步方法及装置 |
CN111241044A (zh) * | 2020-01-08 | 2020-06-05 | 中国联合网络通信集团有限公司 | 搭建异构数据库的方法、装置、设备及可读存储介质 |
CN112000737A (zh) * | 2020-08-14 | 2020-11-27 | 苏州浪潮智能科技有限公司 | 基于多云管理的数据同步方法、系统、终端及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110362544B (zh) | 日志处理系统、日志处理方法、终端及存储介质 | |
CN113360554B (zh) | 一种数据抽取、转换和加载etl的方法和设备 | |
US7330933B2 (en) | Application cache pre-loading | |
CN111597257A (zh) | 数据库的同步方法、装置、存储介质及终端 | |
CN111339171B (zh) | 数据查询的方法、装置及设备 | |
CN106951557B (zh) | 日志关联方法、装置和应用其的计算机系统 | |
CN105279276A (zh) | 一种数据库索引优化系统 | |
CN110928903B (zh) | 数据提取方法及装置、设备和存储介质 | |
CN108920607B (zh) | 字段发现方法、装置及电子设备 | |
CN112559567A (zh) | 适用于olap查询引擎的查询方法及装置 | |
CN115408381A (zh) | 数据处理方法及相关设备 | |
CN108664492B (zh) | 一种向用户推送内容的方法、装置、电子设备和存储介质 | |
CN114595129A (zh) | 一种可配置的多维度数据监控方法、装置及存储介质 | |
CN114398520A (zh) | 数据检索方法、系统、装置、电子设备及存储介质 | |
CN108549714B (zh) | 一种数据处理方法及装置 | |
CN113849499A (zh) | 数据的查询方法、装置、存储介质及电子装置 | |
CN106919566A (zh) | 一种基于海量数据的查询统计方法及系统 | |
CN111125226B (zh) | 一种配置数据采集方法及装置 | |
CN112631754A (zh) | 数据处理方法、装置、存储介质及电子装置 | |
CN113515541A (zh) | 数据库的数据查询方法、装置和系统 | |
CN116800596A (zh) | 一种日志无损压缩分析方法和系统 | |
CN113282598A (zh) | 数据分析方法及装置、存储介质及电子装置 | |
CN114817300A (zh) | 基于sql语句的日志查询方法及其应用 | |
CN107766380B (zh) | 一种业务数据的均衡分布及搜索方法及其装置、系统 | |
CN112131215A (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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20210820 |
|
RJ01 | Rejection of invention patent application after publication |