掌桥专利:专业的专利平台
掌桥专利
首页

一种基于BI的数据查询方法及系统

文献发布时间:2023-06-19 10:32:14


一种基于BI的数据查询方法及系统

技术领域

本发明涉及数据库技术领域,更具体地说,涉及到一种基于BI的数据查询方法及系统。

背景技术

由于业务复杂,导致维度表与事实表关系非常复杂,利用数据库连接查询,数据效率低下, 不利于用户体验。

现有技术完全依赖于IBM cognos系统支持的数据库,由于该数据库也仅仅是关系性数据库,数据查询的数据源比较单一,导致查询一个完整的数据,开发人员手工通过线下获取数据, 大量占用了人力成本。

本发明内容

为了克服现有技术的不足,本发明提供一种基于BI的数据查询方法用来如何解决依赖 IBM cognos系统的关系型数据库数据源比较单一以及查询数据效率低下的问题。

本发明解决其技术问题所采用的技术方案是:一种基于BI系统的数据查询方法,包括以下步骤:

步骤一:客户端从服务器获取第一数据库与第二数据库,根据所述第一数据库与所述第二数据库,所述客户端从所述第一数据库获取第一数据表,从所述第二数据库获取第二数据表,且所述第一数据库与所述第二数据库具有关联关系;

步骤二:根据所述第一数据表与所述第二数据表,获取第一目标数据字段与第二目标数据字段;

步骤三:所述服务器根据关联的条件字段与查询字段,生成第一sql语句与第二sql语句;

步骤四:通过所述第一sql语句对所述第一数据库进行查询,通过所述第二sql语句对所述第二数据库进行查询。

优选地,所述步骤还包括:

基于所述第一目标数据字段与所述第二目标数据字段,对关联的条件字段进行标记且对需要查询的字段进行标记。

优选地,所述步骤还包括:

判断所需要查询的数据量是否超过阈值;

当所需要查询数据量超过阈值时,根据一定的规则对所述第一sql语句与所述第一sql语句分别进行拆分。

具体地,所述步骤包括:

当数据量未超过阈值时,所述服务器通过所述第一sql语句查询所述第一数据库,所述服务器通过所述第二sql语句查询所述第二数据库。

优选地,所述步骤还包括:

根据所述条件字段查询得到的多条记录,当两条记录相同时,把两个相同记录拼接成一条记录。

一种基于BI系统的数据查询系统,所述系统包括:

第一获取单元,用于客户端从服务器获取第一数据库与第二数据库,根据所述第一数据库与所述第二数据库,所述客户端从所述第一数据库获取第一数据表,从所述第二数据库获取第二数据表,且所述第一数据库与所述第二数据库具有关联关系;

第二获取单元,用于根据所述第一数据表与所述第二数据表,获取第一目标数据字段与第二目标数据字段;

生成单元,用于所述服务器根据关联的条件字段与查询字段,生成第一sql语句与第二 sql语句;

查询单元,用于通过所述第一sql语句对所述第一数据库进行查询,通过所述第二sql语句对所述第二数据库进行查询。

优选地,所述系统还包括:

标记单元,用于基于所述第一目标数据字段与所述第二目标数据字段,对关联的条件字段进行标记且对需要查询的字段进行标记。

优选地,所述系统还包括:

判断单元,用于判断所需要查询的数据量是否超过阈值;

拆分单元,用于当所需要查询的数据量超过阈值时,根据一定的规则对所述第一sql语句与所述第一sql语句分别进行拆分。

具体地,所述查询单元包括:

查询子单元,用于当所需要查询的数据量未超过阈值时,所述服务器通过所述第一sql 语句查询所述第一数据库,所述服务器通过所述第二sql语句查询所述第二数据库。

优选地,所述系统还包括:

拼接单元,用于根据所述条件字段查询得到的多条记录,当两条记录相同时,把两个相同记录拼接成一条记录。

本发明的有益效果是:通过在关联数据库中,对关联数据表中的关联字段进行关联标记,取出数据库关联逻辑,利用程序自动化实现,降低数据库压力,提高外部计算,从而提高了数据库关联查询的效率,进而提高用户体验。

附图说明

图1是基于BI的数据查询方法的流程示意图。

图2是基于BI的数据查询系统的功能模块图。

图3是基于BI的数据查询方法的又一流程示意图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

以下结合具体实施例对本发明的具体实现进行详细描述:

实施例一:

图1以及图3示出了本发明实施例一提供的基于BI的数据查询方法的实现流程,为了便于说明,仅示出了与本发明实施例相关的部分,详述如下:

在步骤S101中:客户端从服务器获取第一数据库与第二数据库,根据所述第一数据库与所述第二数据库,所述客户端从所述第一数据库获取第一数据表,从所述第二数据库获取第二数据表,且所述第一数据库与所述第二数据库具有关联关系;

在本申请实施例中,预先把关联查询的数据库的源信息进行保存,系统自动为用户拉取界面,用户通过界面选择进行关联查询的数据库。获取相关联的第一数据库与第二数据库,从第一数据库获取第一数据表,从第二数据库获取第二数据表。例如,用户选择100.15上面的oracle数据库,且选择实例ops系统会自动获取ops系统所有数据库列表,当用户选择 116.68上面的hive数据库,且选择实例dw系统会自动获取dw下所有数据库列表。

在步骤S102中:根据所述第一数据表与所述第二数据表,获取第一目标数据字段与第二目标数据字段;

