CN102750354B - 一种非结构化数据查询操作语言的解析与处理方法 - Google Patents

一种非结构化数据查询操作语言的解析与处理方法 Download PDF

Info

Publication number
CN102750354B
CN102750354B CN201210190832.5A CN201210190832A CN102750354B CN 102750354 B CN102750354 B CN 102750354B CN 201210190832 A CN201210190832 A CN 201210190832A CN 102750354 B CN102750354 B CN 102750354B
Authority
CN
China
Prior art keywords
enquiry module
index
storehouse
internal command
query
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
Application number
CN201210190832.5A
Other languages
English (en)
Other versions
CN102750354A (zh
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.)
Tsinghua University
Original Assignee
Tsinghua University
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 Tsinghua University filed Critical Tsinghua University
Priority to CN201210190832.5A priority Critical patent/CN102750354B/zh
Publication of CN102750354A publication Critical patent/CN102750354A/zh
Application granted granted Critical
Publication of CN102750354B publication Critical patent/CN102750354B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明涉及一种非结构化数据管理查询语言的解析和处理方法,属于计算机数据管理技术领域。本发明提出的非结构化数据管理查询语言的解析和处理方法,针对非结构化数据的查询,定义了结构化的查询语言,与传统关系数据库的查询语言语法类似,该语言易扩展并可融合自定义的查询函数。本方法首先启动键值库中的查询模块,接收用户的查询语言请求,对语言进行解析并转换为内部命令;查询模块根据内部命令调用键值库中各功能模块去执行;命令执行完毕向用户返回结果。本发明方法的核心是查询模块,通过设计一种类似SQL语言的方式来访问底层的键值库,使用户通过轻松操作键值库,管理非结构化数据。

Description

