CN115292415A - 一种数据库访问方法及装置 - Google Patents

一种数据库访问方法及装置 Download PDF

Info

Publication number
CN115292415A
CN115292415A CN202210987864.1A CN202210987864A CN115292415A CN 115292415 A CN115292415 A CN 115292415A CN 202210987864 A CN202210987864 A CN 202210987864A CN 115292415 A CN115292415 A CN 115292415A
Authority
CN
China
Prior art keywords
data
database
distributed
hot
read request
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
Application number
CN202210987864.1A
Other languages
English (en)
Inventor
武文斌
刘映镇
刘静
黄海鹏
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Industrial and Commercial Bank of China Ltd ICBC
Original Assignee
Industrial and Commercial Bank of China Ltd ICBC
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Industrial and Commercial Bank of China Ltd ICBC filed Critical Industrial and Commercial Bank of China Ltd ICBC
Priority to CN202210987864.1A priority Critical patent/CN115292415A/zh
Publication of CN115292415A publication Critical patent/CN115292415A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2282Tablespace storage structures; Management thereof
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/242Query formulation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24552Database cache management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/284Relational databases

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)
  • Computing Systems (AREA)
  • Software Systems (AREA)
  • Mathematical Physics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请提供一种数据库访问方法及装置,涉及数据库技术领域,也可用于金融领域,所述数据库包括分布式缓存数据库及分布式存储数据库,所述方法包括:对从客户端接收的各数据读请求进行解析,得到对应的读请求类型;其中,所述读请求类型包括热表读请求及非热表读请求;从各读请求类型对应的存储区分别获取对应的热表数据处理结果及非热表数据处理结果;按照所述分布式缓存数据库与所述分布式存储数据库之间的数据结构映射关系将所述热表数据处理结果及非热表数据处理结果进行聚合,并发送聚合结果至所述客户端。本申请能够对分布式缓存数据库与分布式存储数据库进行融合,在分布式缓存数据库与分布式存储数据库中处理客户的访问请求。

Description

一种数据库访问方法及装置
技术领域
本申请涉及数据库技术领域,可以用于金融领域,具体是一种数据库访问方法及装置。
背景技术
金融机构的业务系统在进行金融业务处理时,经常需要与金融机构的数据库服务器进行读写交互。金融机构的数据库服务器包括分布式缓存数据库及分布式存储数据库。随着金融业务并发访问量的不断增加,为降低对分布式存储数据库的访问压力,提升数据访问的响应能力,金融机构往往需要根据自身的业务数据特点,将读多写少、访问较为频繁的热点数据缓存至分布式缓存数据库中。
由于分布式缓存数据库与分布式存储数据库的数据读写方式存在较大差异。目前业界将分布式缓存数据库与分布式存储数据库设置为两套独立的数据存取系统。当业务层面需要访问两套独立的数据存取系统时,需要自行完成二者之间的数据转换。例如,对分布式存储数据库中的数据进行结构转换,将结构转换后的数据通过联机、批量等方式导入分布式缓存数据库中,并需要自行保证分布式缓存数据库与分布式存储数据库之间数据的一致性,逻辑操作繁复,且容易出错。
发明内容
针对现有技术中的问题,本申请提供一种数据库访问方法及装置,能够对分布式缓存数据库与分布式存储数据库进行融合,在分布式缓存数据库与分布式存储数据库中处理客户的访问请求。
为解决上述技术问题,本申请提供以下技术方案:
第一方面,本申请提供一种数据库访问方法,所述数据库包括分布式缓存数据库及分布式存储数据库,所述方法包括:
对从客户端接收的各数据读请求进行解析,得到对应的读请求类型;其中,所述读请求类型包括热表读请求及非热表读请求;
从各读请求类型对应的存储区分别获取对应的热表数据处理结果及非热表数据处理结果;
按照所述分布式缓存数据库与所述分布式存储数据库之间的数据结构映射关系将所述热表数据处理结果及非热表数据处理结果进行聚合,并发送聚合结果至所述客户端。
进一步地,所述对从客户端接收的各数据读请求进行解析,得到对应的读请求类型,包括:
对所述数据读请求中的数据库结构化请求语句进行语法分析,确定要访问的数据表;
根据所述数据表的类型确定所述读请求类型;其中,所述数据表的类型包括热表类型及非热表类型。
进一步地,在从各读请求类型对应的存储区分别获取对应的热表数据处理结果及非热表数据处理结果之前,还包括:
根据所述读请求类型确定对应的存储区。
进一步地,所述读请求类型为所述热表读请求;所述从各读请求类型对应的存储区分别获取对应的热表数据处理结果及非热表数据处理结果,包括:
根据所述分布式缓存数据库的路由表将所述数据读请求路由至所述分布式缓存数据库对应的存储区;
从该存储区中获取热表数据作为所述热表数据处理结果;所述热表数据包括索引数据及哈希数据。
进一步地,所述读请求类型为所述非热表读请求;所述从各读请求类型对应的存储区分别获取对应的热表数据处理结果及非热表数据处理结果,包括:
根据所述分布式存储数据库的路由表将所述数据读请求路由至所述分布式存储数据库对应的存储区;
从该存储区中获取非热表数据作为所述非热表数据处理结果;其中,所述非热表数据为数据库结构化查询语句。
进一步地,所述映射关系包括所述索引数据与数据库结构化语句之间的第一映射关系及所述哈希数据与数据库结构化语句之间的第二映射关系;所述按照所述分布式缓存数据库与所述分布式存储数据库之间的数据结构映射关系将所述热表数据处理结果及非热表数据处理结果进行聚合,包括:
根据所述第一映射关系及所述第二映射关系将所述热表数据处理结果转换为数据库结构化转换语句;
将所述数据库结构化转换语句及所述数据库结构化查询语句进行打包,得到所述聚合结果。
进一步地,所述的数据库访问方法,还包括:
根据所述分布式存储数据库的路由表将从所述客户端接收的数据写请求路由至所述分布式存储数据库进行处理;
按照所述分布式缓存数据库与所述分布式存储数据库之间的数据结构映射关系对处理后的数据进行数据结构转换;
根据数据结构转换结果对所述分布式缓存数据库及所述分布式存储数据库进行数据同步。
进一步地,所述根据所述分布式存储数据库的路由表将从所述客户端接收的数据写请求路由至所述分布式存储数据库进行处理,包括:
对所述数据写请求中的数据库结构化请求语句进行语法分析,得到待写入数据及对应的数据表;
根据所述分布式存储数据库的路由表将所述待写入数据写入该数据表;其中,该数据表存储于所述分布式存储数据库的存储区内。
进一步地,所述映射关系包括索引数据与数据库结构化语句之间的第一映射关系及哈希数据与数据库结构化语句之间的第二映射关系;所述处理后的数据为写入所述数据表的数据;所述按照所述分布式缓存数据库与所述分布式存储数据库之间的数据结构映射关系对处理后的数据进行数据结构转换,包括:
根据所述第一映射关系及所述第二映射关系将写入所述数据表的数据转换为索引数据和/或索引数据。
进一步地,所述根据数据结构转换结果对所述分布式缓存数据库及所述分布式存储数据库进行数据同步,包括:
将所述索引数据按照所述索引数据的数据结构写入所述分布式缓存数据库;
将所述哈希数据按照所述哈希数据的数据结构写入所述分布式缓存数据库,以使所述分布式缓存数据库中的数据与所述分布式存储数据库中的数据保持一致。
第二方面,本申请提供一种数据库访问装置,所述数据库包括分布式缓存数据库及分布式存储数据库,所述装置包括:
读请求解析单元,用于对从客户端接收的各数据读请求进行解析,得到对应的读请求类型;其中,所述读请求类型包括热表读请求及非热表读请求;
数据处理单元,用于从各读请求类型对应的存储区分别获取对应的热表数据处理结果及非热表数据处理结果;
聚合发送单元,用于按照所述分布式缓存数据库与所述分布式存储数据库之间的数据结构映射关系将所述热表数据处理结果及非热表数据处理结果进行聚合,并发送聚合结果至所述客户端。
进一步地,所述的数据库访问方法,所述读请求解析单元,包括:
数据表确定模块,用于对所述数据读请求中的数据库结构化请求语句进行语法分析,确定要访问的数据表;
读请求类型确定模块,用于根据所述数据表的类型确定所述读请求类型;其中,所述数据表的类型包括热表类型及非热表类型。
进一步地,所述的数据库访问装置,还包括:
存储区确定单元,用于根据所述读请求类型确定对应的存储区。
进一步地,所述的数据库访问方法,所述读请求类型为所述热表读请求;所述数据处理单元,包括:
第一存储区路由模块,用于根据所述分布式缓存数据库的路由表将所述数据读请求路由至所述分布式缓存数据库对应的存储区;
热表数据获取模块,用于从该存储区中获取热表数据作为所述热表数据处理结果;所述热表数据包括索引数据及哈希数据。
进一步地,所述读请求类型为所述非热表读请求;所述数据处理单元,包括:
第二存储区路由模块,用于根据所述分布式存储数据库的路由表将所述数据读请求路由至所述分布式存储数据库对应的存储区;
非热表数据获取模块,用于从该存储区中获取非热表数据作为所述非热表数据处理结果;其中,所述非热表数据为数据库结构化查询语句。
进一步地,所述映射关系包括所述索引数据与数据库结构化语句之间的第一映射关系及所述哈希数据与数据库结构化语句之间的第二映射关系;所述聚合发送单元,包括:
数据转换模块,用于根据所述第一映射关系及所述第二映射关系将所述热表数据处理结果转换为数据库结构化转换语句;
打包聚合模块,用于将所述数据库结构化转换语句及所述数据库结构化查询语句进行打包,得到所述聚合结果。
进一步地,所述的数据库访问装置,还包括:
写请求处理单元,用于根据所述分布式存储数据库的路由表将从所述客户端接收的数据写请求路由至所述分布式存储数据库进行处理;
数据结构转换单元,用于按照所述分布式缓存数据库与所述分布式存储数据库之间的数据结构映射关系对处理后的数据进行数据结构转换;
数据同步单元,用于根据数据结构转换结果对所述分布式缓存数据库及所述分布式存储数据库进行数据同步。
进一步地,所述写请求处理单元,包括:
待写入数据及表确定模块,用于对所述数据写请求中的数据库结构化请求语句进行语法分析,得到待写入数据及对应的数据表;
数据写入模块,用于根据所述分布式存储数据库的路由表将所述待写入数据写入该数据表;其中,该数据表存储于所述分布式存储数据库的存储区内。
进一步地,所述映射关系包括索引数据与数据库结构化语句之间的第一映射关系及哈希数据与数据库结构化语句之间的第二映射关系;所述处理后的数据为写入所述数据表的数据;所述数据结构转换单元,包括:
数据结构转换模块,用于根据所述第一映射关系及所述第二映射关系将写入所述数据表的数据转换为索引数据和/或索引数据。
进一步地,所述数据同步单元,包括:
索引数据同步模块,用于将所述索引数据按照所述索引数据的数据结构写入所述分布式缓存数据库;
哈希数据同步模块,用于将所述哈希数据按照所述哈希数据的数据结构写入所述分布式缓存数据库,以使所述分布式缓存数据库中的数据与所述分布式存储数据库中的数据保持一致。
第三方面,本申请提供一种电子设备包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现所述数据库访问方法的步骤。
第四方面,本申请提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现所述数据库访问方法的步骤。
第五方面,本申请提供一种计算机程序产品,包括计算机程序/指令,该计算机程序/指令被处理器执行时实现所述数据库访问方法的步骤。
针对现有技术中的问题,本申请提供的数据库访问方法及装置,能够对分布式缓存数据库与分布式存储数据库进行融合;客户无论是需要访问分布式缓存数据库还是分布式存储数据库,均可通过数据库结构化语句将访问请求发送至服务器,服务器在接收到该访问请求后,能够自行对其进行解析,判断该访问请求是应该被路由至分布式缓存数据库还是分布式存储数据库,再根据访问请求中具体的内容处理该访问请求,提升了数据库的易用性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例中数据库访问方法的流程图之一;
图2为本申请实施例中得到对应的读请求类型的流程图;
图3为本申请实施例中获取数据处理结果的流程图之一;
图4为本申请实施例中获取数据处理结果的流程图之二;
图5为本申请实施例中对数据处理结果进行聚合的流程图;
图6为本申请实施例中数据库访问方法的流程图之二;
图7为本申请实施例中处理数据写请求的流程图;
图8为本申请实施例中进行数据同步的流程图;
图9为本申请实施例中数据库访问装置的结构图之一;
图10为本申请实施例中读请求解析单元的结构图;
图11为本申请实施例中数据处理单元的结构图之一;
图12为本申请实施例中数据处理单元的结构图之二;
图13为本申请实施例中聚合发送单元的结构图;
图14为本申请实施例中数据库访问装置的结构图之二;
图15为本申请实施例中写请求处理单元的结构图;
图16为本申请实施例中数据同步单元的结构图;
图17为本申请实施例中的电子设备的结构示意图;
图18为本申请实施例中分布式缓存数据库与分布式存储数据库的融合构架示意图;
图19为本申请实施例中处理客户端发送的数据读请求的流程示意图;
图20为本申请实施例中分布式缓存数据库与分布式存储数据库的数据结构映射关系示意图;
图21为本申请实施例中分布式缓存数据库与分布式存储数据库的数据结构转换过程示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
需要说明的是,本申请提供的数据库访问方法及装置,可用于金融领域,也可用于除金融领域之外的任意领域,本申请提供的数据库访问方法及装置的应用领域不做限定。
本申请技术方案中对数据的获取、存储、使用及处理等均符合国家法律法规的相关规定。
金融机构的业务系统在进行金融业务处理时,经常需要与金融机构的数据库服务器进行读写交互。金融机构的数据库服务器包括分布式缓存数据库(也称分布式缓冲存储器)及分布式存储数据库(可为分布式关系型数据库)。随着金融业务并发访问量的不断增加,为降低对分布式存储数据库的访问压力,提升数据访问的响应能力,金融机构往往需要根据自身的业务数据特点,将读多写少、访问较为频繁的热点数据缓存至分布式缓存数据库中。
由于分布式缓存数据库与分布式存储数据库的数据读写方式存在较大差异。目前业界将分布式缓存数据库与分布式存储数据库设置为两套独立的数据存取系统。当客户端站在业务层面需要访问两套独立的数据存取系统时,需要自行完成二者之间的数据转换,并需要自行保证分布式缓存数据库与分布式存储数据库之间数据的一致性,逻辑操作繁复,且容易出错。为了解决上述技术问题,本申请提供了一种数据库访问方法及装置。
参见图18,图18是本申请实施例中分布式缓存数据库与分布式存储数据库的融合构架示意图。
其中,图18中的各组件如下:
1、代理组件(DBProxy):分布式存储数据库的代理组件,负责数据库结构化请求语句(实质为SQL语句)的语法解析,然后根据预设的规则将数据读请求路由至分布式缓存数据库或分布式存储数据库。
2、分布式存储数据库(DBS)的存储组件(DBEngine):其内设置有数据存储区,各存储区内存储有全量的业务数据。
3、分布式缓存数据库(Dcache):负责存储预定义的热表数据,并提供高性能的读服务,降低分布式存储数据库的访问压力。
4、预加载组件(Ploader):负责将预定义的热表数据在初始化阶段从分布式存储数据库加载至分布式缓存数据库,按照分布式缓存数据库与分布式存储数据库之间的数据结构映射关系(实质为关系表与KV数据结构的映射关系)进行数据结构转换。
5、实时同步组件(RTSyncer):用于处理客户端发送的写数据请求,当涉及热表数据的写入时,需对分布式存储数据库与分布式缓存数据库进行数据同步。
一实施例中,参见图1,为了能够对分布式缓存数据库与分布式存储数据库进行融合,在分布式缓存数据库与分布式存储数据库中处理客户的访问请求,本申请提供一种数据库访问方法,所述数据库包括分布式缓存数据库及分布式存储数据库,所述方法包括:
S101:对从客户端接收的各数据读请求进行解析,得到对应的读请求类型;其中,所述读请求类型包括热表读请求及非热表读请求;
S102:从各读请求类型对应的存储区分别获取对应的热表数据处理结果及非热表数据处理结果;
S103:按照所述分布式缓存数据库与所述分布式存储数据库之间的数据结构映射关系将所述热表数据处理结果及非热表数据处理结果进行聚合,并发送聚合结果至所述客户端。
可以理解的是,步骤S101至步骤S103是客户端从数据库中读数据的实现步骤。参见图19,读请求处理的处理步骤可理解为:
第一,代理组件接收客户端发送来的数据读请求(实质为SQL语句),进行语法(包括词法)解析。
第二,将涉及热表数据的访问请求按照分布式缓存数据库的路由表发送至分布式缓存数据库的存储区。
第三,将不涉及热表数据的访问请求按照分布式存储数据库的路由表发送至分布式存储数据库的存储区。
第四,代理组件将在分布式缓存数据库中及在分布式存储数据库中完成的处理结果进行聚合后返回给客户端。
具体地,参见图2,所述对从客户端接收的各数据读请求进行解析,得到对应的读请求类型,包括:对所述数据读请求中的数据库结构化请求语句进行语法分析,确定要访问的数据表(S201);根据所述数据表的类型确定所述读请求类型;其中,所述数据表的类型包括热表类型及非热表类型(S202)。
可以理解的是,由于数据库结构化请求语句中至少记载有该请求对应要访问的数据表的名称,因此,可以利用现有的适用于SQL语句的语法分析工具来解析出数据库结构化请求语句中所记载的数据表的名称,从而确定该请求对应要访问的数据表。由于数据表可分为热表及非热表,若该请求对应要访问的数据表为热表,则认为该读请求类型为热表类型,即其要访问的数据涉及分布式缓存数据库,若该请求对应要访问的数据表为非热表,则认为该读请求类型为非热表类型,即其要访问的数据涉及分布式存储数据库。
从上述描述可知,本申请提供的数据库访问方法,能够对从客户端接收的各数据读请求进行解析,得到对应的读请求类型。
一实施例中,在进行从各读请求类型对应的存储区分别获取对应的热表数据处理结果及非热表数据处理结果(S102)之前,还包括:根据所述读请求类型确定对应的存储区。
针对步骤S102,一实施例中,参见图3,所述读请求类型为所述热表读请求;所述从各读请求类型对应的存储区分别获取对应的热表数据处理结果及非热表数据处理结果,包括:根据所述分布式缓存数据库的路由表将所述数据读请求路由至所述分布式缓存数据库对应的存储区(S301);从该存储区中获取热表数据作为所述热表数据处理结果;所述热表数据包括索引数据及哈希数据(S302)。
可以理解的是,S301在具体实施时是通过一致性哈希算法实现路由。
针对步骤S102,一实施例中,参见图4,所述读请求类型为所述非热表读请求;所述从各读请求类型对应的存储区分别获取对应的热表数据处理结果及非热表数据处理结果,包括:根据所述分布式存储数据库的路由表将所述数据读请求路由至所述分布式存储数据库对应的存储区(S401);从该存储区中获取非热表数据作为所述非热表数据处理结果;其中,所述非热表数据为数据库结构化查询语句(S402)。
可以理解的是,S401在具体实施时是通过语法解析,词法解析,结合表名、主键、B+tree等算法,路由至数据存储区。
针对步骤S103,一实施例中,参见图5,所述映射关系包括所述索引数据与数据库结构化语句之间的第一映射关系及所述哈希数据与数据库结构化语句之间的第二映射关系;所述按照所述分布式缓存数据库与所述分布式存储数据库之间的数据结构映射关系将所述热表数据处理结果及非热表数据处理结果进行聚合,包括:
S501:根据所述第一映射关系及所述第二映射关系将所述热表数据处理结果转换为数据库结构化转换语句;
可以理解的是,参见图20,关系型数据结构向键值数据结构(也称KV数据结构)转换的总体思路如下。
1、将主键和索引分别存储在有序集合zset中,存索引时member的组成是“索引值:表名.主键值”(这样操作的目的参见下述的第4点)。
2、将关系表中的每条记录都存成一条Hash,key就是主键,field、value就是每个属性和值。
3、当SQL语句是以主键进行查询时,则可通过hash key直接获取行记录。
4、当SQL语句以索引进行查询时,可以对上述第1点中的有序集合zset采用zscan接口找到包含查询索引的member字符串,然后根据此member后面拼接的主键,再通过第2点中的以主键为key的hash获取对应的行记录。
具体实施时,第一,在Dcache中创建一个有序集合zset,保存分布式存储数据库中的主键,key为“表名.主键列名”:
其中,主键类型为数字:
member为“表名.主键值”,score为主键值,则zset中的member按score数值排序。
主键类型为字符串:
member为“主键值:表名.主键值”,score为0,因为zset在score为0时按member字典序排列。
第二,分布式存储数据库表中的每行记录相当于DCache中的一个hash,hash的结构为:key field value,将key对应关系表中的“表名.主键值”,field对应关系表中属性名,value对应关系表中记录的属性值。
举例:
关系表一条记录对应DCache中的一条hash数据:
key:Table.key1
field:Title1、Title2、Title3
value:key1、value12、value13
关系表中的索引,对应DCache中一个有序集合zset,key为“表名.索引名”。
其中,索引列类型为数字:
member为“表名.主键值”,score为索引列的值,则zset中的member按score数值排序。
索引列类型为字符串:
member为“索引列的值:表名.主键值”,score为0,因为zset在score为0时按member字典序排列。
下面举一具体操作实例:
1、加载并读取用户预定义数据库中的热表信息,生成热表数据结构到缓存数据结构的转化脚本。
2、从分布式存储数据库中读取热表元数据,然后按上述的主键、索引与KV数据结构的映射关系,生成转换脚本DBS2Cache.sql。
注释:DBS2Cache.sql脚本分为2部分:
①FROM部分
1)定义hash的key和各个域(field)的名称(order.1等)
2)定义hash各个field值与表数据的对应关系({id:1,name:wangwu,orderNo:20394,createTime:2022.4.5})
3)创建hash类型的缓存写入命令(hmset)
4)定义主索引对应的key(order.id)
5)创建主索引的缓存写入命令(zadd)
②CONCAT部分
针对数据库表中每行记录都会生成相应的缓存协议写请求,最后将所有写请求通过concat连接在一起。
3、使用SQL脚本执行器,执行第一步生成的数据转换脚本,从分布式数据库中读取表数据,生成由分布式缓存协议构成的命令集。
4、调用分布式缓存客户端或批量导入执行器,将生成的缓存命令集导入缓冲数据库集群中。
进一步地,分布式存储数据库的表结构向分布式缓存数据库的KV结构转换的举例说明如下:
Figure BDA0003802584760000121
Figure BDA0003802584760000131
S502:将所述数据库结构化转换语句及所述数据库结构化查询语句进行打包,得到所述聚合结果。
在本步骤中,由于根据前述的数据结构映射关系已经能够将具有KV数据结构的热表数据转换为SQL语句(即数据库结构化转换语句),因此,可以对相同数据结构的两部分数据处理结果,即数据库结构化转换语句与数据库结构化查询语句(直接从分布式存储数据库中读取到的)进行统一打包,然后得到聚合结果,最终发送至客户端。由此,对于客户端而言,其整个从数据库进行数据读取的过程从一开始就只需要以SQL语句的形式发出一个数据读请求,由本申请实施例中的执行主体(即执行本申请提供的方法的服务器)进行自行解析,并按照数据读请求中的要求,为客户端找到其所需要读的数据,然后利用数据结构映射关系将KV数据结构的热表数据转换为SQL语句,最终与从从分布式存储数据库中直接读取到的SQL语句一起打包返回至客户端。由此,客户端接触的始终都是通用的SQL语句,而无需根据其所需要读的数据是在分布式缓存数据库中还是在分布式存储数据库,而自己进行数据转换的相关操作。
从上述描述可知,本申请提供的数据库访问方法,能够对分布式缓存数据库与分布式存储数据库进行融合;客户无论是需要访问分布式缓存数据库还是分布式存储数据库,均可通过数据库结构化语句将访问请求发送至服务器,服务器在接收到该访问请求后,能够自行对其进行解析,判断该访问请求是应该被路由至分布式缓存数据库还是分布式存储数据库,再根据访问请求中具体的内容处理该访问请求,提升了数据库的易用性。
一实施例中,参见图6,本申请提供的数据库访问方法,还包括处理客户端发送的数据写请求。具体步骤如下:
S601:根据所述分布式存储数据库的路由表将从所述客户端接收的数据写请求路由至所述分布式存储数据库进行处理;
S602:按照所述分布式缓存数据库与所述分布式存储数据库之间的数据结构映射关系对处理后的数据进行数据结构转换;
S603:根据数据结构转换结果对所述分布式缓存数据库及所述分布式存储数据库进行数据同步。
可以理解的是,步骤S601至步骤S603是客户端往数据库中写数据的实现步骤。写请求处理的处理步骤可理解为:
第一,代理组件将数据写请求按分布式存储数据库的路由表发送至分布式存储数据库的存储区。
第二,同步组件将准实时感知到数据库集群表数据的更新。
第三,当更新数据涉及热表时则自动将相关数据同步至分布式缓存数据库中。
一实施例中,参见图7,所述根据所述分布式存储数据库的路由表将从所述客户端接收的数据写请求路由至所述分布式存储数据库进行处理,包括:
S701:对所述数据写请求中的数据库结构化请求语句(实质为SQL语句)进行语法分析,得到待写入数据及对应的数据表;
S702:根据所述分布式存储数据库的路由表将所述待写入数据写入该数据表;其中,该数据表存储于所述分布式存储数据库的存储区内。
可以理解的是,由于数据库结构化请求语句中至少记载有该请求对应要访问的数据表的名称,因此,可以利用现有的适用于SQL语句的语法分析工具来解析出数据库结构化请求语句中所记载的数据表的名称,从而确定该请求对应要访问的数据表。
在本申请实施例中,认为客户端在写数据时一定是往分布式存储数据库中写的,而不会直接将数据写入分布式缓存数据库。因此,在考虑数据同步时,是考虑如何将SQL语句的数据结构转换为分布式缓存数据库对应的KV数据结构。
由于数据表可分为热表及非热表,若该请求对应要往热表中写数据,则认为在完成对分布式存储数据库的数据后,应该将对应的数据写入分布式缓存数据库,即进行数据同步。
从上述描述可知,本申请提供的数据库访问方法,能够根据所述分布式存储数据库的路由表将从所述客户端接收的数据写请求路由至所述分布式存储数据库进行处理。所谓处理即是写入该数据的过程。
一实施例中,所述映射关系包括索引数据与数据库结构化语句之间的第一映射关系及哈希数据与数据库结构化语句之间的第二映射关系;所述处理后的数据为写入所述数据表的数据;所述按照所述分布式缓存数据库与所述分布式存储数据库之间的数据结构映射关系对处理后的数据进行数据结构转换,包括:
根据所述第一映射关系及所述第二映射关系将写入所述数据表的数据转换为索引数据和/或索引数据。
可以理解的是,参见图21,根据前述数据结构的转换关系可知:由于写入数据表的数据实质上为SQL语句,又由于SQL语句与分布式缓存数据库中的KV数据结构存在映射关系(包括第一映射关系及第二映射关系),因此,根据第一映射关系及第二映射关系能够将写入数据表的数据转换为索引数据和/或索引数据。
一实施例中,参见图8,所述根据数据结构转换结果对所述分布式缓存数据库及所述分布式存储数据库进行数据同步,包括:
S801:将所述索引数据按照所述索引数据的数据结构写入所述分布式缓存数据库;
S802:将所述哈希数据按照所述哈希数据的数据结构写入所述分布式缓存数据库,以使所述分布式缓存数据库中的数据与所述分布式存储数据库中的数据保持一致。
可以理解的是,在前述实施例中,由于写入数据表的数据已经被转换为了索引数据和/或索引数据,而索引数据和/或索引数据所对应的数据结构是能够被分布式缓存数据库识别的。因此,索引数据及哈希数据均能够被写入分布式缓存数据库。从而完成了分布式缓存数据库中的数据与分布式存储数据库之间的数据同步。
从上述描述可知,本申请提供的数据库访问方法,能够对分布式缓存数据库与分布式存储数据库进行融合;客户无论是需要访问分布式缓存数据库还是分布式存储数据库,均可通过数据库结构化语句将访问请求发送至服务器,服务器在接收到该访问请求后,能够自行对其进行解析,判断该访问请求是应该被路由至分布式缓存数据库还是分布式存储数据库,再根据访问请求中具体的内容处理该访问请求,提升了数据库的易用性。
综上所述,本申请提供的方法及装置至少具有如下优势:
将分布式存储数据库与分布式缓存数据库进行融合,当客户端需要使用分布式缓存数据库的功能时,只需要通过通用的SQL语句形式,进行简单的配置,提供数据表名称,服务器即可自行从对应的数据库中的数据表中为其找到数据。也就是说,客户端只需要使用标准的SQL语句就能够完成对上述两种数据库的访问,服务器可自行判断客户端发送的数据读请求应该路由至分布式存储数据库还是分布式缓存数据库,提升了数据库易用性。另外,当客户端发送数据写请求时,也无需担心其写入分布式存储数据库中的数据无法与分布式缓存数据库进行同步,因为执行本申请提供的方法的服务器能够利用前述数据结构映射关系,自行完成数据同步,客户端无需自己编程实现SQL语句向KV数据结构的转换,即:
1)客户端无需实现将DBS中的热点数据进行KV结构转换并导入DCache中。
2)客户端无需关心DBS中的数据是否与Dcache中的数据保持一致,服务器会通过后台异步的方式,根据前述的数据读写请求在一定时间范围内同步DBS与Dcache中的数据。
3)客户端无需自行实现当DCache不可用时的熔断回切操作,由服务器自行仲裁回切。
进一步地,本申请提供的方法可代替客户端自动将关系型数据库中的表数据结构转换为KV存储结构,自动完成上述两种数据库之间的数据同步。本申请提供的方法可代替客户端自动完成缓存失效或异常时自动熔断回切至关系型数据库,提升了系统整体的高可用性,保证了业务处理的连续性。
所谓熔断回切能力是指:
1、代理组件对分布式缓存数据库的状态做周期性探测。
2、若分布式缓存数据库状态正常,代理组件将按上述的读写流程进行相应的请求处理。
3、若分布式缓存数据库状态异常,代理组件直接将数据请求转发给分布式存储数据库的相应存储区,处理流程不再经过分布式缓存数据库。
基于同一发明构思,本申请实施例还提供了一种数据库访问装置,可以用于实现上述实施例所描述的方法,如下面的实施例所述。由于数据库访问装置解决问题的原理与数据库访问方法相似,因此数据库访问装置的实施可以参见基于软件性能基准确定方法的实施,重复之处不再赘述。以下所使用的,术语“单元”或者“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的系统较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
一实施例中,参见图9,为了能够对分布式缓存数据库与分布式存储数据库进行融合,在分布式缓存数据库与分布式存储数据库中处理客户的访问请求,本申请提供一种数据库访问装置,所述数据库包括分布式缓存数据库及分布式存储数据库,所述装置包括:读请求解析单元901、数据处理单元902及聚合发送单元903。
读请求解析单元901,用于对从客户端接收的各数据读请求进行解析,得到对应的读请求类型;其中,所述读请求类型包括热表读请求及非热表读请求;
数据处理单元902,用于从各读请求类型对应的存储区分别获取对应的热表数据处理结果及非热表数据处理结果;
聚合发送单元903,用于按照所述分布式缓存数据库与所述分布式存储数据库之间的数据结构映射关系将所述热表数据处理结果及非热表数据处理结果进行聚合,并发送聚合结果至所述客户端。
一实施例中,参见图10,所述读请求解析单元901,包括:数据表确定模块1001及读请求类型确定模块1002。
数据表确定模块1001,用于对所述数据读请求中的数据库结构化请求语句进行语法分析,确定要访问的数据表;
读请求类型确定模块1002,用于根据所述数据表的类型确定所述读请求类型;其中,所述数据表的类型包括热表类型及非热表类型。
一实施例中,所述的数据库访问装置,还包括:
存储区确定单元,用于根据所述读请求类型确定对应的存储区。
一实施例中,参见图11,所述读请求类型为所述热表读请求;所述数据处理单元,包括:第一存储区路由模块1101及热表数据获取模块1102。
第一存储区路由模块1101,用于根据所述分布式缓存数据库的路由表将所述数据读请求路由至所述分布式缓存数据库对应的存储区;
热表数据获取模块1102,用于从该存储区中获取热表数据作为所述热表数据处理结果;所述热表数据包括索引数据及哈希数据。
一实施例中,参见图12,所述读请求类型为所述非热表读请求;所述数据处理单元,包括:第二存储区路由模块1201及非热表数据获取模块1202。
第二存储区路由模块1201,用于根据所述分布式存储数据库的路由表将所述数据读请求路由至所述分布式存储数据库对应的存储区;
非热表数据获取模块1202,用于从该存储区中获取非热表数据作为所述非热表数据处理结果;其中,所述非热表数据为数据库结构化查询语句。
一实施例中,参见图13,所述映射关系包括所述索引数据与数据库结构化语句之间的第一映射关系及所述哈希数据与数据库结构化语句之间的第二映射关系;所述聚合发送单元903,包括:数据转换模块1301及打包聚合模块1302。
数据转换模块1301,用于根据所述第一映射关系及所述第二映射关系将所述热表数据处理结果转换为数据库结构化转换语句;
打包聚合模块1302,用于将所述数据库结构化转换语句及所述数据库结构化查询语句进行打包,得到所述聚合结果。
一实施例中,参见图14,所述的数据库访问装置,还包括:写请求处理单元1401、数据结构转换单元1402及数据同步单元1403。
写请求处理单元1401,用于根据所述分布式存储数据库的路由表将从所述客户端接收的数据写请求路由至所述分布式存储数据库进行处理;
数据结构转换单元1402,用于按照所述分布式缓存数据库与所述分布式存储数据库之间的数据结构映射关系对处理后的数据进行数据结构转换;
数据同步单元1403,用于根据数据结构转换结果对所述分布式缓存数据库及所述分布式存储数据库进行数据同步。
一实施例中,参见图15,所述写请求处理单元1401,包括:
待写入数据及表确定模块1501,用于对所述数据写请求中的数据库结构化请求语句进行语法分析,得到待写入数据及对应的数据表;
数据写入模块1502,用于根据所述分布式存储数据库的路由表将所述待写入数据写入该数据表;其中,该数据表存储于所述分布式存储数据库的存储区内。
一实施例中,所述映射关系包括索引数据与数据库结构化语句之间的第一映射关系及哈希数据与数据库结构化语句之间的第二映射关系;所述处理后的数据为写入所述数据表的数据;所述数据结构转换单元1402,包括:
数据结构转换模块,用于根据所述第一映射关系及所述第二映射关系将写入所述数据表的数据转换为索引数据和/或索引数据。
一实施例中,参见图16,所述数据同步单元1403,包括:
索引数据同步模块1601,用于将所述索引数据按照所述索引数据的数据结构写入所述分布式缓存数据库;
哈希数据同步模块1602,用于将所述哈希数据按照所述哈希数据的数据结构写入所述分布式缓存数据库,以使所述分布式缓存数据库中的数据与所述分布式存储数据库中的数据保持一致。
从硬件层面来说,为了能够对分布式缓存数据库与分布式存储数据库进行融合,在分布式缓存数据库与分布式存储数据库中处理客户的访问请求,本申请提供一种用于实现所述数据库访问方法中的全部或部分内容的电子设备的实施例,所述电子设备具体包含有如下内容:
处理器(Processor)、存储器(Memory)、通讯接口(Communications Interface)和总线;其中,所述处理器、存储器、通讯接口通过所述总线完成相互间的通讯;所述通讯接口用于实现所述数据库访问装置与核心业务系统、用户终端以及相关数据库等相关设备之间的信息传输;该逻辑控制器可以是台式计算机、平板电脑及移动终端等,本实施例不限于此。在本实施例中,该逻辑控制器可以参照实施例中的数据库访问方法的实施例,以及数据库访问装置的实施例进行实施,其内容被合并于此,重复之处不再赘述。
可以理解的是,所述用户终端可以包括智能手机、平板电子设备、网络机顶盒、便携式计算机、台式电脑、个人数字助理(PDA)、车载设备、智能穿戴设备等。其中,所述智能穿戴设备可以包括智能眼镜、智能手表、智能手环等。
在实际应用中,数据库访问方法的部分可以在如上述内容所述的电子设备侧执行,也可以所有的操作都在所述客户端设备中完成。具体可以根据所述客户端设备的处理能力,以及用户使用场景的限制等进行选择。本申请对此不作限定。若所有的操作都在所述客户端设备中完成,所述客户端设备还可以包括处理器。
上述的客户端设备可以具有通讯模块(即通讯单元),可以与远程的服务器进行通讯连接,实现与所述服务器的数据传输。所述服务器可以包括任务调度中心一侧的服务器,其他的实施场景中也可以包括中间平台的服务器,例如与任务调度中心服务器有通讯链接的第三方服务器平台的服务器。所述的服务器可以包括单台计算机设备,也可以包括多个服务器组成的服务器集群,或者分布式装置的服务器结构。
图17为本申请实施例的电子设备9600的系统构成的示意框图。如图17所示,该电子设备9600可以包括中央处理器9100和存储器9140;存储器9140耦合到中央处理器9100。值得注意的是,该图17是示例性的;还可以使用其他类型的结构,来补充或代替该结构,以实现电信功能或其他功能。
一实施例中,数据库访问方法功能可以被集成到中央处理器9100中。其中,中央处理器9100可以被配置为进行如下控制:
S101:对从客户端接收的各数据读请求进行解析,得到对应的读请求类型;其中,所述读请求类型包括热表读请求及非热表读请求;
S102:从各读请求类型对应的存储区分别获取对应的热表数据处理结果及非热表数据处理结果;
S103:按照所述分布式缓存数据库与所述分布式存储数据库之间的数据结构映射关系将所述热表数据处理结果及非热表数据处理结果进行聚合,并发送聚合结果至所述客户端。
从上述描述可知,本申请提供的数据库访问方法,能够对分布式缓存数据库与分布式存储数据库进行融合;客户无论是需要访问分布式缓存数据库还是分布式存储数据库,均可通过数据库结构化语句将访问请求发送至服务器,服务器在接收到该访问请求后,能够自行对其进行解析,判断该访问请求是应该被路由至分布式缓存数据库还是分布式存储数据库,再根据访问请求中具体的内容处理该访问请求,提升了数据库的易用性。
在另一个实施方式中,数据库访问装置可以与中央处理器9100分开配置,例如可以将数据复合传输装置数据库访问装置配置为与中央处理器9100连接的芯片,通过中央处理器的控制来实现数据库访问方法的功能。
如图17所示,该电子设备9600还可以包括:通讯模块9110、输入单元9120、音频处理器9130、显示器9160、电源9170。值得注意的是,电子设备9600也并不是必须要包括图17中所示的所有部件;此外,电子设备9600还可以包括图17中没有示出的部件,可以参考现有技术。
如图17所示,中央处理器9100有时也称为控制器或操作控件,可以包括微处理器或其他处理器装置和/或逻辑装置,该中央处理器9100接收输入并控制电子设备9600的各个部件的操作。
其中,存储器9140,例如可以是缓存器、闪存、硬驱、可移动介质、易失性存储器、非易失性存储器或其它合适装置中的一种或更多种。可储存上述与失败有关的信息,此外还可存储执行有关信息的程序。并且中央处理器9100可执行该存储器9140存储的该程序,以实现信息存储或处理等。
输入单元9120向中央处理器9100提供输入。该输入单元9120例如为按键或触摸输入装置。电源9170用于向电子设备9600提供电力。显示器9160用于进行图像和文字等显示对象的显示。该显示器例如可为LCD显示器,但并不限于此。
该存储器9140可以是固态存储器,例如,只读存储器(ROM)、随机存取存储器(RAM)、SIM卡等。还可以是这样的存储器,其即使在断电时也保存信息,可被选择性地擦除且设有更多数据,该存储器的示例有时被称为EPROM等。存储器9140还可以是某种其它类型的装置。存储器9140包括缓冲存储器9141(有时被称为缓冲器)。存储器9140可以包括应用/功能存储部9142,该应用/功能存储部9142用于存储应用程序和功能程序或用于通过中央处理器9100执行电子设备9600的操作的流程。
存储器9140还可以包括数据存储部9143,该数据存储部9143用于存储数据,例如联系人、数字数据、图片、声音和/或任何其他由电子设备使用的数据。存储器9140的驱动程序存储部9144可以包括电子设备的用于通讯功能和/或用于执行电子设备的其他功能(如消息传送应用、通讯录应用等)的各种驱动程序。
通讯模块9110即为经由天线9111发送和接收信号的发送机/接收机9110。通讯模块(发送机/接收机)9110耦合到中央处理器9100,以提供输入信号和接收输出信号,这可以和常规移动通讯终端的情况相同。
基于不同的通讯技术,在同一电子设备中,可以设置有多个通讯模块9110,如蜂窝网络模块、蓝牙模块和/或无线局域网模块等。通讯模块(发送机/接收机)9110还经由音频处理器9130耦合到扬声器9131和麦克风9132,以经由扬声器9131提供音频输出,并接收来自麦克风9132的音频输入,从而实现通常的电信功能。音频处理器9130可以包括任何合适的缓冲器、解码器、放大器等。另外,音频处理器9130还耦合到中央处理器9100,从而使得可以通过麦克风9132能够在本机上录音,且使得可以通过扬声器9131来播放本机上存储的声音。
本申请的实施例还提供能够实现上述实施例中的执行主体为服务器或客户端的数据库访问方法中全部步骤的一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述实施例中的执行主体为服务器或客户端的数据库访问方法的全部步骤,例如,所述处理器执行所述计算机程序时实现下述步骤:
S101:对从客户端接收的各数据读请求进行解析,得到对应的读请求类型;其中,所述读请求类型包括热表读请求及非热表读请求;
S102:从各读请求类型对应的存储区分别获取对应的热表数据处理结果及非热表数据处理结果;
S103:按照所述分布式缓存数据库与所述分布式存储数据库之间的数据结构映射关系将所述热表数据处理结果及非热表数据处理结果进行聚合,并发送聚合结果至所述客户端。
从上述描述可知,本申请提供的数据库访问方法,能够对分布式缓存数据库与分布式存储数据库进行融合;客户无论是需要访问分布式缓存数据库还是分布式存储数据库,均可通过数据库结构化语句将访问请求发送至服务器,服务器在接收到该访问请求后,能够自行对其进行解析,判断该访问请求是应该被路由至分布式缓存数据库还是分布式存储数据库,再根据访问请求中具体的内容处理该访问请求,提升了数据库的易用性。
本领域内的技术人员应明白,本发明的实施例可提供为方法、装置、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(装置)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
本发明中应用了具体实施例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