在本申请实施例中,第一数据表与第二数据表,包含字段名、字段类型长度等内容,如果用户选择100.15上oracle数据库ops系统下的线下流水表(hpstjnl),ops系统自动拉取所有hpstjnl的所有字段,如:交易流水,会计日期,交易金额,银行卡号,商户号等等同理用户选择116.68上面的hive数据库dw上的商户信息表(mer_info),选择商户号,结算卡号,商户注册地址等字段。

在步骤S103中:所述服务器根据关联的条件字段与查询字段,生成第一sql语句与第二 sql语句;

在本申请实施例中,预先标记标记哪些是查询字段,哪些是条件字段,根据步骤S102的选择字段,标记商户号和会计日期为hpstjnl的条件字段,对商户号进行标记是为了组装 mer_info条件字段查询语句,对数据进行关联查询。后台接收到相关用户提交的信息,拼装相应的sql语句,例如生成两条sql语句为:

sql1=select会计日期,交易金额,银行卡号,商户号where商户号=’xxxx’and会计日期=’xxxx’

sql2,=select商户号,结算卡号,商户注册地址where where商户号=’xxxx’

在步骤S104中:通过所述第一sql语句对所述第一数据库进行查询,通过所述第二sql语句对所述第二数据库进行查询。

在本申请实施例中,通过相应的sql语句分别去不同数据库进行查询,判断所要查询的数据量是否超过阈值,,如果数据量非常大,会按照一定的规则将sql1语句,sql2语句进行拆分成多条sql语句并发去相应的数据库查询,如果所要查询的数据量没有超过阈值,数据量比较小,则不需要对sql1语句,sql2语句进行拆分,直接第一sql语句和第二sql语句去指定的数据库进行查询。将多条sql查询出来的结果进行合并计算,统一返回给前端页面,将多条sql 语句计算出来的结果,通过查询条件字段记录一条一条记录并进行比对,如果两条记录相同, 就拼接为一条记录,并进行存储,便于供前端查询。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,所述的程序可以存储于一计算机可读取存储介质中,所述的存储介质,如ROM/RAM、磁盘、光盘等。

实施例二:

图2示出了本发明实施例二提供的基于BI的数据查询系统的结构,为了便于说明,仅示出了与本发明实施例相关的部分,详述如下:

第一获取单元201,用于客户端从服务器获取第一数据库与第二数据库,根据所述第一数据库与所述第二数据库,所述客户端从所述第一数据库获取第一数据表,从所述第二数据库获取第二数据表,且所述第一数据库与所述第二数据库具有关联关系;

第二获取单元202,用于根据所述第一数据表与所述第二数据表,获取第一目标数据字段与第二目标数据字段;

生成单元203,用于所述服务器根据关联的条件字段与查询字段,生成第一sql语句与第二sql语句;

查询单元204,用于通过所述第一sql语句对所述第一数据库进行查询,通过所述第二sql 语句对所述第二数据库进行查询。

在本发明实施例中,用于客户端从服务器获取第一数据库与第二数据库,根据所述第一数据库与所述第二数据库,所述客户端从所述第一数据库获取第一数据表,从所述第二数据库获取第二数据表,且所述第一数据库与所述第二数据库具有关联关系;用于根据所述第一数据表与所述第二数据表,获取第一目标数据字段与第二目标数据字段;用于所述服务器根据关联的条件字段与查询字段,生成第一sql语句与第二sql语句;用于通过所述第一sql语句对所述第一数据库进行查询,通过所述第二sql语句对所述第二数据库进行查询,取出数据库关联逻辑,利用程序自动化实现,降低数据库压力,提高外部计算,从而提高了数据库关联查询的效率,进而提高用户体验。各单元的具体实施方式可参考实施例一的描述,在此不再赘述。

实施例三:

本发明实施例三提供的基于BI的数据查询系统的另一结构,为了便于说明,仅示出了与本发明实施例相关的部分,其中包括:

第一获取单元,用于客户端从服务器获取第一数据库与第二数据库,根据所述第一数据库与所述第二数据库,所述客户端从所述第一数据库获取第一数据表,从所述第二数据库获取第二数据表,且所述第一数据库与所述第二数据库具有关联关系;

第二获取单元,用于根据所述第一数据表与所述第二数据表,获取第一目标数据字段与第二目标数据字段;

标记单元,用于基于所述第一目标数据字段与所述第二目标数据字段,对关联的条件字段进行标记且对需要查询的字段进行标记;

生成单元,用于所述服务器根据关联的条件字段与查询字段,生成第一sql语句与第二 sql语句;

判断单元,用于判断所需要查询的数据量是否超过阈值;

拆分单元,用于当所需要查询的数据量超过阈值时,根据一定的规则对所述第一sql语句与所述第一sql语句分别进行拆分;

查询单元,用于通过所述第一sql语句对所述第一数据库进行查询,通过所述第二sql语句对所述第二数据库进行查询;

具体地,查询子单元,用于当所需要查询的数据量未超过阈值时,所述服务器通过所述第一sql语句查询所述第一数据库,所述服务器通过所述第二sql语句查询所述第二数据库;

拼接单元,用于根据所述条件字段查询得到的多条记录,当两条记录相同时,把两个相同记录拼接成一条记录。

在本发明实施例中,基基于BI的数据查询可由相应的硬件或软件单元实现,各单元可以为独立的软、硬件单元,也可以集成为一个软、硬件单元,在此不用以限制本发明。

本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各实施例的单元及算法步骤,能够以电子硬件或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。

专业技术人员可以对每个特定的应用来使用不同的方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉技术领域的人员在本发明揭露的技术范围内,可轻易想到变化或者替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。

相关技术
  • 一种基于BI的数据查询方法及系统
  • 基于数据沙箱的数据BI分析方法、系统、介质及设备
技术分类

06120112587405