CN116226166A - 基于数据源的数据查询方法及系统 - Google Patents
基于数据源的数据查询方法及系统 Download PDFInfo
- Publication number
- CN116226166A CN116226166A CN202310146486.9A CN202310146486A CN116226166A CN 116226166 A CN116226166 A CN 116226166A CN 202310146486 A CN202310146486 A CN 202310146486A CN 116226166 A CN116226166 A CN 116226166A
- Authority
- CN
- China
- Prior art keywords
- sql
- data
- data source
- query
- template
- 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 69
- 238000001914 filtration Methods 0.000 claims description 14
- 238000012545 processing Methods 0.000 claims description 8
- 238000004590 computer program Methods 0.000 claims description 7
- 230000002085 persistent effect Effects 0.000 claims description 3
- 238000004458 analytical method Methods 0.000 abstract description 27
- 230000000875 corresponding effect Effects 0.000 description 66
- 238000007726 management method Methods 0.000 description 14
- 238000011161 development Methods 0.000 description 10
- 230000006870 function Effects 0.000 description 9
- 230000008569 process Effects 0.000 description 8
- 238000012795 verification Methods 0.000 description 6
- 238000010586 diagram Methods 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 238000007405 data analysis Methods 0.000 description 2
- 239000004973 liquid crystal related substance Substances 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000006399 behavior Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000002596 correlated effect Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 239000006185 dispersion Substances 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000000802 evaporation-induced self-assembly Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000011835 investigation Methods 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000002688 persistence Effects 0.000 description 1
- 238000012797 qualification Methods 0.000 description 1
- 238000007619 statistical method Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 230000000007 visual effect Effects 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/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
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供一种基于数据源的数据查询方法及系统,属于大数据技术领域,通过先确定数据查询请求所对应的目标数据源;基于预设的SQL生成组件,获取目标数据源对应的SQL配置模板参数,并根据SQL配置模板参数生成目标数据源对应的SQL配置模板;根据数据查询条件,利用目标数据源对应的SQL配置模板拼装获得目标数据源的SQL查询语句;执行SQL查询语句并将查询所获得的数据返回用户端;本发明可针对各种数据源以及各种数据维度进行数据查询分析;在数据源发生改变,或者数据查询所关联的表结构或者表字段改变的场景中,无需重新拼接SQL语句,大大降低了因修改SQL语句导致的系统风险的发生概率。
Description
技术领域
本发明属于大数据技术领域,具体涉及一种基于数据源的数据查询方法、系统、电子设备以及存储介质。
背景技术
在电子商务领域的联机交易场景、批量作业场景或汇总统计场景,以及金融保险领域的背景调查等数据库的查询、分析场景中,都是基于不同数据源的数据库或者数据仓库实现的。
在现有技术中,需要通过查询SQL实现对数据库或数据仓库的查询,但是存在的弊端如下:1)底层数据库的数据源不同,各个数据源之间的语法存在差别,导致无法制定统一的查询规则;而且,现有的数据查询SQL是根据所选择的数据库的语法类型进行开发的,如果数据库类型改变,则需要重新组装SQL查询语句,工作量巨大;2)查询维度过于分散,导致不同的分析模型间的查询SQL语句复用率低;而且,如果不同的分析模型的数据维度所关联的表结构或者表字段改变,则需要重新修改相关的拼接SQL语句,不仅修改成本高,而且出错概率大,导致系统风险大大增加。
因此,亟需数据查询效率较高的一种基于数据源的数据查询方法。
发明内容
本发明提供一种基于数据源的数据查询方法、系统、电子设备以及存储介质,用以克服现有技术中存在的至少一个技术问题。
为实现上述目的,本发明提供一种基于数据源的数据查询方法,方法包括,根据用户端发送的数据查询请求,获取数据查询条件并确定所述数据查询请求所对应的目标数据源;
基于预设的SQL生成组件,获取所述目标数据源对应的SQL配置模板参数,并根据所述SQL配置模板参数生成目标数据源对应的SQL配置模板;
根据所述数据查询条件,利用所述目标数据源对应的SQL配置模板拼装获得目标数据源的SQL查询语句;
执行所述SQL查询语句以从所述SQL查询语句对应的目标数据源中查询所述用户端所请求的数据,并将查询所获得的数据返回用户端。
进一步,优选的,所述预设的SQL生成组件的生成方法,包括:
录入各个数据源的数据源信息,利用Spark SQL接口对所述数据源信息进行解耦处理,获取各个数据源的开放数据源信息;
根据各个数据源的开放数据源信息搭建SQL配置模板,并获取SQL配置模板参数;
建立各个数据源、SQL配置模板参数以及各个SQL配置模板间的对应关系的数据源字典。
进一步,优选的,所述预设的SQL生成组件的生成方法,还包括:
按照数据维度获取元数据信息,其中,所述元数据信息来自各个数据源的开放数据源信息;
配置各个数据维度的元数据信息;
为各个数据维度的元数据信息配置关联信息;所述关联信息包括各数据维度是否需要关联查询,关联查询对应的关联表格以及关联查询的方式;
将配置有关联信息的各个数据维度的元数据信息与各个数据源、SQL配置模板参数以及各个SQL配置模板间进行匹配。
进一步,优选的,所述预设的SQL生成组件的生成方法,还包括:
将所搭建的SQL配置模板统一持久化到关系型数据库中;
利用所述关系型数据库对所述SQL生成组件的SQL配置模板进行管理。
进一步,优选的,所述数据查询方法还包括,
利用预设的SQL生成组件根据数据维度获取所述目标数据源对应的SQL配置模板参数,并根据所述SQL配置模板参数生成目标数据源以及所述数据维度对应的SQL配置模板;
根据所述数据查询条件和所述数据维度,利用所述目标数据源对应的SQL配置模板拼装获得目标数据源的SQL查询语句;
执行所述SQL查询语句以从所述SQL查询语句对应的目标数据源中查询数据维度对应的所述用户端所请求的数据,并将查询所获得的数据返回用户端。
进一步,优选的,根据所述SQL配置模板参数生成目标数据源以及所述数据维度对应的SQL配置模板的方法包括,
根据所述SQL配置模板参数的模板密码项,查询到模板密码关联的所述目标数据源对应的模板配置信息、用户所选择的数据维度以及过滤条件;
基于所述目标数据源对应的模板配置信息,根据所述数据维度选择所述数据维度对应的模板配置信息;
基于所述数据维度对应的模板配置信息,根据所述过滤条件选择符合所述过滤条件的模板配置信息;
根据所述符合所述过滤条件的模板配置信息,创建模板项信息和模板参数项信息;
根据所述模板项信息和所述模板参数项信息,创建所述SQL配置模板。
进一步,优选的,利用所述目标数据源对应的SQL配置模板拼装获得目标数据源的SQL查询语句的方法,包括:
根据所述SQL配置模板的字段名,拼装所述SQL查询语句的SELECT子句;
根据所述SQL配置模板的预设关联关系,拼装所述SQL查询语句的FROM子句;
根据所述SQL配置模板的字段类型,拼装所述SQL查询语句的GROUP BY子句。
为了解决上述问题,本发明还提供一种基于数据源的数据查询系统,包括:
目标数据源确定单元,用于根据用户端发送的数据查询请求,获取数据查询条件并确定所述数据查询请求所对应的目标数据源;
SQL配置模板生成单元,用于基于预设的SQL生成组件,获取所述目标数据源对应的SQL配置模板参数,并根据所述SQL配置模板参数生成目标数据源对应的SQL配置模板;
SQL查询语句生成单元,用于根据所述数据查询条件,利用所述目标数据源对应的SQL配置模板拼装获得目标数据源的SQL查询语句;
查询执行单元,用于执行所述SQL查询语句以从所述SQL查询语句对应的目标数据源中查询所述用户端所请求的数据,并将查询所获得的数据返回用户端。
为了解决上述问题,本发明还提供一种电子设备,电子设备包括:
存储器,存储至少一个指令;及
处理器,执行存储器中存储的指令以实现上述的基于数据源的数据查询方法中的步骤。
为了解决上述问题,本发明还提供一种计算机可读存储介质,计算机可读存储介质中存储有至少一个指令,至少一个指令被电子设备中的处理器执行以实现上述的基于数据源的数据查询方法。
本发明的一种基于数据源的数据查询方法、系统、电子设备以及存储介质,可针对各种数据源以及各种数据维度进行数据查询分析;在数据源发生改变,或者数据查询所关联的表结构或者表字段改变的场景中,无需重新拼接SQL语句,大大降低了因修改SQL语句导致的系统风险的发生概率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明一实施例提供的基于数据源的数据查询方法的流程示意图;
图2为本发明一实施例提供的基于数据源的数据查询方法的应用场景示意图;
图3为本发明一实施例提供的基于数据源的数据查询系统的模块示意图;
图4为本发明一实施例提供的实现基于数据源的数据查询方法的电子设备的内部结构示意图;
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
图1为本发明一实施例提供的基于数据源的数据查询方法的流程示意图。该方法可以由一个系统执行,该系统可以由软件和/或硬件实现。
本发明的基于数据源的数据查询方法,主要适用于金融或者保险领域的数据查询分析场景中。针对查询用到的底层数据库的数据源不同,各个数据源之间的语法存在差别,导致无法制定统一的查询规则;而现有的数据查询SQL是根据所选择的数据库的语法类型进行开发的,如果数据库类型改变,则需要重新组装SQL查询语句,工作量巨大的问题。通过本发明中预设的SQL生成组件,根据数据源的不同,获取数据源对应的SQL配置模板,进而利用SQL配置模板自动生成所需的SQL查询语句。达到了既能提升开发效率,又能降低系统风险的技术效果。
如图1所示,在本实施例中,对发明进行具体说明。基于数据源的数据查询方法包括步骤S110~S140。
S110、根据用户端发送的数据查询请求,获取数据查询条件并确定所述数据查询请求所对应的目标数据源。
在具体的实施过程中,对于SQL(Structured Query Language,结构化查询语言)语句模板的性能分析过程为例进行说明。用户在互联网平台中通过SQL发起数据库访问请求(也即,进行查询操作)时,系统会根据SQL语句模板生成SQL语句,数据库管理系统会执行所述SQL语句并向用户返回执行结果。数据查询条件包括但并不限制于为数据源类型、数据源地址和用户身份认证信息。用户身份认证信息可以包括用户名和密码。也就是说,数据查询请求中包括数据源标识等信息,通过数据源标识确定数据查询请求中的目标数据源。在实际应用中,数据查询请求可以为要求被查询的数据本身是结构化的查询语句。数据查询条件可以理解为针对该目标数据的查询条件。
具体地说,目前现存的数据库都能集成,可以但不限制于为行式(Pg、Mysql、Oracle),列式(Hive、Clickhouse、Doris)等。利用本发明的基于数据源的数据查询方法进行数据源集成后,所有类型数据源的开发中均可使用,甚至同一数据源,可以生成不同的组建SQL的方式,及模板保存,根据模板创建的方式组建不同的SQL查询语句。
S120、基于预设的SQL生成组件,获取所述目标数据源对应的SQL配置模板参数,并根据所述SQL配置模板参数生成目标数据源对应的SQL配置模板。
所述预设的SQL生成组件的生成方法,包括:S1211、录入各个数据源的数据源信息,利用Spark SQL接口对所述数据源信息进行解耦处理,获取各个数据源的开放数据源信息;S1212、根据各个数据源的开放数据源信息搭建SQL配置模板,并获取SQL配置模板参数;S1213、建立各个数据源、SQL配置模板参数以及各个SQL配置模板间的对应关系的数据源字典。
需要说明的是,SQL配置模板参数可以但不限制于为模板参数标识项、模板参数类型项、模板参数校验规则项和模板参数操作项信息。模板参数校验规则项可以指用于对模板参数项进行校验的规则。模板参数校验规则项可以包括以下至少之一:模板参数的形式校验规则项和模板参数的内容校验规则项。由此,模板参数项信息可以包括以下至少之一:模板参数项标识、模板参数项类型、模板参数项校验规则和模板参数项操作信息。SQL配置模板参数与SQL配置模板一一对应。在具体的实施过程中,建立各个数据源、SQL配置模板参数以及各个SQL配置模板间的对应关系的数据源字典,数据源字典可以是表格形式,用于体现各个数据源、SQL配置模板参数以及各个SQL配置模板间的对应关系。
具体地说,在同一个查询场景中,有可能不同时期会使用不同的数据源。例如在金融业务的贷款审批的资格审查过程中,既需要调取被审查者的不动产资产状况,还需要调取被审查者的现金流。具体的实施过程中,首先需要在项目的配置文件中需要配置相应的数据源类型及相关参数,然后需要修改SQL生成组件的自定义模板配置中的数据源类型配置,改为与项目使用数据源一致即可。针对现有技术中,如果需要切换一个数据源,由于各个数据源之间的语法不同,是需要进行大量的代码的修改的,而且代码修改后容易出各种bug,严重影响了项目质量和周期;进一步,在进行代码修改后无法再应用于原来的数据源。本发明通过克服的难点就是不同数据源间的解耦与自由切换的灵活性,以对代码进行解耦的方式,将生成的查询SQL给抽出来了,动态的根据数据源类型的不同而生成,可以任意切换,只需要改模板配置,无需任何代码的修改即可实现无缝切换数据源。
综上,本发明通过一次统一配置SQL配置模板后,只需要在元数据管理模块配置好,即可生成SQL配置模板,切换数据源后,各大分析模型中只要关联好模板ID后都可以使用,对用户来说是无感的,不会影响用户的使用体验,不会影响系统的稳定性。
SQL配置模板可以通过表格形式体现其配置内容,例如sys_sql_model表。如表1所示,包括字段名、字段类型以及关联关系(备注)。
表1SQL配置模板表
在具体的实施过程中,针对查询维度过于分散,导致不同的分析模型间的查询SQL语句复用率低;而且,如果不同的分析模型的数据维度所关联的表结构或者表字段改变的场景时,本发明通过针对不同的数据维度对应不同的SQL配置模板,然后根据SQL配置模板自动生成SQL查询语句的方式进行解决。通过按照数据维度进行定义SQL配置模板,既可以实现各种分析模型的不同方式的SQL生成以及查询,以满足不同的业务需求。而且,无需多次编码,减少了开发工作量的同时,使得系统的扩展性大大提高。
在一个具体的实施例中,为了实现多分析模型通用性,所述数据查询方法还包括,S1200、利用预设的SQL生成组件根据数据维度获取所述目标数据源对应的SQL配置模板参数,并根据所述SQL配置模板参数生成目标数据源以及所述数据维度对应的SQL配置模板;S1300、根据所述数据查询条件和所述数据维度,利用所述目标数据源对应的SQL配置模板拼装获得目标数据源的SQL查询语句;S1400、执行所述SQL查询语句以从所述SQL查询语句对应的目标数据源中查询数据维度对应的所述用户端所请求的数据,并将查询所获得的数据返回用户端。
需要说明的是,多维分析是指在分析型系统中,用户可以通过选择不同的维度来汇总统计分析,以方便使用者可以从不同角度观察数据,多维分析有两个关键方向,维度和指标。指标是指用来记录关键流程的,衡量目标的单位或方法,如留存率、转化率等;维度是指观察指标的角度,如时间、来源渠道、地理位置、产品版本维度等。多维分析,就是在多个维度拆解,观察对比维度细分下的指标。
图2对SQL配置模板以及数据维度应用场景进行了说明;图2为本发明一实施例提供的基于数据源的数据查询方法的应用场景示意图;如图2所示,在本发明的基于数据源的数据查询方法的多数据维度选择的应用场景中,用户可以根据实际需要进行所需的数据维度的选择。数据维度可以为默认属性、用户属性以及用户分群;用户属性中可以包括用户名称、手机号码、对象姓名、银行卡号、性别、对象年龄、电子邮箱、护照号以及用户IP地址等。
在步骤S1200中,根据所述SQL配置模板参数生成目标数据源以及所述数据维度对应的SQL配置模板的方法包括,S1201、根据所述SQL配置模板参数的模板密码项,查询到模板密码关联的所述目标数据源对应的模板配置信息、用户所选择的数据维度以及过滤条件;S1202、基于所述目标数据源对应的模板配置信息,根据所述数据维度选择所述数据维度对应的模板配置信息;S1203、基于所述数据维度对应的模板配置信息,根据所述过滤条件选择符合所述过滤条件的模板配置信息;S1204、根据所述符合所述过滤条件的模板配置信息,创建模板项信息和模板参数项信息;S1205、根据所述模板项信息和所述模板参数项信息,创建所述SQL配置模板。
具体地说,模板密码项即模板code;也就是说,先筛选目标数据源对应的模板配置信息,在与目标数据源相匹配的模板配置信息中进而筛选符合用户所选择的数据维度的模板配置信息。需要说明的是,模板配置信息可以创建模板项信息和模板参数项信息,进而创建模板。与步骤S120中的SQL配置模板参数不同。SQL配置模板参数仅仅是其对应的SQL配置模板的标识。
在实际开发中,可能不同的分析模型是不同的人开发的,有些维度的查询SQL可以做到通用,有的没做到;每个分析模型开发完了后都存在不同bug的风险性,可能相同的问题场景需要在每个模型中单独测试,成本很高。而如果做成通用的组件功能,例如,根据用户性别这个维度查询,配置好需要关联查询user表,关联条件是userid字段相等,关联方式是global left join即可。这样适用于所有的分析模型中,不管哪个分析模型,只要有根据用户维度查询,后台自动拼接关联user表查询的SQL;而且,如果是查询SQL存在问题,只需要修改这个统一生成组装查询的SQL即可,所有分析模型统一更改了,无需再每个模型去测试,极大的提升了开发和测试的效率,也降低了出现其他风险的可能性,提升了系统的稳定性。
在具体的实施过程中,所述预设的SQL生成组件的生成方法,还包括:S1221、按照数据维度获取元数据信息,其中,所述元数据信息来自各个数据源的开放数据源信息;S1222、配置各个数据维度的元数据信息;S1223、为各个数据维度的元数据信息配置关联信息;所述关联信息包括各数据维度是否需要关联查询,关联查询对应的关联表格以及关联查询的方式;S1224、将配置有关联信息的各个数据维度的元数据信息与各个数据源、SQL配置模板参数以及各个SQL配置模板间进行匹配。
也就是说,对于已经配置好数据源的SQL配置模板配置数据维度信息。具体包括:每种类型的维度元数据及涉及到是否需要关联查询,涉及哪张表。配置关联查询方式,例如如果根据某个维度查询用户行为分析,需要涉及到哪几张表的关联以及如何关联;可以但不限制于为左关联(left jon)、右关联(right join),内关联(inner join),以及关联条件是哪两个字段相等,每个表的别名又是什么。总的来说,本发明的SQL配置模板可以支持自定义配置;例如,可以包括指定主表和维度表,表别名alias;还可以包括如多维分析模型中维度表关联方式(left join,right join,inner join)以及指定字段关联条件(a.column1=b.column2)以及是否去重,根据什么字段去重结果,还支持根据什么字段order by排序结果;上述关联查询方式都可以动态配置,配置好后即可生成模板。也就是说,同一数据源可建立多个SQL配置模板,也就是多种生成SQL查询语句的场景方式,可以适用于更多的分析模型。
在实际数据分析和业务开发场景中,通过SQL生成组件可以直接配置好元数据参数和条件,保存生成SQL配置模板后,直接生成SQL样例。可以将SQL查询语句复制出来,提供给开发人员参考,开发人员直接复用,或者稍加修改即可用于实际得开发业务中,无需从0开始想如何写SQL查询语句,极大得提高了开发效率和降低出错的概率。
进一步,作为本实施例的改进,所述预设的SQL生成组件的生成方法,还包括:S1214、将所搭建的SQL配置模板统一持久化到关系型数据库中;S1215、利用所述关系型数据库对所述SQL生成组件的SQL配置模板进行管理。采用了关系型数据库(postgresql)持久化的技术手段,实现对模板管理的维护,这相当于一个后台管理,前端使用vue技术写几个简单的列表,编辑,新增页面,管理员可以在这里自定义配置模板得属性和规则,增删改查,后续的步骤S130中生成SQL查询语句的规则就是根据这个模板的配置的变化而动态变化的。
S130、根据所述数据查询条件,利用所述目标数据源对应的SQL配置模板拼装获得目标数据源的SQL查询语句。在具体的实施过程中,使用spring动态加载配置文件中数据源配置的技术,根据不同数据源类型在util包代码中判断,生成相应类型语法的SQL查询语句。
在一个具体的实施例中,利用所述目标数据源对应的SQL配置模板拼装获得目标数据源的SQL查询语句的方法,包括:S131、根据所述SQL配置模板的字段名,拼装所述SQL查询语句的SELECT子句;S132、根据所述SQL配置模板的预设关联关系,拼装所述SQL查询语句的FROM子句;S133、根据所述SQL配置模板的字段类型,拼装所述SQL查询语句的GROUP BY子句。
查询时,根据查询模块绑定的模板密码项(模板code),查询到sys_sql_model表中的相关配置,以及用户操作选的维度,过滤条件等参数,灵活的拼接生成SQL查询语句,拼接时根据模板绑定的数据源类型,按相应数据源语法拼接SQL查询语句。具体地说,当用户选择维度和过滤条件时,util包需要根据传来的参数解析,判断,组装查询SQL,这一步是主要的SQL生成过程,需要使用Java代码,根据不同数据源类型进行不同的if else判断,一步步拼接成一个string的字符串,即所需的SQL语句,如:select a.u1,a.u2 from event aleft join user u on a.userId=u.userId group by userId where userId is notnull order by actiontime,上述SQL中的表名,别名,关联方式,字段关联关系,分组字段,排序字段等都可以根据模板配置,自动生成。当SQL配置模板的模板配置修改了,生成的SQL也响应修改,这样就实现了模板与分析模型的解耦,只需要配置模板参数即可,无需改动项目中的代码。
S140、执行所述SQL查询语句以从所述SQL查询语句对应的目标数据源中查询所述用户端所请求的数据,并将查询所获得的数据返回用户端。
SQL查询服务:负责接收用户的SQL查询语句,并解析执行。在实际应用中,该SQL查询服务可以为分布式存储系统中一台或多台能够负责接收用户的SQL查询语句并执行查询操作的服务器实现。用户对一张表(存储半结构化数据的时序表)进行SQL查询之前,必须先通过SQL查询服务对这张表建立SQL结构绑定关系。该SQL结构绑定关系有两种绑定模式,分别为单值模型绑定和多值模型绑定。建立绑定关系后,用户可以发送SQL查询语句给SQL查询服务,SQL查询服务会首先通过元数据管理服务获取要SQL绑定信息(包括表结构信息),然后访问存储层服务进行查询,从而读取数据。
SQL查询语句任务执行时,采用Flink计算引擎执行查询任务之后,查询到的输出结果也可以分别输送到不同的地方,例如MySQL(关系型数据库管理系统)、Redis、Kafka等。因此,本发明可以实现实时查询任务发布平台的多种输入源和多种输出,提高了实时查询任务发布平台的普适性。
综上,本发明使用java语言,基于postgresql数据库,通过自定义模板的方式,持久化管理模板参数,实现自动生成多维分析场景查询SQL的能力;将SQL生成组件打成一个jar包依赖,当在开发项目中引入这个组件依赖后,可以在管理页面管理模板配置,项目中调用util包中封装的生成SQL的方法即可实现动态生成查询SQL能力;本发明支持不同数据源的无缝切换,提升了查询功能的扩展性,解放了编码量,提升开发和切换效率。本发明的SQL生成组件不仅仅是一种脚本语言更是一种通用的工具,能应用于许多的数据分析场景,能极大的提高分析SQL的管理和生成,并提高系统的稳定性。
如图3所示,本发明提供一种基于数据源的数据查询系统300,本发明可以安装于电子设备中。根据实现的功能,该基于数据源的数据查询系统300可以目标数据源确定单元310、SQL配置模板生成单元320、SQL查询语句生成单元330和查询执行单元340。本发明所述单元也可以称之为模块,是指一种能够被电子设备处理器所执行,并且能够完成固定功能的一系列计算机程序段,其存储在电子设备的存储器中。
在本实施例中,关于各模块/单元的功能如下:
目标数据源确定单元310,用于根据用户端发送的数据查询请求,获取数据查询条件并确定所述数据查询请求所对应的目标数据源;
SQL配置模板生成单元320,用于基于预设的SQL生成组件,获取所述目标数据源对应的SQL配置模板参数,并根据所述SQL配置模板参数生成目标数据源对应的SQL配置模板;
SQL查询语句生成单元330,用于根据所述数据查询条件,利用所述目标数据源对应的SQL配置模板拼装获得目标数据源的SQL查询语句;
查询执行单元340,用于执行所述SQL查询语句以从所述SQL查询语句对应的目标数据源中查询所述用户端所请求的数据,并将查询所获得的数据返回用户端。
本发明的基于数据源的数据查询系统300,可针对各种数据源以及各种数据维度进行数据查询分析;在数据源发生改变,或者数据查询所关联的表结构或者表字段改变的场景中,无需重新拼接SQL语句,大大降低了因修改SQL语句导致的系统风险概率。
如图4所示,本发明提供一种基于数据源的数据查询方法的电子设备4。
该电子设备4可以包括处理器40、存储器41和总线,还可以包括存储在存储器41中并可在所述处理器40上运行的计算机程序,如基于数据源的数据查询程序42。存储器41还可以既包括基于数据源的数据查询系统的内部存储单元也包括外部存储设备。存储器41不仅可以用于存储安装于应用软件及各类数据,例如基于数据源的数据查询程序的代码等,还可以用于暂时地存储已经输出或者将要输出的数据。
其中,所述存储器41至少包括一种类型的可读存储介质,所述可读存储介质包括闪存、移动硬盘、多媒体卡、卡型存储器(例如:SD或DX存储器等)、磁性存储器、磁盘、光盘等。所述存储器41在一些实施例中可以是电子设备4的内部存储单元,例如该电子设备4的移动硬盘。所述存储器41在另一些实施例中也可以是电子设备4的外部存储设备,例如电子设备4上配备的插接式移动硬盘、智能存储卡(Smart Media Card,SMC)、安全数字(SecureDigital,SD)卡、闪存卡(Flash Card)等。进一步地,所述存储器41还可以既包括电子设备4的内部存储单元也包括外部存储设备。所述存储器41不仅可以用于存储安装于电子设备4的应用软件及各类数据,例如基于数据源的数据查询程序的代码等,还可以用于暂时地存储已经输出或者将要输出的数据。
所述处理器40在一些实施例中可以由集成电路组成,例如可以由单个封装的集成电路所组成,也可以是由多个相同功能或不同功能封装的集成电路所组成,包括一个或者多个中央处理器(Central Processing unit,CPU)、微处理器、数字处理芯片、图形处理器及各种控制芯片的组合等。所述处理器40是所述电子设备的控制核心(Control Unit),利用各种接口和线路连接整个电子设备的各个部件,通过运行或执行存储在所述存储器41内的程序或者模块(例如基于数据源的数据查询程序等),以及调用存储在所述存储器41内的数据,以执行电子设备4的各种功能和处理数据。
所述总线可以是外设部件互连标准(peripheral component interconnect,简称PCI)总线或扩展工业标准结构(extended industry standard architecture,简称EISA)总线等。该总线可以分为地址总线、数据总线、控制总线等。所述总线被设置为实现所述存储器41以及至少一个处理器40等之间的连接通信。
图4仅示出了具有部件的电子设备,本领域技术人员可以理解的是,图4示出的结构并不构成对所述电子设备4的限定,可以包括比图示更少或者更多的部件,或者组合某些部件,或者不同的部件布置。
例如,尽管未示出,所述电子设备4还可以包括给各个部件供电的电源(比如电池),优选地,电源可以通过电源管理系统与所述至少一个处理器40逻辑相连,从而通过电源管理系统实现充电管理、放电管理、以及功耗管理等功能。电源还可以包括一个或一个以上的直流或交流电源、再充电系统、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。所述电子设备4还可以包括多种传感器、蓝牙模块、Wi-Fi模块等,在此不再赘述。
进一步地,所述电子设备4还可以包括网络接口,可选地,所述网络接口可以包括有线接口和/或无线接口(如WI-FI接口、蓝牙接口等),通常用于在该电子设备4与其他电子设备之间建立通信连接。
可选地,该电子设备4还可以包括用户接口,用户接口可以是显示器(Display)、输入单元(比如键盘(Keyboard)),可选地,用户接口还可以是标准的有线接口、无线接口。可选地,在一些实施例中,显示器可以是LED显示器、液晶显示器、触控式液晶显示器以及OLED(Organic Light-Emitting Diode,有机发光二极管)触摸器等。其中,显示器也可以适当的称为显示屏或显示单元,用于显示在电子设备4中处理的信息以及用于显示可视化的用户界面。
应该了解,所述实施例仅为说明之用,在专利申请范围上并不受此结构的限制。
所述电子设备4中的所述存储器41存储的基于数据源的数据查询程序42是多个指令的组合,在所述处理器40中运行时,可以实现:通过根据用户端发送的数据查询请求,获取数据查询条件并确定所述数据查询请求所对应的目标数据源;基于预设的SQL生成组件,获取所述目标数据源对应的SQL配置模板参数,并根据所述SQL配置模板参数生成目标数据源对应的SQL配置模板;根据所述数据查询条件,利用所述目标数据源对应的SQL配置模板拼装获得目标数据源的SQL查询语句;执行所述SQL查询语句以从所述SQL查询语句对应的目标数据源中查询所述用户端所请求的数据,并将查询所获得的数据返回用户端。
具体地,所述处理器40对上述指令的具体实现方法可参考图1对应实施例中相关步骤的描述,在此不赘述。需要强调的是,为进一步保证上述基于数据源的数据查询程序的私密和安全性,上述数据库高可用处理数据存储于本服务器集群所处区块链的节点中。
进一步地,所述电子设备4集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或系统、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)。
本发明实施例还提供一种计算机可读存储介质,所述存储介质可以是非易失性的,也可以是易失性的,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时实现:通过根据用户端发送的数据查询请求,获取数据查询条件并确定所述数据查询请求所对应的目标数据源;基于预设的SQL生成组件,获取所述目标数据源对应的SQL配置模板参数,并根据所述SQL配置模板参数生成目标数据源对应的SQL配置模板;根据所述数据查询条件,利用所述目标数据源对应的SQL配置模板拼装获得目标数据源的SQL查询语句;执行所述SQL查询语句以从所述SQL查询语句对应的目标数据源中查询所述用户端所请求的数据,并将查询所获得的数据返回用户端。
具体地,所述计算机程序被处理器执行时具体实现方法可参考实施例基于数据源的数据查询方法中相关步骤的描述,在此不赘述。
在本发明所提供的几个实施例中,应该理解到,所揭露的设备,系统和方法,可以通过其它的方式实现。例如,以上所描述的系统实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能模块的形式实现。
对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。
因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本发明内。不应将权利要求中的任何附关联图标记视为限制所涉及的权利要求。
本发明所指区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(Blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层等。
此外,显然“包括”一词不排除其他单元或步骤,单数不排除复数。系统权利要求中陈述的多个单元或系统也可以由一个单元或系统通过软件或者硬件来实现。第二等词语用来表示名称,而并不表示任何特定的顺序。
最后应说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或等同替换,而不脱离本发明技术方案的精神和范围。
Claims (10)
1.一种基于数据源的数据查询方法,其特征在于,方法包括:
根据用户端发送的数据查询请求,获取数据查询条件并确定所述数据查询请求所对应的目标数据源;
基于预设的SQL生成组件,获取所述目标数据源对应的SQL配置模板参数,并根据所述SQL配置模板参数生成目标数据源对应的S QL配置模板;
根据所述数据查询条件,利用所述目标数据源对应的SQL配置模板拼装获得目标数据源的SQL查询语句;
执行所述SQL查询语句以从所述SQL查询语句对应的目标数据源中查询所述用户端所请求的数据,并将查询所获得的数据返回用户端。
2.根据权利要求1所述的基于数据源的数据查询方法,其特征在于,所述预设的SQL生成组件的生成方法,包括:
录入各个数据源的数据源信息,利用Spark SQL接口对所述数据源信息进行解耦处理,获取各个数据源的开放数据源信息;
根据各个数据源的开放数据源信息搭建SQL配置模板,并获取SQL配置模板参数;
建立各个数据源、SQL配置模板参数以及各个SQL配置模板间的对应关系的数据源字典。
3.根据权利要求2所述的基于数据源的数据查询方法,其特征在于,
所述预设的SQL生成组件的生成方法,还包括:
按照数据维度获取元数据信息,其中,所述元数据信息来自各个数据源的开放数据源信息;
配置各个数据维度的元数据信息;
为各个数据维度的元数据信息配置关联信息;所述关联信息包括各数据维度是否需要关联查询,关联查询对应的关联表格以及关联查询的方式;
将配置有关联信息的各个数据维度的元数据信息与各个数据源、SQL配置模板参数以及各个SQL配置模板间进行匹配。
4.根据权利要求1所述的基于数据源的数据查询方法,其特征在于,所述预设的SQL生成组件的生成方法,还包括:
将所搭建的SQL配置模板统一持久化到关系型数据库中;
利用所述关系型数据库对所述SQL生成组件的SQL配置模板进行管理。
5.根据权利要求1所述的基于数据源的数据查询方法,其特征在于,所述数据查询方法还包括,
利用预设的SQL生成组件根据数据维度获取所述目标数据源对应的SQL配置模板参数,并根据所述SQL配置模板参数生成目标数据源以及所述数据维度对应的SQL配置模板;
根据所述数据查询条件和所述数据维度,利用所述目标数据源对应的SQL配置模板拼装获得目标数据源的SQL查询语句;
执行所述SQL查询语句以从所述SQL查询语句对应的目标数据源中查询数据维度对应的所述用户端所请求的数据,并将查询所获得的数据返回用户端。
6.根据权利要求5所述的基于数据源的数据查询方法,其特征在于,根据所述SQL配置模板参数生成目标数据源以及所述数据维度对应的SQL配置模板的方法包括,
根据所述SQL配置模板参数的模板密码项,查询到模板密码关联的所述目标数据源对应的模板配置信息、用户所选择的数据维度以及过滤条件;
基于所述目标数据源对应的模板配置信息,根据所述数据维度选择所述数据维度对应的模板配置信息;
基于所述数据维度对应的模板配置信息,根据所述过滤条件选择符合所述过滤条件的模板配置信息;
根据所述符合所述过滤条件的模板配置信息,创建模板项信息和模板参数项信息;
根据所述模板项信息和所述模板参数项信息,创建所述SQL配置模板。
7.根据权利要求5所述的基于数据源的数据查询方法,其特征在于,利用所述目标数据源对应的SQL配置模板拼装获得目标数据源的SQL查询语句的方法,包括:
根据所述SQL配置模板的字段名,拼装所述SQL查询语句的SELECT子句;
根据所述SQL配置模板的预设关联关系,拼装所述SQL查询语句的FROM子句;
根据所述SQL配置模板的字段类型,拼装所述SQL查询语句的GROUP BY子句。
8.一种基于数据源的数据查询系统,其特征在于,包括:
目标数据源确定单元,用于根据用户端发送的数据查询请求,获取数据查询条件并确定所述数据查询请求所对应的目标数据源;
SQL配置模板生成单元,用于基于预设的SQL生成组件,获取所述目标数据源对应的SQL配置模板参数,并根据所述SQL配置模板参数生成目标数据源对应的SQL配置模板;
SQL查询语句生成单元,用于根据所述数据查询条件,利用所述目标数据源对应的SQL配置模板拼装获得目标数据源的SQL查询语句;
查询执行单元,用于执行所述SQL查询语句以从所述SQL查询语句对应的目标数据源中查询所述用户端所请求的数据,并将查询所获得的数据返回用户端。
9.一种电子设备,其特征在于,所述电子设备包括:
至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如权利要求1至7中任一所述的基于数据源的数据查询方法中的步骤。
10.一种计算机可读存储介质,存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至7中任一所述的基于数据源的数据查询方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310146486.9A CN116226166A (zh) | 2023-02-16 | 2023-02-16 | 基于数据源的数据查询方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310146486.9A CN116226166A (zh) | 2023-02-16 | 2023-02-16 | 基于数据源的数据查询方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116226166A true CN116226166A (zh) | 2023-06-06 |
Family
ID=86569092
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310146486.9A Pending CN116226166A (zh) | 2023-02-16 | 2023-02-16 | 基于数据源的数据查询方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116226166A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116629805A (zh) * | 2023-06-07 | 2023-08-22 | 浪潮智慧科技有限公司 | 一种分布式流批一体化的水利指标服务方法、设备及介质 |
CN117056343A (zh) * | 2023-10-11 | 2023-11-14 | 湖北华中电力科技开发有限责任公司 | 一种电网领域多源数据管理方法、系统和电子设备 |
CN117331964A (zh) * | 2023-12-01 | 2024-01-02 | 成都明途科技有限公司 | 数据查询方法、装置、设备及存储介质 |
-
2023
- 2023-02-16 CN CN202310146486.9A patent/CN116226166A/zh active Pending
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116629805A (zh) * | 2023-06-07 | 2023-08-22 | 浪潮智慧科技有限公司 | 一种分布式流批一体化的水利指标服务方法、设备及介质 |
CN116629805B (zh) * | 2023-06-07 | 2023-12-01 | 浪潮智慧科技有限公司 | 一种分布式流批一体化的水利指标服务方法、设备及介质 |
CN117056343A (zh) * | 2023-10-11 | 2023-11-14 | 湖北华中电力科技开发有限责任公司 | 一种电网领域多源数据管理方法、系统和电子设备 |
CN117056343B (zh) * | 2023-10-11 | 2024-01-23 | 湖北华中电力科技开发有限责任公司 | 一种电网领域多源数据管理方法、系统和电子设备 |
CN117331964A (zh) * | 2023-12-01 | 2024-01-02 | 成都明途科技有限公司 | 数据查询方法、装置、设备及存储介质 |
CN117331964B (zh) * | 2023-12-01 | 2024-02-27 | 成都明途科技有限公司 | 数据查询方法、装置、设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8108367B2 (en) | Constraints with hidden rows in a database | |
US10169437B2 (en) | Triplestore replicator | |
US9002905B2 (en) | Rapidly deploying virtual database applications using data model analysis | |
CN116226166A (zh) | 基于数据源的数据查询方法及系统 | |
US9886369B2 (en) | Dynamic data fabrication for database applications | |
CN112115152B (zh) | 数据增量更新及查询方法、装置、电子设备及存储介质 | |
CN114328574A (zh) | 一种数据查询方法、装置、电子设备及计算机可读存储介质 | |
US11487801B2 (en) | Dynamic data visualization from factual statements in text | |
US10248668B2 (en) | Mapping database structure to software | |
CN113434901A (zh) | 数据智能查询方法、装置、电子设备及存储介质 | |
CN112434015A (zh) | 数据存储的方法、装置、电子设备及介质 | |
US11775517B2 (en) | Query content-based data generation | |
CN113282854A (zh) | 数据请求响应方法、装置、电子设备及存储介质 | |
CN112307052A (zh) | 一种数据管理方法、服务系统、终端及存储介质 | |
CN113626558B (zh) | 一种基于智能推荐的字段标准化的方法和系统 | |
CN113111065A (zh) | 数据库创建方法、装置、计算机设备及存储介质 | |
CN116860311A (zh) | 脚本分析方法、装置、计算机设备及存储介质 | |
CN115080684B (zh) | 网盘文档索引方法、装置、网盘及存储介质 | |
CN114722789B (zh) | 数据报表集成方法、装置、电子设备及存储介质 | |
US9201936B2 (en) | Rapid provisioning of information for business analytics | |
CN114528593A (zh) | 数据权限控制方法、装置、设备及存储介质 | |
CN117009397A (zh) | 数据查询方法、数据查询装置、电子设备和存储介质 | |
CN115062023A (zh) | 宽表优化方法、装置、电子设备及计算机可读存储介质 | |
US8818955B2 (en) | Reducing storage costs associated with backing up a database | |
CN114385722A (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 |