一种非结构化数据查询操作语言的解析与处理方法
技术领域
本发明涉及一种非结构化数据查询操作语言的解析与处理方法,属于计算机数据管理技术领域。
背景技术
随着互联网等新兴应用的日益丰富以及企业信息化建设的不断发展,出现了大量的非结构化数据。由于非结构化数据数据类型丰富,结构复杂,没有明确的、统一定义的数据结构约束,加之其海量的数据规模,高度动态的数据特性,多样的应用场景,统一的联合访问需求,使得非结构化数据管理面临巨大挑战。
传统的关系数据库在处理海量的非结构化数据上难以提出有效的解决方案。传统数据库的数据模型都是模式优先的逻辑结构,而非结构化数据则是模式滞后的逻辑结构,这使得建立在关系代数基础上的数据管理方法在解决非结构化数据的问题上不再有效。非结构化数据的海量特性也使得传统数据库在性能和扩展性上无能为力。
新兴的键值库以无模式的方式打破了传统数据库的模式优先逻辑,同时它以键值的方式保证了高速的读写。现在流行并发展迅速的键值库有HBase、MangoDB、Dynamo和Cassandra等等。他们以分布式集群方式保证了海量数据的存储与扩展性,本发明正是基于这样的键值库。
然而新兴的键值库并没有完善的查询方式和查询语言。如HBase提供了API访问,Cassandra提供了API与一种名为CQL的类SQL语言方式访问。然而他们由于自身数据库的限制,仅能对非结构化数据进行简单的查询与更新,没有提供复杂的分析函数,也没有考虑大容量数据的语言描述方式。CouchDB与SQLite两创始人联合在试图设计键值库的统一查询语言UnQL,然而目前也仅仅只有雏形,对于非结构化数据的多特征查询这一特点也没有有效考虑。
从最终用户和应用的角度,非结构化数据查询语言应该解决以下问题:
(1)支持面向键值库存储的非结构化数据查询;
现有的非结构化数据多以存储在键值库中作为海量与高效读写的解决方案,而键值库往往没有提供易用的查询语言。
(2)能有效解决不同非结构化数据的多种特征的统一查询;
现有的CQL等语言只提供简单的查询功能,无法对非结构化数据进行特征检索。比如对图像数据进行直方图、颜色等特征检索,对音频进行MFCC特征检索等等。
(3)如何进行有效地数据查询与分析。
传统数据查询仅仅实现索引和简单的统计函数。对于海量的非结构化数据而言,很多结果需要进行数据的分析得出,因此查询语言应该尽可能的支持更多的数据分析函数。
发明内容
本发明的目的是提出一种非结构化数据查询操作语言的解析与处理方法,针对非结构化数据管理领域存在的问题,用一种类似SQL语言的方式来访问底层的键值库,以达到让用户轻松操作键值库来管理非结构化数据的目的。
本发明提出的非结构化数据管理查询语言的解析和处理方法,包括以下步骤:
(1)启动键值库中的查询模块,查询模块监听用户的查询语言请求;
(2)查询模块接收用户的的查询语言请求,对语言进行解析,解析步骤如下:
(2-1)用户端采用查询语言驱动方式连接查询模块,建立用户端与查询模块之间的会话,并保存会话过程中的会话信息,访问查询模块,向查询模块发送查询语言;
(2-2)通过查询模块中的解析器,查询模块将用户端发送的查询语言请求转换为内部命令;
(3)对上述内部命令进行判断,若该内部命令为指定本次会话的键值库表的命令,则查询模块保存该指定键值库表的名字,并在后续的命令中默认本次会话在该键值库表下执行;若查询语言中的任意位置具有一个相似关键字,则查询模块将该内部命令转交给键值库中的索引调用模块;若查询语言中的任意位置具有一个函数关键字,则查询模块将该内部命令转交给键值库中的函数调用模块;
(4)键值库中的查询模块根据内部命令,调用键值库中的各功能模块执行内部命令,具体过程如下:
(4-1)若内部命令为结构化查询命令,则采用键值库中的服务器执行命令;
(4-2)若内部命令为创建键值库索引命令,则采用键值库中的服务器执行命令;
(4-3)若内部命令为创建非键值库索引命令,则构建一个索引实现库,并调用索引实现库执行命令;
(4-4)若内部命令为运行数据函数分析命令,则构建一个数据函数分析模块,并调用数据函数分析模块执行命令,查询模块获取命令的执行状态和执行结果;
(4-5)若内部命令为大数据传输,则使用独立的数据传输流等待与用户端连接,完成连接后,通过数据传输流进行文件传输;传输结束后,查询模块保存传输的文件,并保持用户端与查询模块之间的会话;
(4-6)若内部命令是自定义创建索引、查询索引和建立函数,自定义创建索引和查询索引的执行命令,则通过一个关键字标明索引的创建参数和索引创建类型,完成索引的创建和查询;对于自定义建立函数的执行命令,查询模块根据查询语言中的函数关键字和函数的变长参数,从查询模块的配置文件中列出的函数支持类型中,选择相应的函数,完成函数的建立;
(4-7)若内部命令为多种类型索引的联合查询,则查询模块对多种类型索引进行分拆,得到各个类型索引的查询子句,根据查询子句,读取查询模块的配置文件中不同索引查询的优先级,调整多个查询子句的查询顺序,进行查询;
(5)查询模块向用户端返回查询结果。
本发明提出的非结构化数据管理查询语言的解析和处理方法,针对非结构化数据的查询,定义了结构化的查询语言,与传统关系数据库的查询语言语法类似,该语言易扩展并可融合自定义的查询函数。本发明方法的核心是查询模块,通过设计接口使查询模块与键值库松耦合,可以方便的将现有键值库的查询模块移植到其他键值库中;本发明方法提供了多种包括自定义在内的特征检索,因此可以直接管理多种非结构化数据;本发明方法可以支持大数据(如文件)的读写操作,提供支持数据分析等分布式函数的执行操作和可以配置的查询优先级设置等特点,保证高效的管理非结构化数据。
具体实施方式
本发明提出的非结构化数据管理查询语言的解析和处理方法,包括以下步骤:
(1)启动键值库中的查询模块,查询模块监听用户的查询语言请求;
(2)查询模块接收用户的的查询语言请求,对语言进行解析,解析步骤如下:
(2-1)用户端采用查询语言驱动方式连接查询模块,建立用户端与查询模块之间的会话,并保存会话过程中的会话信息,访问查询模块,向查询模块发送查询语言;
(2-2)通过查询模块中的解析器,查询模块将用户端发送的查询语言请求转换为内部命令;
(3)对上述内部命令进行判断,若该内部命令为指定本次会话的键值库表的命令,则查询模块保存该指定键值库表的名字,并在后续的命令中默认本次会话在该键值库表下执行;若查询语言中的任意位置具有一个相似(like)关键字,则查询模块将该内部命令转交给键值库中的索引调用模块;若查询语言中的任意位置具有一个函数(function)关键字,则查询模块将该内部命令转交给键值库中的函数调用模块;
(4)键值库中的查询模块根据内部命令,调用键值库中的各功能模块执行内部命令,具体过程如下:
(4-1)若内部命令为结构化查询命令,如创建表、创建列族或在列族中添加删除数据,则采用键值库中的服务器执行命令;
(4-2)若内部命令为创建键值库索引命令,则采用键值库中的服务器执行命令;
(4-3)若内部命令为创建非键值库索引命令,如图片的高维索引、文本的全文索引,则构建一个索引实现库,并调用索引实现库执行命令;
(4-4)若内部命令为运行数据函数分析命令,则构建一个数据函数分析模块,并调用数据函数分析模块执行命令,查询模块获取命令的执行状态和执行结果;
(4-5)若内部命令为大数据传输,则使用独立的数据传输流等待与用户端连接,完成连接后,通过数据传输流进行文件传输;传输结束后,查询模块保存传输的文件,并保持用户端与查询模块之间的会话;
(4-6)若内部命令是自定义创建索引、查询索引和建立函数,本发明提出的查询语言通过半开放式关键字设置达到多种索引创建与查询、多种函数支持的效果;对于自定义创建索引和查询索引的执行命令,则通过一个关键字(例如with)标明索引的创建参数和索引创建类型,完成索引的创建和查询;对于自定义建立函数的执行命令,查询模块根据查询语言中的函数关键字和函数的变长参数,从查询模块的配置文件中列出的函数支持类型中,选择相应的函数,完成函数的建立;
(4-7)若内部命令为多种类型索引的联合查询,在较为复杂的查询语句中,会同时存在键值库默认索引查询(列值或者键值的过滤)、多个自定义索引查询的联合查询;则查询模块对多种类型索引进行分拆,得到各个类型索引的查询子句,根据查询子句,读取查询模块的配置文件中不同索引查询的优先级,调整多个查询子句的查询顺序,进行查询;
(5)查询模块向用户端返回查询结果。