Claims (14)

1.一种数据库访问方法,其特征在于,所述数据库包括分布式缓存数据库及分布式存储数据库,所述方法包括:
对从客户端接收的各数据读请求进行解析,得到对应的读请求类型;其中,所述读请求类型包括热表读请求及非热表读请求;
从各读请求类型对应的存储区分别获取对应的热表数据处理结果及非热表数据处理结果;
按照所述分布式缓存数据库与所述分布式存储数据库之间的数据结构映射关系将所述热表数据处理结果及非热表数据处理结果进行聚合,并发送聚合结果至所述客户端。
2.根据权利要求1所述的数据库访问方法,其特征在于,所述对从客户端接收的各数据读请求进行解析,得到对应的读请求类型,包括:
对所述数据读请求中的数据库结构化请求语句进行语法分析,确定要访问的数据表;
根据所述数据表的类型确定所述读请求类型;其中,所述数据表的类型包括热表类型及非热表类型。
3.根据权利要求1所述的数据库访问方法,其特征在于,在从各读请求类型对应的存储区分别获取对应的热表数据处理结果及非热表数据处理结果之前,还包括:
根据所述读请求类型确定对应的存储区。
4.根据权利要求1所述的数据库访问方法,其特征在于,所述读请求类型为所述热表读请求;所述从各读请求类型对应的存储区分别获取对应的热表数据处理结果及非热表数据处理结果,包括:
根据所述分布式缓存数据库的路由表将所述数据读请求路由至所述分布式缓存数据库对应的存储区;
从该存储区中获取热表数据作为所述热表数据处理结果;所述热表数据包括索引数据及哈希数据。
5.根据权利要求1所述的数据库访问方法,其特征在于,所述读请求类型为所述非热表读请求;所述从各读请求类型对应的存储区分别获取对应的热表数据处理结果及非热表数据处理结果,包括:
根据所述分布式存储数据库的路由表将所述数据读请求路由至所述分布式存储数据库对应的存储区;
从该存储区中获取非热表数据作为所述非热表数据处理结果;其中,所述非热表数据为数据库结构化查询语句。
6.根据权利要求4所述的数据库访问方法,其特征在于,所述映射关系包括所述索引数据与数据库结构化语句之间的第一映射关系及所述哈希数据与数据库结构化语句之间的第二映射关系;所述按照所述分布式缓存数据库与所述分布式存储数据库之间的数据结构映射关系将所述热表数据处理结果及非热表数据处理结果进行聚合,包括:
根据所述第一映射关系及所述第二映射关系将所述热表数据处理结果转换为数据库结构化转换语句;
将所述数据库结构化转换语句及所述数据库结构化查询语句进行打包,得到所述聚合结果。
7.根据权利要求1所述的数据库访问方法,其特征在于,还包括:
根据所述分布式存储数据库的路由表将从所述客户端接收的数据写请求路由至所述分布式存储数据库进行处理;
按照所述分布式缓存数据库与所述分布式存储数据库之间的数据结构映射关系对处理后的数据进行数据结构转换;
根据数据结构转换结果对所述分布式缓存数据库及所述分布式存储数据库进行数据同步。
8.根据权利要求7所述的数据库访问方法,其特征在于,所述根据所述分布式存储数据库的路由表将从所述客户端接收的数据写请求路由至所述分布式存储数据库进行处理,包括:
对所述数据写请求中的数据库结构化请求语句进行语法分析,得到待写入数据及对应的数据表;
根据所述分布式存储数据库的路由表将所述待写入数据写入该数据表;其中,该数据表存储于所述分布式存储数据库的存储区内。
9.根据权利要求7所述的数据库访问方法,其特征在于,所述映射关系包括索引数据与数据库结构化语句之间的第一映射关系及哈希数据与数据库结构化语句之间的第二映射关系;所述处理后的数据为写入所述数据表的数据;所述按照所述分布式缓存数据库与所述分布式存储数据库之间的数据结构映射关系对处理后的数据进行数据结构转换,包括:
根据所述第一映射关系及所述第二映射关系将写入所述数据表的数据转换为索引数据和/或索引数据。
10.根据权利要求9所述的数据库访问方法,其特征在于,所述根据数据结构转换结果对所述分布式缓存数据库及所述分布式存储数据库进行数据同步,包括:
将所述索引数据按照所述索引数据的数据结构写入所述分布式缓存数据库;
将所述哈希数据按照所述哈希数据的数据结构写入所述分布式缓存数据库,以使所述分布式缓存数据库中的数据与所述分布式存储数据库中的数据保持一致。
11.一种数据库访问装置,其特征在于,所述数据库包括分布式缓存数据库及分布式存储数据库,所述装置包括:
读请求解析单元,用于对从客户端接收的各数据读请求进行解析,得到对应的读请求类型;其中,所述读请求类型包括热表读请求及非热表读请求;
数据处理单元,用于从各读请求类型对应的存储区分别获取对应的热表数据处理结果及非热表数据处理结果;
聚合发送单元,用于按照所述分布式缓存数据库与所述分布式存储数据库之间的数据结构映射关系将所述热表数据处理结果及非热表数据处理结果进行聚合,并发送聚合结果至所述客户端。
12.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现权利要求1至10任一项所述的数据库访问方法的步骤。
13.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现权利要求1至10任一项所述的数据库访问方法的步骤。
14.一种计算机程序产品,包括计算机程序/指令,其特征在于,该计算机程序/指令被处理器执行时实现权利要求1至10任一项所述的数据库访问方法的步骤。
CN202210987864.1A 2022-08-17 2022-08-17 一种数据库访问方法及装置 Pending CN115292415A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210987864.1A CN115292415A (zh) 2022-08-17 2022-08-17 一种数据库访问方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210987864.1A CN115292415A (zh) 2022-08-17 2022-08-17 一种数据库访问方法及装置

Publications (1)

Publication Number Publication Date
CN115292415A true CN115292415A (zh) 2022-11-04

Family

ID=83830374

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210987864.1A Pending CN115292415A (zh) 2022-08-17 2022-08-17 一种数据库访问方法及装置

Country Status (1)

Country Link
CN (1) CN115292415A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115952185A (zh) * 2023-03-10 2023-04-11 布比(北京)网络技术有限公司 一种数据处理方法及装置、设备及存储介质

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115952185A (zh) * 2023-03-10 2023-04-11 布比(北京)网络技术有限公司 一种数据处理方法及装置、设备及存储介质

Similar Documents

Publication Publication Date Title
CN105027535A (zh) 使用rest类api的应用的向后兼容特征级版本控制
WO2021147935A1 (zh) 一种日志回放方法及装置
US11005648B2 (en) Blockchain-type data storage
CN110334156A (zh) 一种数据库同步方法、装置、服务器和存储介质
CN108363741B (zh) 大数据统一接口方法、装置、设备及存储介质
CN112256772A (zh) 数据服务方法、装置以及可读存储介质
CN110413413A (zh) 一种数据写入方法、装置、设备及存储介质
CN115168362A (zh) 数据处理方法、装置、可读介质及电子设备
CN114637703B (zh) 数据访问装置、方法、可读介质和电子设备
CN113806301A (zh) 数据同步方法、装置、服务器及存储介质
CN115292415A (zh) 一种数据库访问方法及装置
CN113326288A (zh) 数据处理方法、装置、电子设备
CN109614089B (zh) 数据访问代码的自动生成方法、装置、设备及存储介质
CN104378396A (zh) 数据管理装置及方法
US8484182B1 (en) Wireless device content searching
CN116319809B (zh) 数据操作的方法和系统
CN111787043A (zh) 数据请求方法和装置
CN113535721B (zh) 一种数据写入方法及装置
CN113971052B (zh) 一种应用运行方法、装置、设备、存储介质及程序产品
CN117422556B (zh) 基于复制状态机的衍生品交易系统、设备和计算机介质
CN111966700B (zh) 信息处理方法、系统、装置以及电子设备
CN117349288A (zh) 基于联机分析处理的数据查询方法、装置和电子设备
CN117667825A (zh) 远程直接内存访问方法、装置、设备和存储介质
CN117520442A (zh) 数据同步方法、装置、计算机程序产品、设备及存储介质
CN113590622A (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