CN108256109B - 列簇类型半结构化数据的结构化查询方法及计算机设备 - Google Patents
列簇类型半结构化数据的结构化查询方法及计算机设备 Download PDFInfo
- Publication number
- CN108256109B CN108256109B CN201810120565.1A CN201810120565A CN108256109B CN 108256109 B CN108256109 B CN 108256109B CN 201810120565 A CN201810120565 A CN 201810120565A CN 108256109 B CN108256109 B CN 108256109B
- Authority
- CN
- China
- Prior art keywords
- data
- column
- column cluster
- structured
- dimensional table
- 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/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 (2)
1.一种列簇类型半结构化数据的结构化查询方法,其特征在于:包括:
步骤1、使用SQL语言中的show来展示出列簇类型数据的结构,根据列簇类型数据的结构设置所需的SQL语句;
步骤2、提取SQL语句中的谓词,并根据所述谓词通过列簇类型的数据处理语言从列簇类型数据中获取所需的列簇数据集合;
步骤3、将列簇数据集合转换为SQL语言识别的结构化二维表;
步骤4、通过SQL语句从结构化二维表中获取所需信息;
所述步骤3进一步具体为:将列簇数据集合中行键的列数据作为二维表中的第一列的数据;将列簇数据集合中列簇和列的数据作为二维表中的第二列的数据,将列簇数据集合中Value的数据作为二维表中的第三列的数据,形成SQL语言识别的结构化二维表。
2.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现以下步骤:
步骤1、使用SQL语言中的show来展示出列簇类型数据的结构,根据列簇类型数据的结构设置所需的SQL语句;
步骤2、提取SQL语句中的谓词,并根据所述谓词通过列簇类型的数据处理语言从列簇类型数据中获取所需的列簇数据集合;
步骤3、将列簇数据集合转换为SQL语言识别的结构化二维表;
步骤4、通过SQL语句从结构化二维表中获取所需信息;
所述步骤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 CN108256109A (zh) | 2018-07-06 |
CN108256109B true 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 (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103092920A (zh) * | 2012-12-26 | 2013-05-08 | 新浪网技术(中国)有限公司 | 半结构化数据的存储方法及存储系统 |
CN104160394A (zh) * | 2011-12-23 | 2014-11-19 | 阿米亚托股份有限公司 | 用于半结构化数据的可缩放分析平台 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
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 (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104160394A (zh) * | 2011-12-23 | 2014-11-19 | 阿米亚托股份有限公司 | 用于半结构化数据的可缩放分析平台 |
CN103092920A (zh) * | 2012-12-26 | 2013-05-08 | 新浪网技术(中国)有限公司 | 半结构化数据的存储方法及存储系统 |
Non-Patent Citations (2)
Title |
---|
Apache Phoenix入门;it小奋;《Apache Phoenix入门》;20170723;第【0001】-【0004】段 * |
Hbase列簇简单介绍;varyall;《Hbase列簇简单介绍》;20171216;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN108256109A (zh) | 2018-07-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106202207B (zh) | 一种基于HBase-ORM的索引及检索系统 | |
US11550783B2 (en) | One-shot learning for text-to-SQL | |
CN107491561B (zh) | 一种基于本体的城市交通异构数据集成系统及方法 | |
US7870167B2 (en) | Implementing event processors | |
US10452661B2 (en) | Automated database schema annotation | |
CN107515887B (zh) | 一种适用于多种大数据管理系统的交互式查询方法 | |
US9824128B1 (en) | System for performing single query searches of heterogeneous and dispersed databases | |
KR20060045622A (ko) | 컴퓨터화된 재무 시스템의 추출, 변환 및 로딩 설계자 모듈 | |
CN107491476B (zh) | 一种适用于多种大数据管理系统的数据模型转换及查询分析方法 | |
CN110716952A (zh) | 一种多源异构数据处理方法、装置和存储介质 | |
CN114461603A (zh) | 多源异构数据融合方法及装置 | |
US9063957B2 (en) | Query systems | |
KR20200094074A (ko) | 인덱스 관리 방법, 장치, 기기 및 저장 매체 | |
CN112507089A (zh) | 一种基于知识图谱的智能问答引擎及其实现方法 | |
Sheng et al. | CEPV: A tree structure information extraction and visualization tool for big knowledge graph | |
US9798752B1 (en) | Systems and methods for ingesting relational data into a delimited column qualifier NoSQL database | |
CN113779349A (zh) | 数据检索系统、装置、电子设备和可读存储介质 | |
CN113297251A (zh) | 多源数据检索方法、装置、设备及存储介质 | |
CN105824914A (zh) | 一种基于配置的雪花模型信息抽取方法 | |
CN110874366A (zh) | 数据处理、查询方法和装置 | |
CN108256109B (zh) | 列簇类型半结构化数据的结构化查询方法及计算机设备 | |
US10877998B2 (en) | Highly atomized segmented and interrogatable data systems (HASIDS) | |
CN114003231B (zh) | 一种sql语法解析树优化方法及系统 | |
CN112181996B (zh) | 关系数据库统一数据存取中间件方法及系统 | |
CN112395365B (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 | ||
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. |
|
CB02 | Change of applicant information | ||
GR01 | Patent grant | ||
GR01 | Patent grant |