Claims (1)

1.一种非结构化数据管理查询语言的解析和处理方法,其特征在于该方法包括以下步骤:
(1)启动键值库中的查询模块,查询模块监听用户的查询语言请求;
(2)查询模块接收用户的查询语言请求,对语言进行解析,解析步骤如下:
(2-1)用户端采用查询语言驱动方式连接查询模块,建立用户端与查询模块之间的会话,并保存会话过程中的会话信息,访问查询模块,向查询模块发送查询语言;
(2-2)通过查询模块中的解析器,查询模块将用户端发送的查询语言请求转换为内部命令;
(3)对上述内部命令进行判断,若该内部命令为指定本次会话的键值库表的命令,则查询模块保存该指定键值库表的名字,并在后续的命令中默认本次会话在该键值库表下执行;若查询语言中的任意位置具有一个相似关键字,则查询模块将该内部命令转交给键值库中的索引调用模块;若查询语言中的任意位置具有一个函数关键字,则查询模块将该内部命令转交给键值库中的函数调用模块;
(4)键值库中的查询模块根据内部命令,调用键值库中的各功能模块执行内部命令,具体过程如下:
(4-1)若内部命令为结构化查询命令,则采用键值库中的服务器执行命令;
(4-2)若内部命令为创建键值库索引命令,则采用键值库中的服务器执行命令;
(4-3)若内部命令为创建非键值库索引命令,则构建一个索引实现库,并调用索引实现库执行命令;
(4-4)若内部命令为运行数据函数分析命令,则构建一个数据函数分析模块,并调用数据函数分析模块执行命令,查询模块获取命令的执行状态和执行结果;
(4-5)若内部命令为大数据传输,则使用独立的数据传输流等待与用户端连接,完成连接后,通过数据传输流进行文件传输;传输结束后,查询模块保存传输的文件,并保持用户端与查询模块之间的会话;
(4-6)若内部命令是自定义创建索引执行命令、查询索引执行命令和建立函数执行命令,则其中的自定义创建索引执行命令和查询索引执行命令,通过一个关键字标明索引的创建参数和索引创建类型,完成索引的创建和查询,其中的自定义建立函数的执行命令,查询模块根据查询语言中的函数关键字和函数的变长参数,从查询模块的配置文件中列出的函数支持类型中,选择相应的函数,完成函数的建立;
(4-7)若内部命令为多种类型索引的联合查询,则查询模块对多种类型索引进行分拆,得到各个类型索引的查询子句,根据查询子句,读取查询模块的配置文件中不同索引查询的优先级,调整多个查询子句的查询顺序,进行查询;
(5)查询模块向用户端返回查询结果。
CN201210190832.5A 2012-06-11 2012-06-11 一种非结构化数据查询操作语言的解析与处理方法 Active CN102750354B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201210190832.5A CN102750354B (zh) 2012-06-11 2012-06-11 一种非结构化数据查询操作语言的解析与处理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210190832.5A CN102750354B (zh) 2012-06-11 2012-06-11 一种非结构化数据查询操作语言的解析与处理方法

Publications (2)

Publication Number Publication Date
CN102750354A CN102750354A (zh) 2012-10-24
CN102750354B true CN102750354B (zh) 2014-08-20

Family

ID=47030539

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210190832.5A Active CN102750354B (zh) 2012-06-11 2012-06-11 一种非结构化数据查询操作语言的解析与处理方法

