CN112035427B - 基于Redis和HBase的数据查询方法及相关设备 - Google Patents
基于Redis和HBase的数据查询方法及相关设备 Download PDFInfo
- Publication number
- CN112035427B CN112035427B CN202010911126.XA CN202010911126A CN112035427B CN 112035427 B CN112035427 B CN 112035427B CN 202010911126 A CN202010911126 A CN 202010911126A CN 112035427 B CN112035427 B CN 112035427B
- Authority
- CN
- China
- Prior art keywords
- query
- target
- redis
- data
- hbase
- 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.)
- Active
Links
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/10—File systems; File servers
- G06F16/18—File system types
- G06F16/182—Distributed file systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/14—Details of searching files based on file metadata
- G06F16/148—File search processing
-
- 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/2453—Query optimisation
- G06F16/24532—Query optimisation of parallel queries
-
- 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
-
- 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/2457—Query processing with adaptation to user needs
-
- 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)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Library & Information Science (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请涉及大数据技术领域,揭示了一种基于Redis和HBase的数据查询方法及相关设备,其中方法包括:通过Redis根据查询条件进行索引查询得到第一目标行键,根据请求标识将第一目标行键发送给客户端,第一目标行键包括HBase的非主键信息;通过HBase接收客户端发送的目标查询行键将目标查询行键发送给Zookeeper,目标查询行键是根据第一目标行键确定的;通过Zookeeper根据目标查询行键确定目标数据位置,将目标数据位置发送给HBase;通过HDFS根据目标数据位置进行数据查询,得到与目标查询行键对应的目标数据,将目标数据发送给客户端。从而满足了大批量数据的实时高并发查询需求。
Description
技术领域
本申请涉及到大数据领域,特别是涉及到一种基于Redis和HBase的数据查询方法及相关设备。
背景技术
随着技术的发展,越来越多的亿级别及以上的业务数据得到应用,而对数据的及时查询更能体现数据的应用价值。但是传统的数据库和处理技术难以满足亿级别及以上的业务数据实时高并发的查询需求。
发明内容
本申请的主要目的为提供一种基于Redis和HBase的数据查询方法及相关设备,旨在解决传统的数据库和处理技术难以满足亿级别及以上的业务数据实时高并发的查询需求的技术问题。
为了实现上述发明目的,本申请提出一种基于Redis和HBase的数据查询方法,所述方法包括:
通过Redis获取客户端发送的查询请求,所述查询请求中携带查询条件、请求标识;
当所述查询条件是单个条件时,通过所述Redis根据所述查询条件进行索引查询,得到第一目标行键,根据所述请求标识,将所述第一目标行键发送给所述客户端,所述第一目标行键包括HBase的非主键信息;
通过所述HBase接收所述客户端发送的目标查询行键,将所述目标查询行键发送给Zookeeper,所述目标查询行键是根据所述第一目标行键确定的;
通过所述Zookeeper根据所述目标查询行键,确定目标数据位置,将所述目标数据位置发送给所述HBase;
通过HDFS根据所述目标数据位置进行数据查询,得到与所述目标查询行键对应的目标数据,将所述目标数据发送给所述客户端。
进一步的,所述通过所述Redis根据所述查询条件进行索引查询,得到第一目标行键,根据所述请求标识,将所述第一目标行键发送给所述客户端的步骤,包括:
通过所述Redis根据所述查询条件,在所述Redis的热数据集群中进行查找,得到查找结果;
当所述查找结果为成功时,通过所述热数据集群将查找到的数据作为所述第一目标行键,根据所述请求标识,将所述第一目标行键发送给所述客户端;
当所述查找结果为失败时,通过所述热数据集群发送热数据查询失败信号给所述Redis,通过所述Redis根据所述查询条件,在所述Redis的索引集群中进行查找,通过所述索引集群将查找到的数据作为所述第一目标行键,根据所述请求标识,将所述第一目标行键发送给所述客户端。
进一步的,所述通过所述Redis根据所述查询条件进行索引查询,得到第一目标行键,根据所述请求标识,将所述第一目标行键发送给所述客户端的步骤,还包括:
通过所述Redis根据所述查询条件,向所述Redis的热数据集群和所述Redis的索引集群发送查询信号;
通过所述Redis的热数据集群根据所述查询信号进行查询,将查询到的数据作为所述第一目标行键,根据所述请求标识,将所述第一目标行键发送给所述客户端;
通过所述Redis的索引集群根据所述查询信号进行查询,将查询到的数据作为所述第一目标行键,根据所述请求标识,将所述第一目标行键发送给所述客户端。
进一步的,所述通过所述Redis根据所述查询条件进行索引查询,得到第一目标行键的步骤之前,包括:
通过所述Redis对所述HBase的非主键信息建立非主键键值对;
通过所述Redis将所述非主键键值对保存在所述Redis的热数据集群和/或所述Redis的索引集群中。
进一步的,所述通过所述Redis根据所述查询条件进行索引查询,得到第一目标行键的步骤之前,包括:
通过所述Redis对所述HBase的主键信息建立主键键值对;
通过所述Redis将所述主键键值对保存在所述Redis的索引集群中。
进一步的,所述通过Redis获取客户端发送的查询请求,所述查询请求中携带查询条件、请求标识的步骤之后,还包括:
当所述查询条件是多个条件时,通过所述Redis根据所述查询条件,在所述Redis的索引集群中进行查找,通过所述索引集群将查找到的数据作为第二目标行键,根据所述请求标识,将所述第二目标行键发送给所述客户端,所述第二目标行键包括HBase的主键信息,所述目标查询行键是根据所述第二目标行键确定。
进一步的,所述通过Redis获取客户端发送的查询请求的步骤之前,包括:
通过所述HBase调用数据流引擎及Kafka从目标数据源获取数据,将获取的数据作为待补充数据;
通过所述HBase将所述待补充数据存储在所述HDFS中。
本申请还提出了一种基于Redis和HBase的数据查询装置,所述装置包括:
查询需求获取模块,用于通过Redis获取客户端发送的查询请求,所述查询请求中携带查询条件、请求标识;
单个条件时第一目标行键确定模块,用于当所述查询条件是单个条件时,通过所述Redis根据所述查询条件进行索引查询,得到第一目标行键,根据所述请求标识,将所述第一目标行键发送给所述客户端,所述第一目标行键包括HBase的非主键信息;
单个条件目标数据查询模块,用于通过所述HBase接收所述客户端发送的目标查询行键,将所述目标查询行键发送给Zookeeper,所述目标查询行键是根据所述第一目标行键确定的,通过所述Zookeeper根据所述目标查询行键,确定目标数据位置,将所述目标数据位置发送给所述HBase,通过HDFS根据所述目标数据位置进行数据查询,得到与所述目标查询行键对应的目标数据,将所述目标数据发送给所述客户端。
本申请还提出了一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述任一项所述方法的步骤。
本申请还提出了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任一项所述的方法的步骤。
本申请的基于Redis和HBase的数据查询方法及相关设备,当查询条件是单个条件时,首先通过Redis确定第一目标行键,根据第一目标行键确定目标查询行键,然后再用目标查询行键通过HBase及Zookeeper从HDFS中进行数据查询,得到与目标查询行键对应的目标数据,通过HDFS将目标数据发送给客户端,通过Redis作为中间件,弥补了HBase的不足,减轻Zookeeper的查询压力,从而满足了大批量数据的实时高并发查询需求。
附图说明
图1为本申请一实施例的基于Redis和HBase的数据查询方法的流程示意图;
图2为本申请一实施例的基于Redis和HBase的数据查询装置的结构示意框图;
图3为本申请一实施例的计算机设备的结构示意框图。
本申请目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请用到的专业术语如下:
Redis是远程字典服务,是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API(接口)。Redis是一个key-value存储系统。
HBase,也就是Hadoop Database,是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统,利用HBase技术可在廉价PC Server(服务器)上搭建起大规模结构化存储集群。
行键,是指HBase中的行键,英文名是Rowkey。
ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Hadoop和Hbase的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。
HDFS也就是分布式文件系统(Hadoop),是指被设计成适合运行在通用硬件上的分布式文件系统。它和现有的分布式文件系统有很多共同点。但同时,它和其他的分布式文件系统的区别也是很明显的。HDFS是一个高度容错性的系统,适合部署在廉价的机器上。HDFS能提供高吞吐量的数据访问,非常适合大规模数据集上的应用。HDFS放宽了一部分POSIX约束,来实现流式读取文件系统数据的目的。HDFS在最开始是作为Apache Nutch搜索引擎项目的基础架构而开发的。HDFS是Apache Hadoop Core项目的一部分。
Kafka是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者在网站中的所有动作流数据。这种动作(网页浏览,搜索和其他用户的行动)是在现代网络上的许多社会功能的一个关键因素。这些数据通常是由于吞吐量的要求而通过处理日志和日志聚合来解决。对于像Hadoop一样的日志数据和离线分析系统,但又要求实时处理的限制,这是一个可行的解决方案。Kafka的目的是通过Hadoop的并行加载机制来统一线上和离线的消息处理,也是为了通过集群来提供实时的消息。
为了解决传统的数据库和处理技术难以满足亿级别及以上的业务数据实时高并发的查询需求的技术问题,本申请提出了一种基于Redis和HBase的数据查询方法。所述基于Redis和HBase的数据查询方法可以应用于大数据技术领域,还可以应用于人工智能的分布式人工智能技术领域,本申请可用于众多通用或专用的计算机系统环境或配置中。例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器系统、基于微处理器的系统、置顶盒、可编程的消费电子设备、网络PC、小型计算机、大型计算机、包括以上任何系统或设备的分布式计算环境等等。本申请可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本申请,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。本申请通过采用Redis作为中间件,对所述HBase的非主键信息建立二级索引,弥补了HBase的不足,减轻Zookeeper的查询压力,使本申请适用于HBase标签字段比较多和复杂的场景,从而实现了大批量数据的实时高并发查询。
参照图1,本申请实施例中提供一种基于Redis和HBase的数据查询方法,所述方法包括:
S1:通过Redis获取客户端发送的查询请求,所述查询请求中携带查询条件、请求标识;
S2:当所述查询条件是单个条件时,通过所述Redis根据所述查询条件进行索引查询,得到第一目标行键,根据所述请求标识,将所述第一目标行键发送给所述客户端,所述第一目标行键包括HBase的非主键信息;
S3:通过所述HBase接收所述客户端发送的目标查询行键,将所述目标查询行键发送给Zookeeper,所述目标查询行键是根据所述第一目标行键确定的;
S4:通过所述Zookeeper根据所述目标查询行键,确定目标数据位置,将所述目标数据位置发送给所述HBase;
S5:通过HDFS根据所述目标数据位置进行数据查询,得到与所述目标查询行键对应的目标数据,将所述目标数据发送给所述客户端。
本实施例通过当查询条件是单个条件时,首先通过Redis确定第一目标行键,根据第一目标行键确定目标查询行键,然后再用目标查询行键通过HBase及Zookeeper从HDFS中进行数据查询,得到与目标查询行键对应的目标数据,通过HDFS将目标数据发送给客户端,通过Redis作为中间件,弥补了HBase的不足,减轻Zookeeper的查询压力,从而满足了大批量数据的实时高并发查询需求。
对于步骤S1,所述客户端通过查询接口向Redis发送所述查询请求。
所述客户端包括但不限于Java客户端、Web客户端。
所述请求标识可以是名称、ID等唯一标识一个查询请求的标识。
所述查询条件也指表达式,可以由字段引用、运算符和常量组成的字符串。所述查询条件包括单个条件、多个条件。
对于步骤S2,当所述查询条件是单个条件时,通过所述Redis查询,查询得到HBase的非主键信息,将查询到的HBase的非主键信息作为第一目标行键,从而实现将Redis作为中间件,减轻Zookeeper的查询压力。
对于步骤S3,客户端收到所述Redis发送的第一目标行键,根据所述第一目标行键确定目标查询行键,再通过查询接口向所述HBase发送所述目标查询行键;所述HBase将收到的所述目标查询行键发送给所述Zookeeper。
优选的,所述HBase包括:HBase读集群、HBase写集群,通过将读写集群分开,从而优化了HBase集群的性能。
对于步骤S4,所述Zookeeper根据所述目标查询行键进行查询,得到目标数据位置,再将所述目标数据位置发送给所述HBase。
对于步骤S5,在HDFS中找到所述目标数据位置的数据,将找到的数据作为与所述目标查询行键对应的目标数据。然后所述HDFS所在的服务器与所述客户端建立I/O连接,所述HDFS通过所述I/O连接将所述目标数据发送给所述客户端。
在一个实施例中,上述通过所述Redis根据所述查询条件进行索引查询,得到第一目标行键,根据所述请求标识,将所述第一目标行键发送给所述客户端的步骤,包括:
S211:通过所述Redis根据所述查询条件,在所述Redis的热数据集群中进行查找,得到查找结果;
S212:当所述查找结果为成功时,通过所述热数据集群将查找到的数据作为所述第一目标行键,根据所述请求标识,将所述第一目标行键发送给所述客户端;
S213:当所述查找结果为失败时,通过所述热数据集群发送热数据查询失败信号给所述Redis,通过所述Redis根据所述查询条件,在所述Redis的索引集群中进行查找,通过所述索引集群将查找到的数据作为所述第一目标行键,根据所述请求标识,将所述第一目标行键发送给所述客户端。
本实施例通过先在所述Redis的热数据集群进行查找,查找失败再去Redis的索引集群中进行查找,有利于减少同一时间查询的任务量。
对于步骤S211,根据查询条件的表达式,在所述Redis的热数据集群中进行查找,找到符合表达式的数据时确定所述查找结果为成功,否则确定所述查找结果为失败。
所述Redis的热数据集群是指所述Redis的缓存。
所述Redis的索引集群服务包括索引主节点服务和索引节点服务。
对于步骤S212,当所述查找结果为成功时,通过所述热数据集群将查找到的数据作为所述第一目标行键,然后所述热数据集群将所述第一目标行键发送给所述请求标识对应的所述客户端,从而使客户端拿到了第一目标行键,因所述第一目标行键包括HBase的非主键信息,也就是说,客户端拿到了HBase的非主键信息。
对于步骤S213,当所述查找结果为失败时,根据查询条件的表达式,在所述Redis的索引集群中进行查找,找到符合表达式的数据时,将找到的数据作为所述第一目标行键。所述索引集群将所述第一目标行键发送给所述请求标识对应的所述客户端。
优选的,根据查询条件的表达式,在所述Redis的索引集群中进行查找,没有找到符合表达式的数据时,索引集群向所述请求标识对应的所述客户端发送行健查询失败指令。
在一个实施例中,上述通过所述Redis根据所述查询条件进行索引查询,得到第一目标行键,根据所述请求标识,将所述第一目标行键发送给所述客户端的步骤,还包括:
S221:通过所述Redis根据所述查询条件,向所述Redis的热数据集群和所述Redis的索引集群发送查询信号;
S222:通过所述Redis的热数据集群根据所述查询信号进行查询,将查询到的数据作为所述第一目标行键,根据所述请求标识,将所述第一目标行键发送给所述客户端;
S223:通过所述Redis的索引集群根据所述查询信号进行查询,将查询到的数据作为所述第一目标行键,根据所述请求标识,将所述第一目标行键发送给所述客户端。
本实施例通过在所述Redis的热数据集群和在所述Redis的索引集群中都进行查找,有利于缩短查询的时间,提高了查询效率。
对于步骤S221,通过所述Redis根据所述查询条件,向所述Redis的热数据集群和所述Redis的索引集群发送查询信号,所述查询信号中携带有查询条件和查询标识。也就是说,在所述Redis的热数据集群和在所述Redis的索引集群中都要进行查找。
优选的,所述向所述Redis的热数据集群和所述Redis的索引集群发送查询信号的步骤,包括:同时向所述Redis的热数据集群和所述Redis的索引集群发送查询信号。也就是说,向所述Redis的热数据集群和所述Redis的索引集群发送查询信号是同步的。
优选的,所述向所述Redis的热数据集群和所述Redis的索引集群发送查询信号的步骤,还包括:向所述Redis的热数据集群发送查询信号,向所述Redis的索引集群发送查询信号。也就是说,向所述Redis的热数据集群的查询信号和所述Redis的索引集群发送的查询信号不同步。
对于步骤S222,根据查询条件的表达式,在所述Redis的热数据集群中进行查找,找到符合表达式的数据时,将找到的数据作为所述第一目标行键,然后所述热数据集群将所述第一目标行键发送给所述请求标识对应的所述客户端。
对于步骤S223,根据查询条件的表达式,在所述Redis的索引集群中进行查找,找到符合表达式的数据时,将找到的数据作为所述第一目标行键。所述索引集群将所述第一目标行键发送给所述请求标识对应的所述客户端。
在一个实施例中,上述通过所述Redis根据所述查询条件进行索引查询,得到第一目标行键的步骤之前,包括:
S011:通过所述Redis对所述HBase的非主键信息建立非主键键值对;
S012:通过所述Redis将所述非主键键值对保存在所述Redis的热数据集群和/或所述Redis的索引集群中。
本实施例通过对HBase的非主键信息建立非主键键值对,再将非主键键值对保存在所述Redis的热数据集群和/或所述Redis的索引集群中,实现了对非主键字段的管理,对所述HBase的非主键信息建立二级索引,弥补了HBase的不足,减轻Zookeeper的查询压力,使本申请适用于HBase标签字段比较多和复杂的场景,从而实现了大批量数据的实时高并发查询。
对于步骤S011,所述非主键键值对包括键和值,所述非主键键值对的键中存值的编号,所述非主键键值对的值存放数据。
优选的,所述非主键键值对的值中存放所述HBase的非主键信息。
对于步骤S012,通过所述Redis将所述非主键键值对保存在所述Redis的热数据集群中,或者通过所述Redis将所述非主键键值对保存在所述Redis的索引集群中,或者通过所述Redis将所述非主键键值对保存在所述Redis的热数据集群和所述Redis的索引集群中。
优选的,获取所述HBase的非主键信息的使用频率;将所述使用频率高于预设频率的值,作为目标频率;将所述目标频率对应的所述HBase的非主键信息作为目标非主键信息;将所述目标非主键信息对应的非主键键值对存放在所述Redis的热数据集群,从而有利于提高查询第一目标Rowkey的效率。
在一个实施例中,上述通过所述Redis根据所述查询条件进行索引查询,得到第一目标行键的步骤之前,包括:
S021:通过所述Redis对所述HBase的主键信息建立主键键值对;
S022:通过所述Redis将所述主键键值对保存在所述Redis的索引集群中。
本实施例通过对HBase的主键信息建立主键键值对,再将主键键值对保存在所述Redis的索引集群中,对所述HBase的主键信息建立二级索引,进一步弥补了HBase的不足,进一步减轻Zookeeper的查询压力,使本申请适用于HBase标签字段比较多和复杂的场景,从而实现了大批量数据的实时高并发查询。
对于步骤S021,所述主键键值对包括键和值,所述主键键值对的键中存值的编号,所述主键键值对的值存放数据。
优选的,所述主键键值对的值中存放所述HBase的主键信息。
在一个实施例中,上述通过Redis获取客户端发送的查询请求,所述查询请求中携带查询条件、请求标识的步骤之后,还包括:
当所述查询条件是多个条件时,通过所述Redis根据所述查询条件,在所述Redis的索引集群中进行查找,通过所述索引集群将查找到的数据作为第二目标行键,根据所述请求标识,将所述第二目标行键发送给所述客户端,所述第二目标行键包括HBase的主键信息,所述目标查询行键是根据所述第二目标行键确定。
本实施例实现了在所述查询条件是多个条件时,根据多个条件在所述Redis的索引集群中进行查找,将查询到的数据作为所述第二目标行键,因所述第二目标行键包括HBase的主键信息,也就是说所述客户端拿到了HBase的主键信息,从而充分利用索引集群的索引能力,在多个条件查询时,有利于提高确定所述第二目标行键的效率。
在一个实施例中,上述通过Redis获取客户端发送的查询请求的步骤之前,包括:
S031:通过所述HBase调用数据流引擎及Kafka从目标数据源获取数据,将获取的数据作为待补充数据;
S032:通过所述HBase将所述待补充数据存储在所述HDFS中。
本实施例通过调用数据流引擎及Kafka从目标数据源获取数据,从而有利于及时向所述HDFS补充数据。
对于步骤S031,所述数据流引擎包括但不限于Sparkstreaming、FlINK。
参照图2,本申请还提出了一种基于Redis和HBase的数据查询装置,所述装置包括:
查询需求获取模块100,用于通过Redis获取客户端发送的查询请求,所述查询请求中携带查询条件、请求标识;
单个条件时第一目标行键确定模块200,用于当所述查询条件是单个条件时,通过所述Redis根据所述查询条件进行索引查询,得到第一目标行键,根据所述请求标识,将所述第一目标行键发送给所述客户端,所述第一目标行键包括HBase的非主键信息;
单个条件目标数据查询模块300,用于通过所述HBase接收所述客户端发送的目标查询行键,将所述目标查询行键发送给Zookeeper,所述目标查询行键是根据所述第一目标行键确定的,通过所述Zookeeper根据所述目标查询行键,确定目标数据位置,将所述目标数据位置发送给所述HBase,通过HDFS根据所述目标数据位置进行数据查询,得到与所述目标查询行键对应的目标数据,将所述目标数据发送给所述客户端。
本实施例通过当查询条件是单个条件时,首先通过Redis确定第一目标行键,根据第一目标行键确定目标查询行键,然后再用目标查询行键通过HBase及Zookeeper从HDFS中进行数据查询,得到与目标查询行键对应的目标数据,通过HDFS将目标数据发送给客户端,通过Redis作为中间件,弥补了HBase的不足,减轻Zookeeper的查询压力,从而满足了大批量数据的实时高并发查询需求。
在一个实施例中,所述单个条件时第一目标行键确定模块200包括:单线确定第一目标行键子模块:
所述单线确定第一目标行键子模块,用于通过所述Redis根据所述查询条件,在所述Redis的热数据集群中进行查找,得到查找结果,当所述查找结果为成功时,通过所述热数据集群将查找到的数据作为所述第一目标行键,根据所述请求标识,将所述第一目标行键发送给所述客户端,当所述查找结果为失败时,通过所述热数据集群发送热数据查询失败信号给所述Redis,通过所述Redis根据所述查询条件,在所述Redis的索引集群中进行查找,通过所述索引集群将查找到的数据作为所述第一目标行键,根据所述请求标识,将所述第一目标行键发送给所述客户端。
在一个实施例中,所述单个条件时第一目标行键确定模块200包括:双线确定第一目标行键子模块:
所述双线确定第一目标行键子模块,用于通过所述Redis根据所述查询条件,向所述Redis的热数据集群和所述Redis的索引集群发送查询信号,通过所述Redis的热数据集群根据所述查询信号进行查询,将查询到的数据作为所述第一目标行键,根据所述请求标识,将所述第一目标行键发送给所述客户端,通过所述Redis的索引集群根据所述查询信号进行查询,将查询到的数据作为所述第一目标行键,根据所述请求标识,将所述第一目标行键发送给所述客户端。
在一个实施例中,所述装置还包括:非主键键值对确定模块;
所述非主键键值对确定模块,用于通过所述Redis对所述HBase的非主键信息建立非主键键值对,通过所述Redis将所述非主键键值对保存在所述Redis的热数据集群和/或所述Redis的索引集群中。
在一个实施例中,所述装置还包括:主键键值对确定模块;
所述主键键值对确定模块,用于通过所述Redis对所述HBase的主键信息建立主键键值对,通过所述Redis将所述主键键值对保存在所述Redis的索引集群中。
在一个实施例中,所述装置还包括:多个条件时第一目标行键确定模块;
所述多个条件时第一目标行键确定模块,用于当所述查询条件是多个条件时,通过所述Redis根据所述查询条件,在所述Redis的索引集群中进行查找,通过所述索引集群将查找到的数据作为第二目标行键,根据所述请求标识,将所述第二目标行键发送给所述客户端,所述第二目标行键包括HBase的主键信息,所述目标查询行键是根据所述第二目标行键确定。
在一个实施例中,所述装置还包括:数据补充模块;
所述数据补充模块,用于通过所述HBase调用数据流引擎及Kafka从目标数据源获取数据,将获取的数据作为待补充数据,通过所述HBase将所述待补充数据存储在所述HDFS中。
参照图3,本申请实施例中还提供一种计算机设备,该计算机设备可以是服务器,其内部结构可以如图3所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设计的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于储存基于Redis和HBase的数据查询方法等数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种基于Redis和HBase的数据查询方法。所述基于Redis和HBase的数据查询方法,包括:通过Redis获取客户端发送的查询请求,所述查询请求中携带查询条件、请求标识;当所述查询条件是单个条件时,通过所述Redis根据所述查询条件进行索引查询,得到第一目标行键,根据所述请求标识,将所述第一目标行键发送给所述客户端,所述第一目标行键包括HBase的非主键信息;通过所述HBase接收所述客户端发送的目标查询行键,将所述目标查询行键发送给Zookeeper,所述目标查询行键是根据所述第一目标行键确定的;通过所述Zookeeper根据所述目标查询行键,确定目标数据位置,将所述目标数据位置发送给所述HBase;通过HDFS根据所述目标数据位置进行数据查询,得到与所述目标查询行键对应的目标数据,将所述目标数据发送给所述客户端。
本实施例通过当查询条件是单个条件时,首先通过Redis确定第一目标行键,根据第一目标行键确定目标查询行键,然后再用目标查询行键通过HBase及Zookeeper从HDFS中进行数据查询,得到与目标查询行键对应的目标数据,通过HDFS将目标数据发送给客户端,通过Redis作为中间件,弥补了HBase的不足,减轻Zookeeper的查询压力,从而满足了大批量数据的实时高并发查询需求。
本申请一实施例还提供一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现一种基于Redis和HBase的数据查询方法,包括步骤:通过Redis获取客户端发送的查询请求,所述查询请求中携带查询条件、请求标识;当所述查询条件是单个条件时,通过所述Redis根据所述查询条件进行索引查询,得到第一目标行键,根据所述请求标识,将所述第一目标行键发送给所述客户端,所述第一目标行键包括HBase的非主键信息;通过所述HBase接收所述客户端发送的目标查询行键,将所述目标查询行键发送给Zookeeper,所述目标查询行键是根据所述第一目标行键确定的;通过所述Zookeeper根据所述目标查询行键,确定目标数据位置,将所述目标数据位置发送给所述HBase;通过HDFS根据所述目标数据位置进行数据查询,得到与所述目标查询行键对应的目标数据,将所述目标数据发送给所述客户端。
上述执行的基于Redis和HBase的数据查询方法,通过当查询条件是单个条件时,首先通过Redis确定第一目标行键,根据第一目标行键确定目标查询行键,然后再用目标查询行键通过HBase及Zookeeper从HDFS中进行数据查询,得到与目标查询行键对应的目标数据,通过HDFS将目标数据发送给客户端,通过Redis作为中间件,弥补了HBase的不足,减轻Zookeeper的查询压力,从而满足了大批量数据的实时高并发查询需求。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的和实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可以包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双速据率SDRAM(SSRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、装置、物品或者方法不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、装置、物品或者方法所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、装置、物品或者方法中还存在另外的相同要素。
以上所述仅为本申请的优选实施例,并非因此限制本申请的专利范围,凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本申请的专利保护范围内。
Claims (10)
1.一种基于Redis和HBase的数据查询方法,其特征在于,所述方法包括:
通过Redis获取客户端发送的查询请求,所述查询请求中携带查询条件、请求标识;
当所述查询条件是单个条件时,通过所述Redis根据所述查询条件进行索引查询,得到第一目标行键,根据所述请求标识,将所述第一目标行键发送给所述客户端,所述第一目标行键包括HBase的非主键信息;
通过所述HBase接收所述客户端发送的目标查询行键,将所述目标查询行键发送给Zookeeper,所述目标查询行键是根据所述第一目标行键确定的;
通过所述Zookeeper根据所述目标查询行键,确定目标数据位置,将所述目标数据位置发送给所述HBase;
通过HDFS根据所述目标数据位置进行数据查询,得到与所述目标查询行键对应的目标数据,将所述目标数据发送给所述客户端;
所述HBase包括:HBase读集群、HBase写集群,通过将所述HBase读集群和所述HBase写集群分开优化HBase集群的性能。
2.根据权利要求1所述的基于Redis和HBase的数据查询方法,其特征在于,所述通过所述Redis根据所述查询条件进行索引查询,得到第一目标行键,根据所述请求标识,将所述第一目标行键发送给所述客户端的步骤,包括:
通过所述Redis根据所述查询条件,在所述Redis的热数据集群中进行查找,得到查找结果;
当所述查找结果为成功时,通过所述热数据集群将查找到的数据作为所述第一目标行键,根据所述请求标识,将所述第一目标行键发送给所述客户端;
当所述查找结果为失败时,通过所述热数据集群发送热数据查询失败信号给所述Redis,通过所述Redis根据所述查询条件,在所述Redis的索引集群中进行查找,通过所述索引集群将查找到的数据作为所述第一目标行键,根据所述请求标识,将所述第一目标行键发送给所述客户端。
3.根据权利要求1所述的基于Redis和HBase的数据查询方法,其特征在于,所述通过所述Redis根据所述查询条件进行索引查询,得到第一目标行键,根据所述请求标识,将所述第一目标行键发送给所述客户端的步骤,还包括:
通过所述Redis根据所述查询条件,向所述Redis的热数据集群和所述Redis的索引集群发送查询信号;
通过所述Redis的热数据集群根据所述查询信号进行查询,将查询到的数据作为所述第一目标行键,根据所述请求标识,将所述第一目标行键发送给所述客户端;
通过所述Redis的索引集群根据所述查询信号进行查询,将查询到的数据作为所述第一目标行键,根据所述请求标识,将所述第一目标行键发送给所述客户端。
4.根据权利要求1所述的基于Redis和HBase的数据查询方法,其特征在于,所述通过所述Redis根据所述查询条件进行索引查询,得到第一目标行键的步骤之前,包括:
通过所述Redis对所述HBase的非主键信息建立非主键键值对;
通过所述Redis将所述非主键键值对保存在所述Redis的热数据集群和/或所述Redis的索引集群中。
5.根据权利要求1所述的基于Redis和HBase的数据查询方法,其特征在于,所述通过所述Redis根据所述查询条件进行索引查询,得到第一目标行键的步骤之前,包括:
通过所述Redis对所述HBase的主键信息建立主键键值对;
通过所述Redis将所述主键键值对保存在所述Redis的索引集群中。
6.根据权利要求1所述的基于Redis和HBase的数据查询方法,其特征在于,所述通过Redis获取客户端发送的查询请求,所述查询请求中携带查询条件、请求标识的步骤之后,还包括:
当所述查询条件是多个条件时,通过所述Redis根据所述查询条件,在所述Redis的索引集群中进行查找,通过所述索引集群将查找到的数据作为第二目标行键,根据所述请求标识,将所述第二目标行键发送给所述客户端,所述第二目标行键包括HBase的主键信息,所述目标查询行键是根据所述第二目标行键确定。
7.根据权利要求1所述的基于Redis和HBase的数据查询方法,其特征在于,所述通过Redis获取客户端发送的查询请求的步骤之前,包括:
通过所述HBase调用数据流引擎及Kafka从目标数据源获取数据,将获取的数据作为待补充数据;
通过所述HBase将所述待补充数据存储在所述HDFS中。
8.一种基于Redis和HBase的数据查询装置,其特征在于,所述装置包括:
查询需求获取模块,用于通过Redis获取客户端发送的查询请求,所述查询请求中携带查询条件、请求标识;
单个条件时第一目标行键确定模块,用于当所述查询条件是单个条件时,通过所述Redis根据所述查询条件进行索引查询,得到第一目标行键,根据所述请求标识,将所述第一目标行键发送给所述客户端,所述第一目标行键包括HBase的非主键信息;
单个条件目标数据查询模块,用于通过所述HBase接收所述客户端发送的目标查询行键,将所述目标查询行键发送给Zookeeper,所述目标查询行键是根据所述第一目标行键确定的,通过所述Zookeeper根据所述目标查询行键,确定目标数据位置,将所述目标数据位置发送给所述HBase,通过HDFS根据所述目标数据位置进行数据查询,得到与所述目标查询行键对应的目标数据,将所述目标数据发送给所述客户端;
所述HBase包括:HBase读集群、HBase写集群,通过将所述HBase读集群和所述HBase写集群分开优化HBase集群的性能。
9.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7中任一项所述方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010911126.XA CN112035427B (zh) | 2020-09-02 | 2020-09-02 | 基于Redis和HBase的数据查询方法及相关设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010911126.XA CN112035427B (zh) | 2020-09-02 | 2020-09-02 | 基于Redis和HBase的数据查询方法及相关设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112035427A CN112035427A (zh) | 2020-12-04 |
CN112035427B true CN112035427B (zh) | 2023-03-28 |
Family
ID=73591246
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010911126.XA Active CN112035427B (zh) | 2020-09-02 | 2020-09-02 | 基于Redis和HBase的数据查询方法及相关设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112035427B (zh) |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105159985A (zh) * | 2015-08-31 | 2015-12-16 | 努比亚技术有限公司 | 基于redis集群的数据查询装置及方法 |
CN109947668B (zh) * | 2017-12-21 | 2021-06-29 | 北京京东尚科信息技术有限公司 | 存储数据的方法和装置 |
CN109284351A (zh) * | 2018-08-14 | 2019-01-29 | 青海大学 | 一种基于HBase数据库的数据查询方法 |
US10783270B2 (en) * | 2018-08-30 | 2020-09-22 | Netskope, Inc. | Methods and systems for securing and retrieving sensitive data using indexable databases |
CN110909025A (zh) * | 2018-09-17 | 2020-03-24 | 深圳市优必选科技有限公司 | 数据库的查询方法、查询装置及终端 |
CN109871367A (zh) * | 2019-02-28 | 2019-06-11 | 江苏实达迪美数据处理有限公司 | 一种基于Redis和HBase的分布式冷热数据分离方法 |
CN111459945B (zh) * | 2020-04-07 | 2023-11-10 | 中科曙光(南京)计算技术有限公司 | 一种基于HBase的分层式索引查询方法 |
-
2020
- 2020-09-02 CN CN202010911126.XA patent/CN112035427B/zh active Active
Non-Patent Citations (1)
Title |
---|
崔丹等.基于Redis实现HBase二级索引的方法.软件.2016,第37卷(第11期),64-67. * |
Also Published As
Publication number | Publication date |
---|---|
CN112035427A (zh) | 2020-12-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111857880B (zh) | 对话配置项信息管理方法、装置、设备及存储介质 | |
US20180365254A1 (en) | Method and apparatus for processing information flow data | |
CN112153170B (zh) | 访问服务器的方法、装置、设备及存储介质 | |
CN107870982B (zh) | 数据处理方法、系统和计算机可读存储介质 | |
CN110581893B (zh) | 数据传输方法、装置、路由设备、服务器及存储介质 | |
CN111949389B (zh) | 基于Slurm的信息采集方法和装置、服务器、计算机可读存储介质 | |
CN111611009A (zh) | 数据库脚本管理方法、装置、计算机设备及存储介质 | |
US11681606B2 (en) | Automatic configuration of logging infrastructure for software deployments using source code | |
CN112100152A (zh) | 业务数据处理方法、系统、服务器和可读存储介质 | |
CN112559526A (zh) | 数据表导出方法、装置、计算机设备及存储介质 | |
CN115329170A (zh) | 网页抓取方法、装置、设备以及存储介质 | |
CN112035427B (zh) | 基于Redis和HBase的数据查询方法及相关设备 | |
CN111949720B (zh) | 基于大数据和人工智能的数据分析方法及云端数据服务器 | |
CN114648027B (zh) | 一种文本信息的处理方法、装置、计算机设备及存储介质 | |
CN111752838A (zh) | 问题排查方法、装置、服务器及存储介质 | |
CA3180833A1 (en) | Flink sql statement verification method and device, computer equipment and storage medium | |
CN114860682A (zh) | 一种对dns网络域名数据快速匹配的方法及装置 | |
CN110287172B (zh) | 一种格式化HBase数据的方法 | |
CN111078975B (zh) | 一种多节点增量式数据采集系统及采集方法 | |
CN105893521A (zh) | 一种读写分离的HBase入库方法 | |
CN114500246B (zh) | 网络连接状态监控方法、装置、计算机设备及存储介质 | |
CN110309133B (zh) | 批量数据的处理方法和装置 | |
CN112231410B (zh) | 适用于大数据的数据处理方法、装置、设备及介质 | |
CN112784119B (zh) | 一种数据查询及同步优化方法及装置 | |
CN114185625A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |