一种跨源异构数据智能可视化分析展示方法和设备与流程

专利检索2022-05-11  18

1.本技术涉及计算机大数据智能分析
技术领域
:,更具体地,涉及一种跨源异构数据智能可视化分析展示方法和设备。
背景技术
::2.企业不同的业务系统往往分散在不同的数据库中,且服从数据库三范式。而进行商业智能分析时,往往需要将不同业务系统的数据表关联后形成宽表,再将表中的数据转换成相应的图形或表格,进行可视化展示,从而使枯燥的数据看起来更直观更容易理解。3.要将不同业务系统的数据表关联后形成宽表,就需要将不同数据库的数据进行跨库关联查询并进行分析,从而形成宽表。一般来说,传统的实现跨库关联查询分析的方式有两种:一种是通过单独etl数据转换工具把不同数据库中的相关数据抽取到统一的库中,然后对该数据库中的数据进行查询分析操作,最终形成一个宽表,再进行数据可视化转换,从而进行可视化展示;二是对现有业务代码进行重构,在业务代码中进行join关联并查询数据。4.第一种方式在抽取数据时会对生产数据库造成性能压力,也无法实时捕获生产数据库中的数据变更,同时将数据抽取到外部数据库,会存在数据安全问题。第二种方式会直接影响到业务系统,依赖于业务系统的接口改造,往往会涉及和厂商的接口费用。5.因此,如何在不改变生产数据库的数据和不影响业务代码的基础上实现跨源异构数据可视化展示,是目前有待解决的技术问题。技术实现要素:6.本发明提供一种跨源异构数据智能可视化分析展示方法,用以解决现有技术中无法在不改变生产数据库的数据和不影响业务代码的基础上实现跨源异构数据可视化展示的技术问题。7.该方法应用于包括可视化数据智能平台、分布式内存数据库和多个异构数据源的系统中,包括:当检测到对目标异构数据的可视化展示指令时,在所述分布式内存数据库中通过jdbc驱动创建与所述目标异构数据所在各目标数据源对应的连接器,并通过各所述连接器连接所述分布式内存数据库和各所述目标数据源;在所述可视化数据智能平台中通过所述分布式内存数据库的python驱动和sqlalchemy框架创建所述可视化数据智能平台与所述分布式内存数据库的连接;根据与所述目标异构数据对应的关联信息在所述可视化数据智能平台中生成sql建表语句;根据所述sql建表语句在所述分布式内存数据库中通过各所述连接器从所述目标数据源获取所述目标异构数据,并生成多表关联的目标数据表;根据所述目标数据表在所述可视化数据智能平台中对所述目标异构数据进行可视化展示;其中,所述关联信息包括关联数据表,关联字段和关联类型。8.在本技术一些实施例中,根据所述目标数据表在所述可视化数据智能平台中对所述目标异构数据进行可视化展示,具体为:基于sqlalchemy框架将所述关联数据表与所述目标数据表进行映射,并将所述目标数据表的目标表名记录在元数据库中;在所述可视化数据智能平台中选择所述目标表名,并基于所述目标表名从所述分布式内存数据库中获取与所述目标数据表对应的可视化数据;将所述可视化数据返回前端,以对所述目标异构数据进行可视化展示。9.在本技术一些实施例中,基于所述目标表名从所述分布式内存数据库中获取与所述目标数据表对应的可视化数据,具体为:基于所述目标表名生成sql语句;根据所述sql语句到所述分布式内存数据库中进行查询,根据查询结果获取所述可视化数据。10.在本技术一些实施例中,根据所述sql建表语句在所述分布式内存数据库中通过各所述连接器从所述目标数据源获取所述目标异构数据,并生成多表关联的目标数据表,具体为:将所述sql建表语句拆分为多条单表查询语句;依次按照各所述单表查询语句通过各所述连接器将所述目标异构数据从各所述目标数据源抽取到所述分布式内存数据库中,并在分布式内存数据库中生成所述目标数据表。11.在本技术一些实施例中,在所述分布式内存数据库中通过jdbc驱动创建与所述目标异构数据所在目标数据源对应的连接器之后,所述方法还包括:基于连接器名、所述目标数据源的数据源名和所述关联数据表的表名将所述关联数据表的表名信息映射到所述分布式内存数据库中。12.在本技术一些实施例中,基于连接器名、所述目标数据源的数据源名和所述关联数据表的表名将所述关联数据表的表名信息映射到所述分布式内存数据库中,具体为:将所述连接器名作为所述分布式内存数据库的catalog,将所述数据源名作为所述分布式内存数据库的schema,将所述表名作为所述分布式内存数据库的table;基于catalog.schema.table将所述表名信息映射到所述分布式内存数据库中。13.在本技术一些实施例中,在根据与所述目标异构数据对应的关联信息在所述可视化数据智能平台中生成sql建表语句之前,所述方法还包括:在所述可视化数据智能平台中选择添加所述关联信息。14.在本技术一些实施例中,所述关联数据表是基于数据表关联映射添加到所述可视化数据智能平台中的,所述数据表关联映射是根据所述可视化数据智能平台与所述分布式内存数据库的连接名、所述连接器名和所述表名确定的。15.相应的,本发明还提供了一种跨源异构数据智能可视化分析展示设备,应用于包括可视化数据智能平台、分布式内存数据库和多个异构数据源的系统中,所述设备包括:第一创建模块,用于当检测到对目标异构数据的可视化展示指令时,在所述分布式内存数据库中通过jdbc驱动创建与所述目标异构数据所在各目标数据源对应的连接器,并通过各所述连接器连接所述分布式内存数据库和各所述目标数据源;第二创建模块,用于在所述可视化数据智能平台中通过所述分布式内存数据库的python驱动和sqlalchemy框架创建所述可视化数据智能平台与所述分布式内存数据库的连接;第一生成模块,用于根据与所述目标异构数据对应的关联信息在所述可视化数据智能平台中生成sql建表语句;第二生成模块,用于根据所述sql建表语句在所述分布式内存数据库中通过各所述连接器从所述目标数据源获取所述目标异构数据,并生成多表关联的目标数据表;展示模块,用于根据所述目标数据表在所述可视化数据智能平台中对所述目标异构数据进行可视化展示;其中,所述关联信息包括关联数据表,关联字段和关联类型。16.相应的,本发明还提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当所述指令在终端设备上运行时,使得所述终端设备执行如上所述的跨源异构数据智能可视化分析展示方法。17.通过应用以上技术方案,在包括可视化数据智能平台、分布式内存数据库和多个异构数据源的系统中,当检测到对目标异构数据的可视化展示指令时,在分布式内存数据库中通过jdbc驱动创建与目标异构数据所在各目标数据源对应的连接器,并通过各连接器连接分布式内存数据库和各目标数据源;在可视化数据智能平台中通过分布式内存数据库的python驱动和sqlalchemy框架创建可视化数据智能平台与分布式内存数据库的连接;根据与目标异构数据对应的关联信息在可视化数据智能平台中生成sql建表语句;根据sql建表语句在分布式内存数据库中通过各连接器从目标数据源获取目标异构数据,并生成多表关联的目标数据表;根据目标数据表在可视化数据智能平台中对目标异构数据进行可视化展示,在不改变生产数据库的数据和不影响业务代码的基础上实现跨源异构数据智能可视化分析展示,提高了数据处理效率和安全性,同时避免了接口改造引起的成本提高。附图说明18.为了更清楚地说明本技术实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。19.图1示出了本发明实施例提出的一种跨源异构数据智能可视化分析展示方法的流程示意图;图2示出了本发明实施例中包括可视化数据智能平台、分布式内存数据库和多个异构数据源的系统的结构示意图;图3示出了本发明实施例提出的一种跨源异构数据智能可视化分析展示设备的结构示意图。具体实施方式20.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。21.本技术实施例提供一种跨源异构数据智能可视化分析展示方法,应用于包括可视化数据智能平台、分布式内存数据库和多个异构数据源的系统中,如图1所示,所述方法包括以下步骤:步骤s101,当检测到对目标异构数据的可视化展示指令时,在所述分布式内存数据库中通过jdbc驱动创建与所述目标异构数据所在各目标数据源对应的连接器,并通过各所述连接器连接所述分布式内存数据库和各所述目标数据源。22.本实施例中,目标异构数据包括至少两个分别存储在不同异构数据源的异构数据,举例来说,目标异构数据包括tablea.c1字段和tableb.c1字段,tablea.c1字段存储在mysql数据库中的数据表dba.tablea,而tableb.c1字段存储在postgresql数据库中的数据表dbb.tableb。23.本实施例的方法应用于包括可视化数据智能平台、分布式内存数据库和多个异构数据源的系统中,当需要对目标异构数据进行可视化展示时,如饼图展示、直方图展示等,用户可在可视化数据智能平台的前端输入相应的可视化展示指令,在检测到该可视化展示指令时,在分布式内存数据库中通过jdbc(javadatabaseconnectivity,java数据库连接)驱动创建与目标异构数据所在各目标数据源对应的连接器,各连接器是用于连接分布式内存数据库与各目标数据源的进程,通过各连接器可连接分布式内存数据库和各目标数据源。24.为了进一步提高数据处理效率,在本技术优选的实施例中,所述分布式内存数据库采用全内存分布式mpp架构,mpp(massivelyparallelprocessing),即大规模并行处理。25.步骤s102,在所述可视化数据智能平台中通过所述分布式内存数据库的python驱动和sqlalchemy框架创建所述可视化数据智能平台与所述分布式内存数据库的连接。26.本实施例中,通过分布式内存数据库的python驱动和sqlalchemy框架创建可视化数据智能平台与所述分布式内存数据库的连接。27.sqlalchemy是python中一个通过orm操作数据库的框架。sqlalchemy对象关系映射器提供了一种方法,用于将用户定义的python类与数据库表相关联,并将这些类(对象)的实例与其对应表中的行相关联。它包括一个透明地同步对象及其相关行之间状态的所有变化的系统,称为工作单元,以及根据用户定义的类及其定义的彼此之间的关系表达数据库查询的系统。28.步骤s103,根据与所述目标异构数据对应的关联信息在所述可视化数据智能平台中生成sql建表语句。29.本实施例中,所述关联信息包括关联数据表,关联字段和关联类型,举例来说,若目标异构数据包括上述的tablea.c1字段和tableb.c1字段,关联数据表为数据表dba.tablea和数据表dbb.tableb,关联字段为tablea.c1字段和tableb.c1字段,关联类型可以为内连接。30.根据该关联信息可在可视化数据智能平台中生成sql建表语句,并可将该sql建表语句传递给分布式内存数据库,在本技术具体的应用场景中,可按照createtable《table_name1_table_name2》asselect*from《table_name1》《join_method》《table_name2》on《column1》=《column2》的方式拼接sql建表语句。31.为了提高数据处理效率,在本技术一些实施例中,在所述分布式内存数据库中通过jdbc驱动创建与所述目标异构数据所在目标数据源对应的连接器之后,所述方法还包括:基于连接器名、所述目标数据源的数据源名和所述关联数据表的表名将所述关联数据表的表名信息映射到所述分布式内存数据库中。32.本实施例中,在创建连接器之后,对各连接器进行命名,基于连接器名、数据源名和关联数据表的表名将关联数据表的表名信息映射到分布式内存数据库中。33.为了提高数据处理效率,在本技术一些实施例中,基于连接器名、所述目标数据源的数据源名和所述关联数据表的表名将所述关联数据表的表名信息映射到所述分布式内存数据库中,具体为:将所述连接器名作为所述分布式内存数据库的catalog,将所述数据源名作为所述分布式内存数据库的schema,将所述表名作为所述分布式内存数据库的table;基于catalog.schema.table将所述表名信息映射到所述分布式内存数据库中。34.本实施例中,举例来说,上述的数据表dba.tablea对应的连接器名为conna,数据表dba.tablea对应的数据源名为mysql,数据表dba.tablea的表名为tablea。因此,对于数据表dba.tablea,将conna作为分布式内存数据库的catalog,将mysql作为分布式内存数据库的schema,将tablea作为分布式内存数据库的table。对于数据表dbb.tableb,以此类推。35.为了可靠的创建sql建表语句,在本技术一些实施例中,在根据与所述目标异构数据对应的关联信息在所述可视化数据智能平台中生成sql建表语句之前,所述方法还包括:在所述可视化数据智能平台中选择添加所述关联信息。36.本实施中,在可视化数据智能平台可从多种关联信息中选择与目标异构数据对应的关联信息,可在可视化数据智能平台的前端选择添加该关联信息。37.为了提高数据处理效率,在本技术一些实施例中,所述关联数据表是基于数据表关联映射添加到所述可视化数据智能平台中的,所述数据表关联映射是根据所述可视化数据智能平台与所述分布式内存数据库的连接名、所述连接器名和所述表名确定的。38.本实施例中,基于数据表关联映射将关联数据表添加到可视化数据智能平台中,数据表关联映射由可视化数据智能平台与分布式内存数据库的连接名、连接器名和表名确定,举例来说,对于上述数据表dba.tablea,可视化数据智能平台与分布式内存数据库的连接名为rdp1,连接器名为conna,表名为tablea,在可视化数据智能平台中选择添加rdp1.conna.tablea。39.步骤s104,根据所述sql建表语句在所述分布式内存数据库中通过各所述连接器从所述目标数据源获取所述目标异构数据,并生成多表关联的目标数据表。40.本实施例中,在分布式内存数据库中执行sql建表语句,通过各连接器从目标数据源获取目标异构数据,并生成多表关联的目标数据表。举例来说,对于上述数据表dba.tablea和数据表dbb.tableb,tablea和tableb关联生成目标数据表,目标数据表可命名为tablea_tableb。41.为了提高数据处理效率,在本技术一些实施例中,根据所述sql建表语句在所述分布式内存数据库中通过各所述连接器从所述目标数据源获取所述目标异构数据,并生成多表关联的目标数据表,具体为:将所述sql建表语句拆分为多条单表查询语句;依次按照各所述单表查询语句通过各所述连接器将所述目标异构数据从各所述目标数据源抽取到所述分布式内存数据库中,并在分布式内存数据库中生成所述目标数据表。42.本实施例中,先将sql建表语句拆分为多条单表查询语句,分别按顺序将数据按照单表查询语句从目标数据源抽取至分布式内存数据库中,再在分布式内存数据库中生成目标数据表。43.需要说明的是,以上实施例的方案仅为本技术所提出的一种具体实现方案,其他根据sql建表语句在分布式内存数据库中通过各连接器从目标数据源获取目标异构数据,并生成多表关联的目标数据表的方式均属于本技术的保护范围。44.步骤s105,根据所述目标数据表在所述可视化数据智能平台中对所述目标异构数据进行可视化展示。45.为了可靠的对目标异构数据进行可视化展示,在本技术一些实施例中,根据所述目标数据表在所述可视化数据智能平台中对所述目标异构数据进行可视化展示,具体为:基于sqlalchemy框架将所述关联数据表与所述目标数据表进行映射,并将所述目标数据表的目标表名记录在元数据库中;在所述可视化数据智能平台中选择所述目标表名,并基于所述目标表名从所述分布式内存数据库中获取与所述目标数据表对应的可视化数据;将所述可视化数据返回前端,以对所述目标异构数据进行可视化展示。46.本实施例中,先基于sqlalchemy框架将关联数据表与目标数据表进行映射,将目标数据表的目标表名(如tablea_tableb)记录在元数据库中,然后再可视化数据智能平台中选择目标表名,并基于目标表名从分布式内存数据库中获取对应的可视化数据,再将可视化数据返回前端进行展示。47.为了可靠的对目标异构数据进行可视化展示,在本技术一些实施例中,基于所述目标表名从所述分布式内存数据库中获取与所述目标数据表对应的可视化数据,具体为:基于所述目标表名生成sql语句;根据所述sql语句到所述分布式内存数据库中进行查询,根据查询结果获取所述可视化数据。48.本实施例中,先基于目标表名生成sql语句,将sql语句传递到分布式内存数据库中进行查询,并将查询结果作为可视化数据。49.可以理解的是,步骤s101和步骤s102的顺序可以互换。50.如图2所示为一实施例中包括可视化数据智能平台、分布式内存数据库和多个异构数据源的系统的结构示意图,图中,可视化数据智能平台通过python驱动和sqlalchemy框架连接分布式内存数据库,分布式内存数据库中包括sql解析器和优化器、以及mpp执行引擎,分布式内存数据库通过连接器连接各数据源,连接器包括moxe连接器、rdbms连接器、jdbc连接器、hadoop连接器,数据源包括moxe数据存储、rdbms数据存储、jdbc兼容数据存储、hive及hdfs。51.通过应用以上技术方案,在包括可视化数据智能平台、分布式内存数据库和多个异构数据源的系统中,当检测到对目标异构数据的可视化展示指令时,在分布式内存数据库中通过jdbc驱动创建与目标异构数据所在各目标数据源对应的连接器,并通过各连接器连接分布式内存数据库和各目标数据源;在可视化数据智能平台中通过分布式内存数据库的python驱动和sqlalchemy框架创建可视化数据智能平台与分布式内存数据库的连接;根据与目标异构数据对应的关联信息在可视化数据智能平台中生成sql建表语句;根据sql建表语句在分布式内存数据库中通过各连接器从目标数据源获取目标异构数据,并生成多表关联的目标数据表;根据目标数据表在可视化数据智能平台中对目标异构数据进行可视化展示,在不改变生产数据库的数据和不影响业务代码的基础上实现跨源异构数据智能可视化分析展示,提高了数据处理效率和安全性,同时避免了接口改造引起的成本提高。52.为了进一步阐述本发明的技术思想,现结合具体的应用场景,对本发明的技术方案进行说明。53.在本实施例中,使用mysql数据库和postgresql数据库作为数据源,mysql数据库中有数据表dba.tablea,postgresql数据库中有数据表dbb.tableb。对这两张表的tablea.c1字段和tableb.c1字段进行内连接,并实现一个饼图的展示。具体步骤如下:1.在分布式全内存数据库中创建mysql和postgresql的连接器,分别名为conna和connb,将分布式全内存数据库与上述两个异构数据源mysql和postgresql分别同时进行连接,代码如下:createconnectorconnatypemysqlwithdatabase=’dba’,host=’127.0.0.1’,port=’3306’,user=’root’,password=’root’ꢀnode*catalog*schema*table*;createconnectorconnbtypepostgreswithdatabase=’dbb’,host=’127.0.0.1’,port=’5432,user=’root’,password=’root’ꢀnode*catalog*schema*table*;2.在可视化数据智能平台中通过sqlalchemyuri连接到分布式全内存数据库,连接名为rdp1。54.3.在可视化数据智能平台中选择添加rdp1.conna.tablea和rdp1.connb.tableb,建立数据表关联映射;其中,关联方式为内连接,关联字段为tablea.c1和tableb.c1。55.4.可视化数据智能平台在接收到前端传来的关联信息后,创建一个sql建表语句,该sql建表语句如下:createtabletablea_tablebasselect*fromconna.dba.tableainnerjoinconnb.dbb.tablebonconna.tablea.c1=connb.tableb.c1;5.通过分布式全内存数据库的python驱动将上述sql建表语句传给分布式全内存数据库,从而在该分布式全内存数据库的内存库中创建一个名为tablea_tableb的数据表,作为多表关联的目标数据表。56.6.可视化数据智能平台通过sqlalchemy获取新创建的目标数据表的目标表名,并记录在元数据库中。57.7.在可视化数据智能平台的界面中选择tablea_tableb表,并生成计算字段c2个数的饼图。在前端配置好后,会传递如下的sql语句到分布式全内存数据库中进行查询,并将查询结果作为可视化数据返回。58.sql语句如下:selectc2asc2,count(*)ascountfromrdp.tablea_tablebgroupbyc2orderbycountdesc;与本技术实施例中的一种跨源异构数据智能可视化分析展示方法相对应,本技术实施例还提出了一种跨源异构数据智能可视化分析展示设备,应用于包括可视化数据智能平台、分布式内存数据库和多个异构数据源的系统中,如图3所示,所述设备包括:第一创建模块301,用于当检测到对目标异构数据的可视化展示指令时,在所述分布式内存数据库中通过jdbc驱动创建与所述目标异构数据所在各目标数据源对应的连接器,并通过各所述连接器连接所述分布式内存数据库和各所述目标数据源;第二创建模块302,用于在所述可视化数据智能平台中通过所述分布式内存数据库的python驱动和sqlalchemy框架创建所述可视化数据智能平台与所述分布式内存数据库的连接;第一生成模块303,用于根据与所述目标异构数据对应的关联信息在所述可视化数据智能平台中生成sql建表语句;第二生成模块304,用于根据所述sql建表语句在所述分布式内存数据库中通过各所述连接器从所述目标数据源获取所述目标异构数据,并生成多表关联的目标数据表;展示模块305,用于根据所述目标数据表在所述可视化数据智能平台中对所述目标异构数据进行可视化展示;其中,所述关联信息包括关联数据表、关联字段和关联类型。59.最后应说明的是:以上实施例仅用以说明本技术的技术方案,而非对其限制;尽管参照前述实施例对本技术进行了详细的说明,本领域的普通技术人员当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不驱使相应技术方案的本质脱离本技术各实施例技术方案的精神和范围。当前第1页12当前第1页12
转载请注明原文地址:https://win.8miu.com/read-950071.html

最新回复(0)