Country Status (1)

Country Link
CN (1) CN102750354B (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103425779A (zh) * 2013-08-19 2013-12-04 曙光信息产业股份有限公司 数据的处理方法和装置
CN108090219B (zh) * 2014-12-24 2021-08-20 北京奇虎科技有限公司 数据库内置数据的处理方法及装置
CN107122418A (zh) * 2017-03-31 2017-09-01 北京奇艺世纪科技有限公司 一种查询方法及装置
CN108090139B (zh) * 2017-11-30 2021-10-01 北京邮电大学 一种文件检索方法及装置
CN108846003A (zh) * 2018-04-20 2018-11-20 广东电网有限责任公司 一种非结构化机器数据处理方法及装置
CN113326033B (zh) * 2021-06-09 2023-08-11 北京八分量信息科技有限公司 一种带有多种语言API的key-value存储系统
CN113468209A (zh) * 2021-07-27 2021-10-01 广西电网有限责任公司 一种电网监控系统高速内存数据库访问方法
CN116303581B (zh) * 2023-05-19 2023-08-04 山东浪潮数字商业科技有限公司 异构数据库间分流查询负载适配方法、系统、设备及介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7194483B1 (en) * 2001-05-07 2007-03-20 Intelligenxia, Inc. Method, system, and computer program product for concept-based multi-dimensional analysis of unstructured information
CN102129469A (zh) * 2011-03-23 2011-07-20 华中科技大学 一种面向虚拟实验的非结构化数据访问方法
CN102298641A (zh) * 2011-09-14 2011-12-28 清华大学 一种基于键值库的文件与结构化数据统一存储方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080201290A1 (en) * 2007-02-16 2008-08-21 International Business Machines Corporation Computer-implemented methods, systems, and computer program products for enhanced batch mode processing of a relational database

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7194483B1 (en) * 2001-05-07 2007-03-20 Intelligenxia, Inc. Method, system, and computer program product for concept-based multi-dimensional analysis of unstructured information
CN102129469A (zh) * 2011-03-23 2011-07-20 华中科技大学 一种面向虚拟实验的非结构化数据访问方法
CN102298641A (zh) * 2011-09-14 2011-12-28 清华大学 一种基于键值库的文件与结构化数据统一存储方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
一种基于特征的非结构化数据演化管理建模框架;田万鹏 等;《计算机研究与发展》;20101231(第47期);394-399 *
田万鹏 等.一种基于特征的非结构化数据演化管理建模框架.《计算机研究与发展》.2010,(第47期),394-399.

Also Published As

Publication number Publication date
CN102750354A (zh) 2012-10-24

Similar Documents

Publication Publication Date Title
CN102750354B (zh) 一种非结构化数据查询操作语言的解析与处理方法
CN105260403B (zh) 通用跨数据库访问方法
CN109299102B (zh) 一种基于Elastcisearch的HBase二级索引系统及方法
CN107463637B (zh) 一种分布式NewSQL数据库系统和数据储存方法
US11468103B2 (en) Relational modeler and renderer for non-relational data
CN110837492B (zh) 一种多源数据统一sql提供数据服务的方法
JP6535031B2 (ja) データクエリ方法及び装置
CN107491561B (zh) 一种基于本体的城市交通异构数据集成系统及方法
WO2016123920A1 (zh) 支持多类型数据库操作的集成接口的实现方法及系统
CN100590621C (zh) 本体模式与关系数据库模式之间语义映射信息的编辑方法
EP3285178A1 (en) Data query method in crossing-partition database, and crossing-partition query device
WO2020135613A1 (zh) 数据查询处理方法、装置及系统、计算机可读存储介质
WO2015062181A1 (zh) 用于实现多源异构数据资源自动同步的方法
CN102750358B (zh) 一种系统数据模型到cim模型的映射方法及系统
WO2014193943A1 (en) Value based windows on relations in continuous data streams
CN111221791A (zh) 一种多源异构数据导入数据湖的方法
CN102708203A (zh) 一种基于xml元数据的数据库动态管理方法
CN102254021A (zh) 基于虚拟机管理系统的数据库构建方法
CN107656951B (zh) 一种同步异构数据库系统中实时数据的方法
CN109947791A (zh) 一种数据库语句优化方法、装置、设备及存储介质
US20160019242A1 (en) Migrating Federated Data to Multi-Source Universe Database Environment
CN107977446A (zh) 一种基于数据分区的内存网格数据加载方法
CN108959538A (zh) 全文检索系统及方法
CN110716952A (zh) 一种多源异构数据处理方法、装置和存储介质
CN103838781A (zh) 数据库访问方法及系统

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant