CN108256109A - 列簇类型半结构化数据的结构化查询方法及计算机设备 - Google Patents
列簇类型半结构化数据的结构化查询方法及计算机设备 Download PDFInfo
- Publication number
- CN108256109A CN108256109A CN201810120565.1A CN201810120565A CN108256109A CN 108256109 A CN108256109 A CN 108256109A CN 201810120565 A CN201810120565 A CN 201810120565A CN 108256109 A CN108256109 A CN 108256109A
- Authority
- CN
- China
- Prior art keywords
- data
- row cluster
- row
- bivariate table
- data set
- 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.)
- Granted
Links
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/80—Information retrieval; Database structures therefor; File system structures therefor of semi-structured data, e.g. markup language structured data such as SGML, XML or HTML
- G06F16/83—Querying
- G06F16/835—Query processing
- G06F16/8373—Query execution
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供一种列簇类型半结构化数据的结构化查询方法,根据列簇类型数据的结构设置所需的SQL语句;根据SQL语句中的谓词获取所需的列簇数据集合;将列簇数据集合转换为SQL语言识别的结构化二维表;通过SQL语句从结构化二维表中获取所需信息;本发明还提供一种计算机设备,提高数据查询效率,简化操作过程。
Description
技术领域
本发明涉及一种列簇类型半结构化数据的结构化查询方法及计算机设备。
背景技术
结构化查询语言(Structured Query Language)简称SQL,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系型数据库系统。SQL是用于访问和处理数据库标准的计算机语言。它不要求用户指定对数据的存放方法,也不需要用户了解具体的数据存放方式,所以具有完全不同底层结构的不同数据库系统,可以使用相同的SQL作为数据输入与管理的接口。SQL语句还可以用于数据定义、数据操作、数据管理、事务控制等,这使它具有极大的通用性、灵活性和强大的功能。
结构化数据也称作行数据,是由二维表结构来逻辑表达和实现的数据,严格地遵循数据格式与长度规范,主要通过关系型数据库进行存储和管理。
半结构化数据是数据结构不规则或不完整,但是他们不是完全无结构,只是不像结构化数据那样有严格的结构,不适合用数据库二维表来表现的数据,列簇类型的数据就是其中一种半结构化数据。半结构化数据管理系统对于结构数据中存储大量的空值和气泡的数据的输入及存储具有强大的优势。
处理半结构化数据的语言都比较简单粗糙,列簇类型的数据处理语言也是如此,面对现有的业务逻辑往往需要对数据进行多次处理,使用特定的半结构化查询语言从系统中经过简单的处理后获取数据,在交给其他的高级语言进行二次处理后才能满足客户业务需求的数据集。SQL语言具有丰富的表达能力及强大的功能而且还简单易学易用,结构化数据可以直接使用SQL语句获取业务需求的数据集。所以SQL语言对于半结构的列簇类型数据具有非常大的吸引力,现在业界内对这个问题的处理基本都是采用为了使用表达力强易用的SQL语句在设计之初就要求规范化列簇类型数据管理系统数据的输入,牺牲列簇类型数据管理系统的输入及存储的部分特性。但是对于存有列簇类型的历史数据的数据管理系统要使用SQL语言就束手无策了。
发明内容
本发明要解决的技术问题,在于提供一种列簇类型半结构化数据的结构化查询方法及计算机设备,提高数据查询效率,简化操作过程。
本发明之一是这样实现的:一种列簇类型半结构化数据的结构化查询方法,包括:
步骤1、根据列簇类型数据的结构设置所需的SQL语句;
步骤2、根据SQL语句中的谓词获取所需的列簇数据集合;
步骤3、将列簇数据集合转换为SQL语言识别的结构化二维表;
步骤4、通过SQL语句从结构化二维表中获取所需信息。
进一步地,所述步骤2进一步具体为:提取SQL语句中的谓词,并根据所述谓词通过列簇类型的数据处理语言从列簇类型数据中获取所需的列簇数据集合。
进一步地,所述步骤3进一步具体为:将列簇数据集合中行键的列数据作为二维表中的第一列的数据;将列簇数据集合中列簇和列的数据作为二维表中的第二列的数据,将列簇数据集合中Value的数据作为二维表中的第三列的数据,形成SQL语言识别的结构化二维表。
本发明之二是这样实现的:一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现以下步骤:
步骤1、根据列簇类型数据的结构设置所需的SQL语句;
步骤2、根据SQL语句中的谓词获取所需的列簇数据集合;
步骤3、将列簇数据集合转换为SQL语言识别的结构化二维表;
步骤4、通过SQL语句从结构化二维表中获取所需信息。
进一步地,所述步骤2进一步具体为:提取SQL语句中的谓词,并根据所述谓词通过列簇类型的数据处理语言从列簇类型数据中获取所需的列簇数据集合。
进一步地,所述步骤3进一步具体为:将列簇数据集合中行键的列数据作为二维表中的第一列的数据;将列簇数据集合中列簇和列的数据作为二维表中的第二列的数据,将列簇数据集合中Value的数据作为二维表中的第三列的数据,形成SQL语言识别的结构化二维表。
本发明具有如下优点:
1、无需为了使用SQL语言,牺牲列簇类型半结构化数据系统的输入存储等方面的特性。
2、无需在系统设计之初去规范化输入列簇类型数据系统的数据。
3、特别对先有列簇类型数据的系统进行使用SQL语言提供了极大的便利。
附图说明
下面参照附图结合实施例对本发明作进一步的说明。
图1为本发明方法执行流程图。
具体实施方式
本发明列簇类型半结构化数据的结构化查询方法,包括:
步骤1、根据列簇类型数据的结构设置所需的SQL语句;
步骤2、提取SQL语句中的谓词,并根据所述谓词通过列簇类型的数据处理语言从列簇类型数据中获取所需的列簇数据集合;
步骤3、将列簇数据集合转换为SQL语言识别的结构化二维表:将列簇数据集合中行键的列数据作为二维表中的行键列数据将列簇数据集合中行键的列数据作为二维表中的第一列的数据;将列簇数据集合中列簇和列的数据作为二维表中的第二列的数据,将列簇数据集合中Value的数据作为二维表中的第三列的数据,形成SQL语言识别的结构化二维表;
步骤4、通过SQL语句从结构化二维表中获取所需信息。
本发明计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现以下步骤:
步骤1、根据列簇类型数据的结构设置所需的SQL语句;
步骤2、提取SQL语句中的谓词,并根据所述谓词通过列簇类型的数据处理语言从列簇类型数据中获取所需的列簇数据集合;
步骤3、将列簇数据集合转换为SQL语言识别的结构化二维表:将列簇数据集合中行键的列数据作为二维表中的第一列的数据;将列簇数据集合中列簇和列的数据作为二维表中的第二列的数据,将列簇数据集合中Value的数据作为二维表中的第三列的数据,形成SQL语言识别的结构化二维表;
步骤4、通过SQL语句从结构化二维表中获取所需信息。
本发明一种具体实施方式:
如图1所示,本发明的设计思想是首先根据业务需求从列簇类型数据管理系统中获取数据,通过列簇类型的半结构化数据查询语言进行过滤以确保获取最精简的包含被请求元素的数据集合,然后将数据转换为可以接受SQL语言查询的结构化二维表的来表现的数据集合,这样既不影响列簇系统的输入及存储性能也可以使用SQL语句来表示客户复杂的业务逻辑,从列簇类型的数据管理系统中获取结果集。
方案结构:列簇类型结构数据获取、使用SQL语句描述具体业务、SQL语句解析增补、列簇类型数据转换。
A:列簇类型结构数据获取
判断是否有列簇类型源数据,在进行SQL语句查询之前,可以使用show(SQL语言中的show)来展示出列簇类型数据的结构信息,有了这个信息才能使用SQL语句进行查询。
这个show功能是通过列簇类型的半结构化数据查询语言,获取列簇类型数据的结构,这个功能通过列簇类型的半结构化数据查询语言查询速度是很快的,获取结果如下《表二》中的FamilyKey列信息。
B:使用SQL语句描述具体业务
通过转换后的预定义结构信息(数据结构化后字段分别为RowKey,FamilyKey,Value)和获取的列簇类型数据的结构,用SQL语句描述具体的业务。
C:SQL语句解析增补
根据输入的SQL语句,从中解析出相关的关键字(谓词提取),在根据关键字从列簇类型的系统中获取最精简的包含被请求的元素的数据集合,这里的关键字指的就是谓词,通过谓词信息我们可以获取到最精简的源数据(通过谓词,使用半结构数据查询语言进行过滤),降低IO。
D:列簇类型数据转换
列簇类型的示例数据如《表一》:
然后将数据转换为可以接受SQL语言查询的结构化二维表的来表现的数据集合。
以上几步对于用户来说是透明的,是由系统内部自动完成,用户在输入SQL语句前是可以show出第二个步骤中的FamilyKey的全量枚举,然后根据RowKey和FamilyKey的全量枚举用SQL来描述业务逻辑,具体的内部流程如下图所示。
E:列簇类型数据转换成二维表数据的转换过程
整个过程就是将任何结构的列簇类型数据转换成固定结构的二维表数据,固定结构由3个列构成(RowKey,FamilyKey,Value)如示例表二所示。
保持列簇类型中的RowKey数据作为二维表数据中的RowKey列数据,如示例表一,表二中的RowKey值Cutting和Tlipcon,只不过被转换后列数被扩展了,数据被冗余了;
组合列簇类型数据中的Column Cluster和Column Key作为二维表中的FamilyKey,如示例表一,表二中的Cutting列,Column Cluster有“Info”和“Roles”,“Info”列有Column Key两个“height”和“height”,“Roles”也有ColumnKey两个“ASF”和“BDF”。组成二维表中的4行的FamilyKey列字段;“Info:height”、“Info:state”、“Roles:ASF”、“Roles:BDF”;
保持列簇类型中的数据值作为二维表中的Value字段的数据;
以上二维表中的(RowKey,FamilyKey,Value)3个字段具体的字段名可以通过自定义来修改;
构建二维表数据的过程,是通过按照列簇数据中的RowKey,Column Cluster、Column Key、Value迭代获取具体的值在按照二维表的结构进行组合;
虽然以上描述了本发明的具体实施方式,但是熟悉本技术领域的技术人员应当理解,我们所描述的具体的实施例只是说明性的,而不是用于对本发明的范围的限定,熟悉本领域的技术人员在依照本发明的精神所作的等效的修饰以及变化,都应当涵盖在本发明的权利要求所保护的范围内。
Claims (6)
1.一种列簇类型半结构化数据的结构化查询方法,其特征在于:包括:
步骤1、根据列簇类型数据的结构设置所需的SQL语句;
步骤2、根据SQL语句中的谓词获取所需的列簇数据集合;
步骤3、将列簇数据集合转换为SQL语言识别的结构化二维表;
步骤4、通过SQL语句从结构化二维表中获取所需信息。
2.根据权利要求1所述的一种列簇类型半结构化数据的结构化查询方法,其特征在于:所述步骤2进一步具体为:提取SQL语句中的谓词,并根据所述谓词通过列簇类型的数据处理语言从列簇类型数据中获取所需的列簇数据集合。
3.根据权利要求1所述的一种列簇类型半结构化数据的结构化查询方法,其特征在于:所述步骤3进一步具体为:将列簇数据集合中行键的列数据作为二维表中的第一列的数据;将列簇数据集合中列簇和列的数据作为二维表中的第二列的数据,将列簇数据集合中Value的数据作为二维表中的第三列的数据,形成SQL语言识别的结构化二维表。
4.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现以下步骤:
步骤1、根据列簇类型数据的结构设置所需的SQL语句;
步骤2、根据SQL语句中的谓词获取所需的列簇数据集合;
步骤3、将列簇数据集合转换为SQL语言识别的结构化二维表;
步骤4、通过SQL语句从结构化二维表中获取所需信息。
5.根据权利要求4所述的一种列簇类型半结构化数据的结构化查询方法,其特征在于:所述步骤2进一步具体为:提取SQL语句中的谓词,并根据所述谓词通过列簇类型的数据处理语言从列簇类型数据中获取所需的列簇数据集合。
6.根据权利要求4所述的一种列簇类型半结构化数据的结构化查询方法,其特征在于:所述步骤3进一步具体为:将列簇数据集合中行键的列数据作为二维表中的第一列的数据;将列簇数据集合中列簇和列的数据作为二维表中的第二列的数据,将列簇数据集合中Value的数据作为二维表中的第三列的数据,形成SQL语言识别的结构化二维表。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810120565.1A CN108256109B (zh) | 2018-02-07 | 2018-02-07 | 列簇类型半结构化数据的结构化查询方法及计算机设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810120565.1A CN108256109B (zh) | 2018-02-07 | 2018-02-07 | 列簇类型半结构化数据的结构化查询方法及计算机设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108256109A true CN108256109A (zh) | 2018-07-06 |
CN108256109B CN108256109B (zh) | 2022-04-15 |
Family
ID=62744498
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810120565.1A Active CN108256109B (zh) | 2018-02-07 | 2018-02-07 | 列簇类型半结构化数据的结构化查询方法及计算机设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108256109B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103092920A (zh) * | 2012-12-26 | 2013-05-08 | 新浪网技术(中国)有限公司 | 半结构化数据的存储方法及存储系统 |
CN104160394A (zh) * | 2011-12-23 | 2014-11-19 | 阿米亚托股份有限公司 | 用于半结构化数据的可缩放分析平台 |
US20150039587A1 (en) * | 2013-07-31 | 2015-02-05 | Oracle International Corporation | Generic sql enhancement to query any semi-structured data and techniques to efficiently support such enhancements |
-
2018
- 2018-02-07 CN CN201810120565.1A patent/CN108256109B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104160394A (zh) * | 2011-12-23 | 2014-11-19 | 阿米亚托股份有限公司 | 用于半结构化数据的可缩放分析平台 |
CN103092920A (zh) * | 2012-12-26 | 2013-05-08 | 新浪网技术(中国)有限公司 | 半结构化数据的存储方法及存储系统 |
US20150039587A1 (en) * | 2013-07-31 | 2015-02-05 | Oracle International Corporation | Generic sql enhancement to query any semi-structured data and techniques to efficiently support such enhancements |
Non-Patent Citations (2)
Title |
---|
IT小奋: "Apache Phoenix入门", 《APACHE PHOENIX入门》 * |
VARYALL: "Hbase列簇简单介绍", 《HBASE列簇简单介绍》 * |
Also Published As
Publication number | Publication date |
---|---|
CN108256109B (zh) | 2022-04-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103064875B (zh) | 一种服务化空间数据分布式查询方法 | |
US9659045B2 (en) | Generic indexing for efficiently supporting ad-hoc query over hierarchically marked-up data | |
CN104123346B (zh) | 一种结构化数据搜索方法 | |
US7599957B2 (en) | System and method for high performance template driven metadata schema mapping and data storage for surveillance and sensor devices | |
US7730098B2 (en) | Method for supporting ontology-related semantic queries in DBMSs with XML support | |
Stadler et al. | Making interoperability persistent: A 3D geo database based on CityGML | |
CN110941612A (zh) | 基于关联数据的自治数据湖构建系统及方法 | |
CN107491561A (zh) | 一种基于本体的城市交通异构数据集成系统及方法 | |
CN109815283A (zh) | 一种异构数据源可视化查询方法 | |
CN101894143A (zh) | 一种联邦检索及检索结果集成展现方法及系统 | |
CN112463926A (zh) | 一种数据检索/智能问答方法、装置、存储介质 | |
CN103365914A (zh) | 基于搜索引擎的数据库查询系统和方法 | |
CN109815254A (zh) | 基于大数据的跨地域任务调度方法及系统 | |
CN105912594A (zh) | Sql语句处理方法和系统 | |
US20200334314A1 (en) | Emergency disposal support system | |
CN114218218A (zh) | 基于数据仓库的数据处理方法、装置、设备及存储介质 | |
CN111858567A (zh) | 一种通过标准数据元进行政务数据清洗的方法和系统 | |
CN109739882A (zh) | 一种基于Presto和Elasticsearch的大数据查询优化方法 | |
CN106815279A (zh) | 基于本体的政务知识检索系统 | |
CN108984631A (zh) | 一种大数据的生成及调用方法和装置 | |
CN108256109A (zh) | 列簇类型半结构化数据的结构化查询方法及计算机设备 | |
US10877998B2 (en) | Highly atomized segmented and interrogatable data systems (HASIDS) | |
CN109241155A (zh) | 一种rdf流数据和关系数据的联邦查询处理系统及方法 | |
WO2023125718A1 (zh) | 基于知识图谱的数据查询方法、系统、设备及存储介质 | |
Liu et al. | Complex event processing for sequence data and domain knowledge |
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 | ||
CB02 | Change of applicant information | ||
CB02 | Change of applicant information |
Address after: 350000 21 / F, building 5, f District, Fuzhou Software Park, 89 software Avenue, Gulou District, Fuzhou City, Fujian Province Applicant after: FUJIAN SINOREGAL SOFTWARE CO.,LTD. Address before: Floor 20-21, building 5, area F, Fuzhou Software Park, 89 software Avenue, Gulou District, Fuzhou City, Fujian Province 350000 Applicant before: FUJIAN SINOREGAL SOFTWARE CO.,LTD. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |