CN112395308A - 一种基于hdfs数据库的数据查询方法 - Google Patents

一种基于hdfs数据库的数据查询方法 Download PDF

Info

Publication number
CN112395308A
CN112395308A CN202011226066.4A CN202011226066A CN112395308A CN 112395308 A CN112395308 A CN 112395308A CN 202011226066 A CN202011226066 A CN 202011226066A CN 112395308 A CN112395308 A CN 112395308A
Authority
CN
China
Prior art keywords
query
hdfs
database
sub
data
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
CN202011226066.4A
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.)
Shenzhen Zhongbo Kechuang Information Co ltd
Original Assignee
Shenzhen Zhongbo Kechuang Information Co ltd
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 Shenzhen Zhongbo Kechuang Information Co ltd filed Critical Shenzhen Zhongbo Kechuang Information Co ltd
Priority to CN202011226066.4A priority Critical patent/CN112395308A/zh
Publication of CN112395308A publication Critical patent/CN112395308A/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/24Querying
    • G06F16/245Query processing
    • G06F16/2453Query optimisation
    • G06F16/24532Query optimisation of parallel queries
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/182Distributed file systems
    • 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

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

Abstract

本发明提供了一种基于HDFS数据库的数据查询方法,用以解决现有技术中数据查询效率低、速度慢的问题。所述基于HDFS数据库的数据查询方法,用户首先通过用户接口接入HDFS数据库***,在获得权限后,向调度器发送查询请求;调度器根据元数据服务器中的元数据或查询摘要对接收到的查询请求进行拆分,将拆分后的子任务下发至子引擎,被调用的子引擎在当前HDFS中并行执行查询片段,完成查询任务。本发明将底层HDFS分布式基础架构与结构化数据处理相结合,在对请求任务拆分的基础上,完成查询任务,并将整合后的查询结果反馈给客户端,提高了查询效率,也提高了查询的准确性,同时保证了***的可扩展性。

Description

一种基于HDFS数据库的数据查询方法
技术领域
本发明属于数据库管理领域,具体涉及一种基于HDFS数据库的数据查询方法。
背景技术
Hadoop分布式文件***(Hadoop Distribution Files System,HDFS)通常应用于大规模分布式关系型数据库***,***内部容纳海量业务数据,同时包含了大量用于数据存储、组织和运算分析的处理节点。当客户端对数据库中的数据进行查询时,数据库管理***通常采用解释的方式对用户查询进行反馈,解析并优化查询后,创建查询计划,并执行查询。当面对海量数据时,客户端的查询量也会成级数上升,若仍采用原来的查询方式,解释性执行查询过程会引入过多执行开销,增加调度节点负担,降低查询速度及准确性,无法满足用户需求。
发明内容
鉴于现有技术中的上述缺陷或不足,本发明旨在提供一种基于HDFS数据库的数据查询方法,通过语法集合与子集实现调度器和查询子引擎的配合,调度器通过语法集合对查询子引擎进行任务分配,从而完成查询任务的拆分,提高查询任务的并行量,满足海量数据下的查询需求。
为了实现上述目的,本发明实施例采用如下技术方案:
本发明实施例提供了一种基于HDFS数据库的数据查询方法,调度器接收到查询请求后,根据元数据服务器中的元数据或查询摘要进行请求任务拆分,将拆分的子任务下发至运行于HDFS子节点的子引擎。
上述方案中,所述数据查询方法包括如下步骤:
步骤S1,用户通过用户接口接入HDFS数据库***;
步骤S2,接入用户通过SQL查询语言向调度器发送查询请求;
步骤S3,调度器根据元数据服务器中的元数据或查询摘要,对所接收的SQL查询语言进行语法翻译及分解,将一个查询任务拆分为若干子任务,并将子任务下发至相应的子引擎,同时保存拆分策略;
步骤S4,被调度器调度的子引擎接收到子任务后,在当前HDFS数据库中获取查询所需的源数据,再根据语法子集在源数据中执行查询操作,并将与子任务对应的查询结果发送给所述调度器;
步骤S5,调度器根据查询任务的拆分策略,将各个子引擎反馈的查询结果进行整合,生成最终查询结果,发送给客户端,并在元数据服务器中记录查询摘要。
上述方案中,步骤S1中的用户接口为与API连接的JDBC/ODBC应用程序接口或Shell命令行接口。
上述方案中,所述用户接入HDFS数据库***,包括:对用户进行用户身份或程序员身份的认证,并根据认证结果分配相应的接入权限。
上述方案中,所述步骤S2中,将一个查询任务拆分为若干子任务,将SQL查询请求与元数据中的元信息进行对应后,将查询请求分解为基于相应元信息的子任务,子任务与相应的子节点对应,且保持数据资源与计算资源的分布一致性。
上述方案中,元数据服务器中记录调度器的查询摘要,当调度器再次接受到相同的查询任务时,直接调用与查询摘要匹配的拆分策略,对查询任务进行拆分。
上述方案中,所述调度器通过状态监控进程对子引擎的健康状态进行跟踪,对查询过程进行监控;当某个子节点由于硬件故障、网络错误、软件失效导致掉线,状态监控进程会通知所有节点,确保后续的查询能够规避这个不可达的节点。
上述方案中,被调用的子引擎,并行执行不同的查询片段,完成整个查询过程。
上述方案中,HDFS数据库中的HDFS子节点进行扩展时,基于HDFS本身的协议进行子引擎的扩展,在提高数据库本身容量的同时,相应提高***的查询能力。
上述方案中,所述基于HDFS数据库由HDFS提供的冗余机制来应对单节点的软硬件以及网络故障。
本发明具有如下有益效果:
本发明实施例所提供的基于HDFS数据库的数据查询方法,用户首先通过用户接口接入HDFS数据库***,在获得权限后,向调度器发送查询请求;调度器根据元数据服务器中的元数据或查询摘要对接收到的查询请求进行拆分,将拆分后的子任务下发至子引擎,被调用的子引擎在当前HDFS中并行执行查询片段,完成查询任务。本发明将底层HDFS分布式基础架构与结构化数据处理相结合,在对请求任务拆分的基础上,完成查询任务,并将整合后的查询结果反馈给客户端,提高了查询效率,同时也提高了查询的准确性,同时保证了***的可扩展性。
附图说明
通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:
图1示出了本发明实施方式提供的基于HDFS数据库的数据查询方法原理图;
图2示出了发发明实施方式提供的基于HDFS数据库的数据查询方法时序图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅用于解释相关发明,而非对该发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与发明相关的部分。
需要说明的是,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本发明。
本发明实施方式提供了一种基于HDFS数据库的数据查询方法。如图2所示,所述HDFS数据库中,资源数据保存于每一个作为子节点的HDFS中,每个HDFS中都运行有查询子引擎,子引擎中保存有与当前HDFS中数据对应的检索语法子集;所有子引擎与调度器连接,调度器与元数据服务器连接,同时具有用户接口,所述调度器中保存语法集合表,接受来自于用户接口的查询请求后,根据元数据服务器中的元数据将查询请求翻译为检索语法,再根据检索语法集合将查询请求分解为若干检索语法并下发至相应的子引擎中,子引擎根据所收到的检索语法开启查询任务,在当前HDFS中进行检索,并将查询结果反馈给所述调度器,调度器对所有子引擎反馈的结果进行整合,最后通过用户接口反馈给客户端。
通过检索语法集合与子集,将查询请求拆分为若干子任务,不需要针对数据表内的数据进行细致的***和更新操作,根据元数据将具体的查询任务分配给子引擎,在底层HDFS数据中并行完查询任务,最后再对反馈结果进行整合,兼顾了海量结构化数据处理和底层HDFS基础架构,提高了查询准确性和速度,提升了用户体验。
图2是本发明实施方式提供的基于HDFS数据库的数据查询方法。如图2所示,所述数据查询方法包括如下步骤:
步骤S1,用户通过用户接口接入HDFS数据库***。
本步骤中,所述用户接口为与API连接的JDBC/ODBC应用程序接口或Shell命令行接口。通过上述接口连接API,一方面不仅用户可以通过API调用HDFS数据库中的数据,另一方面程序员也可以直接通过上述接口调用数据库中的数据进行应用的二次开发。
优选地,本步骤中用户接入HDFS数据库***,包括:对用户进行身份认证。这里的身份认证,包括用户身份和程序员身份,在此基础上,对不同身份再进行适当的分级,对不同级别分配相应的权限。
步骤S2,接入用户通过SQL查询语言向调度器发送查询请求。
本步骤中,所述SQL查询语言所使用的语法,是调度器中语法集合的子集。
步骤S3,调度器根据元数据服务器中的元数据或查询摘要,对所接收的SQL查询语言进行语法翻译及分解,将一个查询任务拆分为若干子任务,并将子任务下发至相应的子引擎,同时保存拆分策略。
本步骤中,元数据服务器中保存了子节点中子引擎及相应HDFS数据库中的元信息,将SQL查询请求与元数据中的元信息进行对应后,将查询请求分解为基于相应元信息的子任务,子任务与相应的子节点对应,在任务拆分的前提下,实现数据资源与计算资源的分布一致性,从而实现高效的数据查询。所述分配到相应子节点的子任务,与当前节点的子引擎和HDFS数据库中的信息是对应的,这里的对应,通过调度器中的检索语法集合与子引擎中的语法子集进行对应,同时将SQL查询语言与元信息的映射后,再与HDFS数据库中的资源数据或业务数据进行对应。
所述元数据服务器,保存了与***有关的元数据信息,例如,哪些数据库是可用的以及这些数据库的具体表结构如何;当HDFS数据为中的资源信息进行更新时,同时对元数据服务器中的表结构内容进行相应更新。同时,元数据服务器中保存调度器的查询记录摘要,当调度器再次接受到相同的查询任务时,直接调用与查询摘要匹配的拆分策略,对查询任务进行拆分。
优选地,所述调度器还对子引擎的健康状态进行跟踪,对查询过程进行监控;当某个子节点由于硬件故障、网络错误、软件失效或者其他原因导致掉线,状态监控进程会通知所有节点,以确保后续的查询能够规避这个不可达的节点。由于状态监控部件的任务是当出现问题时提供帮助,所以在一次正常的查询操作中并不占据主要地位。如果这个进程没有正常运行或者变得不得达之后,其他的节点依然可以正常的执行查询任务;当***状态监控进程不可达时,若有节点失效,***只是变得不那么强壮了,但不影响正常任务的执行。当***状态监控进程重新上线时,它将重新建立起和其他节点的联系,并恢复它的监控职能。
步骤S4,被调度器调度的子引擎接收到子任务后,在当前HDFS数据库中获取查询所需的源数据,再根据语法子集在源数据中执行查询操作,并将与子任务对应的查询结果发送给所述调度器。
被调用的子引擎,运行在每个HDFS子节点上,当一个查询请求拆分后,会有若干子引擎被调用,并行执行不同的查询片段,完成整个查询过程。同时,HDFS数据库中的子节点与运行的子引擎,由于HDFS本身的分布式存储,具有相应可扩展性;当数据库进行扩展时,基于HDFS本身的协议进行子引擎的扩展,在提高数据库本身容量的同时,相应提高***的查询能力。
本实施方式的数据查询方法,是基于HDFS数据库的,由HDFS提供的冗余机制来应对单节点的软硬件以及网络故障。HDFS数据库***内的表数据被存储成HDFS的数据文件,使用HDFS的文件格式以及压缩策略。当数据文件要添加到新表格中时,HDFS中的数据文件与***中的表格名称之间的映射关系由***本身统一管理。
步骤S5,调度器根据查询任务的拆分策略,将各个子引擎反馈的查询结果进行整合,生成最终查询结果,发送给客户端,并在元数据中记录查询摘要。
由以上技术方案可以看出,本实施方式提供的基于HDFS数据库的数据查询方法,用户首先通过用户接口接入HDFS数据库***,在获得权限后,向调度器发送查询请求;调度器根据元数据服务器中的元数据或查询摘要对接收到的查询请求进行拆分,将拆分后的子任务下发至子引擎,被调用的子引擎在当前HDFS中并行执行查询片段,完成查询任务。本发明将底层HDFS分布式基础架构与结构化数据处理相结合,在对请求任务拆分的基础上,完成查询任务,并将整合后的查询结果反馈给客户端,提高了查询效率,同时也提高了查询的准确性,同时保证了***的可扩展性。
以上描述仅为本发明的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本发明中所涉及的发明范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离所述发明构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本发明中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。

Claims (10)

1.一种基于HDFS数据库的数据查询方法,其特征在于,调度器接收到查询请求后,根据元数据服务器中的元数据或查询摘要进行请求任务拆分,将拆分的子任务下发至运行于HDFS子节点的子引擎。
2.根据权利要求1所述的基于HDFS数据库的数据查询方法,其特征在于,所述数据查询方法包括如下步骤:
步骤S1,用户通过用户接口接入HDFS数据库***;
步骤S2,接入用户通过SQL查询语言向调度器发送查询请求;
步骤S3,调度器根据元数据服务器中的元数据或查询摘要,对所接收的SQL查询语言进行语法翻译及分解,将一个查询任务拆分为若干子任务,并将子任务下发至相应的子引擎,同时保存拆分策略;
步骤S4,被调度器调度的子引擎接收到子任务后,在当前HDFS数据库中获取查询所需的源数据,再根据语法子集在源数据中执行查询操作,并将与子任务对应的查询结果发送给所述调度器;
步骤S5,调度器根据查询任务的拆分策略,将各个子引擎反馈的查询结果进行整合,生成最终查询结果,发送给客户端,并在元数据服务器中记录查询摘要。
3.根据权利要求2所述的基于HDFS数据库的数据查询方法,其特征在于,步骤S1中的用户接口为与API连接的JDBC/ODBC应用程序接口或Shell命令行接口。
4.根据权利要求3所述的基于HDFS数据库的数据查询方法,其特征在于,所述用户接入HDFS数据库***,包括:对用户进行用户身份或程序员身份的认证,并根据认证结果分配相应的接入权限。
5.根据权利要求2所述的基于HDFS数据库的数据查询方法,其特征在于,所述步骤S2中,将一个查询任务拆分为若干子任务,将SQL查询请求与元数据中的元信息进行对应后,将查询请求分解为基于相应元信息的子任务,子任务与相应的子节点对应,且保持数据资源与计算资源的分布一致性。
6.根据权利要求2所述的基于HDFS数据库的数据查询方法,其特征在于,元数据服务器中记录调度器的查询摘要,当调度器再次接受到相同的查询任务时,直接调用与查询摘要匹配的拆分策略,对查询任务进行拆分。
7.根据权利要求2所述的基于HDFS数据库的数据查询方法,其特征在于,所述调度器通过状态监控进程对子引擎的健康状态进行跟踪,对查询过程进行监控;当某个子节点由于硬件故障、网络错误、软件失效导致掉线,状态监控进程会通知所有节点,确保后续的查询能够规避这个不可达的节点。
8.根据权利要求2所述的基于HDFS数据库的数据查询方法,其特征在于,被调用的子引擎,并行执行不同的查询片段,完成整个查询过程。
9.根据权利要求2所述的基于HDFS数据库的数据查询方法,其特征在于,HDFS数据库中的HDFS子节点进行扩展时,基于HDFS本身的协议进行子引擎的扩展,在提高数据库本身容量的同时,相应提高***的查询能力。
10.根据权利要求2所述的基于HDFS数据库的数据查询方法,其特征在于,所述基于HDFS数据库由HDFS提供的冗余机制来应对单节点的软硬件以及网络故障。
CN202011226066.4A 2020-11-05 2020-11-05 一种基于hdfs数据库的数据查询方法 Pending CN112395308A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011226066.4A CN112395308A (zh) 2020-11-05 2020-11-05 一种基于hdfs数据库的数据查询方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011226066.4A CN112395308A (zh) 2020-11-05 2020-11-05 一种基于hdfs数据库的数据查询方法

Publications (1)

Publication Number Publication Date
CN112395308A true CN112395308A (zh) 2021-02-23

Family

ID=74598206

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011226066.4A Pending CN112395308A (zh) 2020-11-05 2020-11-05 一种基于hdfs数据库的数据查询方法

Country Status (1)

Country Link
CN (1) CN112395308A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113886458A (zh) * 2021-09-23 2022-01-04 浙江至元数据科技有限公司 一种基于任务聚合的分布式隐匿查询方法及***
CN114610746A (zh) * 2022-03-15 2022-06-10 云粒智慧科技有限公司 一种多关系型数据引擎的sql合并执行***及方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102779183A (zh) * 2012-07-02 2012-11-14 华为技术有限公司 数据查询的方法、设备及***
CN103246749A (zh) * 2013-05-24 2013-08-14 北京立新盈企信息技术有限公司 面向分布式计算的矩阵数据库***及其查询方法
CN103678520A (zh) * 2013-11-29 2014-03-26 中国科学院计算技术研究所 一种基于云计算的多维区间查询方法及其***
CN104903894A (zh) * 2013-01-07 2015-09-09 脸谱公司 用于分布式数据库查询引擎的***和方法
CN107784103A (zh) * 2017-10-27 2018-03-09 北京人大金仓信息技术股份有限公司 一种访问hdfs分布式存储***的标准接口

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102779183A (zh) * 2012-07-02 2012-11-14 华为技术有限公司 数据查询的方法、设备及***
CN104903894A (zh) * 2013-01-07 2015-09-09 脸谱公司 用于分布式数据库查询引擎的***和方法
CN103246749A (zh) * 2013-05-24 2013-08-14 北京立新盈企信息技术有限公司 面向分布式计算的矩阵数据库***及其查询方法
CN103678520A (zh) * 2013-11-29 2014-03-26 中国科学院计算技术研究所 一种基于云计算的多维区间查询方法及其***
CN107784103A (zh) * 2017-10-27 2018-03-09 北京人大金仓信息技术股份有限公司 一种访问hdfs分布式存储***的标准接口

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113886458A (zh) * 2021-09-23 2022-01-04 浙江至元数据科技有限公司 一种基于任务聚合的分布式隐匿查询方法及***
CN114610746A (zh) * 2022-03-15 2022-06-10 云粒智慧科技有限公司 一种多关系型数据引擎的sql合并执行***及方法

Similar Documents

Publication Publication Date Title
US11042503B1 (en) Continuous data protection and restoration
US12032572B2 (en) Microservice component-based database system and related method
US11860741B2 (en) Continuous data protection
CN114756577B (zh) 多源异构数据的处理方法、计算机设备及存储介质
CN108920153B (zh) 一种基于负载预测的Docker容器动态调度方法
CN101042767A (zh) web服务数据库群集体系结构及其方法
CN111414381B (zh) 数据处理方法、装置、电子设备及存储介质
CN102880503A (zh) 数据分析***及数据分析方法
CN112395308A (zh) 一种基于hdfs数据库的数据查询方法
CN111752945B (zh) 一种基于容器和层次模型的时序数据库数据交互方法和***
CN113032356B (zh) 一种客舱分布式文件存储***及实现方法
US7752225B2 (en) Replication and mapping mechanism for recreating memory durations
US11567957B2 (en) Incremental addition of data to partitions in database tables
CN114547199A (zh) 数据库增量同步响应方法、装置及计算机可读存储介质
US20240241981A1 (en) Methods and systems for data synchronization, and computer-readable storage media
CN116775712A (zh) 联表查询方法、装置、电子设备、分布式***和存储介质
CN115083538B (zh) 一种药物数据的处理***、运行方法及数据处理方法
US11593345B1 (en) Accelerating change data capture determination using row bitsets
Jamal et al. Performance Comparison between S3, HDFS and RDS storage technologies for real-time big-data applications
CN113448775A (zh) 多源异构数据备份方法及装置
CN117390040B (zh) 基于实时宽表的业务请求处理方法、设备及存储介质
US12045221B1 (en) Compact representation of table columns via templatization
Zhao et al. Architecture Design of CTC Log Module Based on Web Service
CN117743470B (zh) 用于异构大数据的处理***
US11960494B1 (en) Fetching query results through cloud object stores

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