CN106021523B - 基于json的数据仓库存储及查询方法 - Google Patents

基于json的数据仓库存储及查询方法 Download PDF

Info

Publication number
CN106021523B
CN106021523B CN201610351689.1A CN201610351689A CN106021523B CN 106021523 B CN106021523 B CN 106021523B CN 201610351689 A CN201610351689 A CN 201610351689A CN 106021523 B CN106021523 B CN 106021523B
Authority
CN
China
Prior art keywords
node
value
data warehouse
json
vertex ticks
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
CN201610351689.1A
Other languages
English (en)
Other versions
CN106021523A (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.)
Beijing Jiehui Technology Co Ltd
Original Assignee
Beijing Jiaotong 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 Beijing Jiaotong University filed Critical Beijing Jiaotong University
Priority to CN201610351689.1A priority Critical patent/CN106021523B/zh
Publication of CN106021523A publication Critical patent/CN106021523A/zh
Application granted granted Critical
Publication of CN106021523B publication Critical patent/CN106021523B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • 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
    • 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/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/283Multi-dimensional databases or data warehouses, e.g. MOLAP or ROLAP

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

Abstract

本发明公开一种基于JSON的数据仓库存储方法,该存储方法包括以下步骤:S1:将JSON数据仓库分为键‑节点标记数据仓库和值‑路径标记数据仓库;S2:解析JSON文档;S3:对JSON文档中的节点进行标记,构建节点标记;S4:基于所述节点标记,对JSON文档中的值构建路径标记;S5:将JSON文档中节点的键和所对应的节点标记组成键‑节点标记对,并存储到所述键‑节点标记数据仓库中;S6:将所述节点的值和所对应的路径标记组成值‑路径标记对,并存储到所述值‑路径标记数据仓库中。另外,本发明还公开一种与所述存储方法相对应的查询方法。

Description

基于JSON的数据仓库存储及查询方法
技术领域
本发明涉及数据仓库存储及查询领域。更具体地,涉及一种基于JSON的数据仓库存储及查询方法。
背景技术
JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,它是基于ECMAScript的一个子集。JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C、C++、C#、Java、JavaScript、Perl、Python等)。这些特性使JSON成为理想的数据交换语言。易于人阅读和编写,同时也易于机器解析和生成。
与XML相比较而言,使用JSON携带相同信息量的数据,文件所占空间要小很多,传输速度更快,从另一个侧面将JSON占据的内存更小,其携带数据的高效率在构建数据仓库的时候可以有效的提高数据存储的效率,提高磁盘的IO效率,进而提高数据的处理效率。
JSON解析相对XML要容易,JSON在几乎所有主流程序语言中都有非常轻便的解析方法,而XML的解析过程要复杂地多,其文件还要借助DTD、schema等约束文件,因此JSON可以有效地降低内存和CPU的资源消耗。
现阶段的数据库中数据量成几何式增长,需要一种灵活轻便的数据格式存储数据,关系型数据库已经无法适应大量异构或半异构的数据,有许多数据库以XML文档作为替代,但是XML文档占用空间大,解析困难也成为了解决数据量极大的问题,JSON作为网络传输文档格式具有轻便简介易解析的特点,可以很好地弥补XML文档的不足。
R树是B树在k维上的自然扩展,用空间对象的MBR来近似表达空间对象,根据地物的MBR建立R树,可以直接对空间中占据一定范围的空间对象进行索引。R树的每一个结点都对应着磁盘页D和区域I,如果结点不是叶结点,则该结点的所有子结点的区域都在区域I的范围之内,而且存储在磁盘页D中。如果结点是叶结点,那么磁盘页D中存储的将是区域I范围内的一系列子区域,子区域紧紧围绕空间对象,一般为空间对象的外接矩形。R树作为空间索引方法一直在数据库领域有很好地应用价值,为数据的搜索查询大大降低了磁盘IO次数,提高了检索的效率。
因此,需要提供一种基于JSON的数据仓库存储及查询方法。
发明内容
本发明的一个目的在于提供一种基于JSON的数据仓库存储方法。
为达到上述目的,本发明采用下述技术方案:
一种基于JSON的数据仓库存储方法,该存储方法包括以下步骤:
S1:将JSON数据仓库分为键-节点标记数据仓库和值-路径标记数据仓库。
S2:解析JSON文档,具体包括识别键值对和分离键值对。
S3:对JSON文档中的节点采用无重复排号的方法进行标记,对节点名称进行从1开始的顺序标号,并对重复节点名称采用相同标号,从而构建节点标记。
S4:基于所述节点标记,对JSON文档中的值构建路径标记:
S401:以所述值的节点为出发节点向上一层节点搜索至根节点,记录各节点的标记;
S402:将各节点标记按照从根节点到出发节点的顺序组成节点数组,该节点数组为所述值的路径标记。
S5:将JSON文档中节点的键和所对应的节点标记组成键-节点标记对,检查键-节点标记数据仓库中是否存在该节点的键-节点标记对,若是,则停止存储;若否,则检查键-节点标记数据仓库中是否存在与该节点的键相同且节点标记对不同的键-节点标记对,若是,则停止存储;若否,则将所述节点的键-节点标记对按照单层文档的方式存储到JSON文件中。
S6:将所述节点的值和所对应的路径标记组成值-路径标记对,以路径标记为索引,将所述值-路径标记对按照单层文档的方式依次存储到所述值-路径标记数据仓库中。
优选地,值-路径标记数据仓库采用变种R树的形式,节点的路径标记作为该变种R树中节点的键,节点的值包含在该变种R树对应叶节点中,变种R树中非叶节点产生指向叶节点值的指针,在磁盘存储的该指针将已经标记好的节点标记作为关键指针。
一种基于JSON的数据仓库查询方法该查询方法包括以下步骤:
S1:接收查询指令;
S2:分析查询指令,解析查询关键词;
S3:通过键-节点标记数据仓库查找出关键词对应的节点标记查询点;
S4:将所有节点标记根据级别从高级至低级排列,构成路径标记查询域;
S5:通过路径标记查询域及变种R树的存储方式在值-路径标记数据仓库中锁定查询数据的存储位置;
S6:返回所查询的结果,根据路径标记的层级关系,重新构成一个或者多个JSON文档进行输出。
优选地,对节点标记查询点的查找是基于对节点数字代号的查找进行的。
本发明的有益效果如下:
本发明提供的基于JSON的数据仓库存储及查询方法能够方便快捷的对JSON数据仓库进行数据存储和查询,与XML相比较而言,使用JSON携带相同信息量的数据,文件所占空间要小很多,传输速度更快,内存占据小,其携带数据的高效率在构建数据仓库的时候可以有效的提高数据存储的效率。另外,值-路径标记以变种R树的方式存储在磁盘中,以节点标记为一级索引,以路径标记为二级索引,可以大大降低磁盘的IO次数,提高磁盘的IO效率,进而提高数据的处理效率。
附图说明
下面结合附图对本发明的具体实施方式作进一步详细的说明。
图1示出基于JSON的数据存储及查询过程示意图。
图2示出基于JSON的数据存储详细过程图解。
图3示出基于JSON的数据查询详细过程图解。
图4示出JSON文件在变种R树中的存储形式。
具体实施方式
为了更清楚地说明本发明,下面结合优选实施例和附图对本发明做进一步的说明。本领域技术人员应当理解,下面所具体描述的内容是说明性的而非限制性的,不应以此限制本发明的保护范围。
图1示出基于JSON的数据存储及查询过程示意图,本发明将结合附图通过以下具体实施例对数据的存储及查询过程进行详细说明,其中,数据存储方法步骤如下所示:
S1:将所有存储到数据仓库的JSON文件进行解析,存储解析步骤如图2所示。
S2:解析存储过程中,首先读取JSON文档,识别JSON文档中的键值对,然后将每个JSON文件中的不同节点分别分配顺序节点标记:由数字1开始进行标记,如果存在不同JSON文件中的相同的节点名称,则采用最初的标记。
S3:每次节点标记完成,都将键与对应的节点标记存储在键-节点标记数据仓库(Key-identifier data ware house,简称:KI仓库)中,并且保存为JSON文件,例如本实施例中的JSON文件为:
S4:将JSON文件中的值构建路径标记:路径标记的构建按照该值的对应键依次向上一层搜索直至JSON文件根节点的规则进行,得到所有键的对应序列号,将这些序列号按照级别从高级到低级的顺序依次排列同时使用逗号隔开,连接成为一组数组,并将该数组定义为JSON文件中值的路径标记。
S5:将所得值与之对应的路径标记存储在数据仓库中,该仓库定义为值-路径标记数据仓库(Value-Path Mark Data Warehouse,简称:VP仓库)。
S6:按照去平衡R树的方式,将所有节点标记存储在JSON文档中,叶子节点存储JSON文档的值,在非叶子节点处构建指向下一级别的指针,直至整个JSON文档路径标记的根节点被包含进R树结构中来,本实施例中JSON文档变种R树示例程序为:
S7:图4示出JSON文件在变种R树中的存储形式,即以上文件在去平衡R树中可以表示为图4中的状态:
实施例中一共有4组数据,分别是:“John年龄35”,“Kevin年龄40”;“Kate邮箱是Kate@gmail.com”,“Bob邮箱是Bob@gmail.com”;“John、Kevin是employee1中的员工”,“Bob和Kate是employee2中的员工”;“Bob和Kevin在做project1的项目”。
S8:根据标记规则将“company”“project1”“employee1”“employee2”“age”“name”“email”分别分配节点标记1,2,3,4,5,6,7。为避免数据仓库极大数据量下节点标记数字会过大,最后一个数字标记不纳入节点标记的范畴,即对值的标记(而非JSON文档中间节点标记)要求重新排列,即从1开始,并且仅限于同一个组的值才会有不同的标记。例如:John,Kevin同属于标记为3的组内,就要使用不同的标记1,2区别开;同理Kate,Bob同属于标记为4的组内,也用1,2区别开,即将John,Kevin与Kate,Bob作为组内节点分别标记1,2,因此图4中各个值的路径标记是按照级别高低排列得到的。
通过以上文的方法得到的是JSON文档的存储方式以及索引方式,图3示出基于JSON的数据查询详细过程图解,本发明在此基础上提供了一种查询数据的方法;
S1:接收查询指令;
S2:分析查询指令,解析查询关键词;
S3:通过键-节点标记数据仓库查找出关键词对应的节点标记查询点;
S4:将所有节点标记根据级别从高级至低级排列,构成路径标记查询域;
S5:通过路径标记查询域及变种R树的存储方式在值-路径标记数据仓库中锁定查询数据的存储位置;
S6:返回所查询的结果,根据路径标记的层级关系,重新构成一个或者多个JSON文档进行输出。
显然,本发明的上述实施例仅仅是为清楚地说明本发明所作的举例,而并非是对本发明的实施方式的限定,对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式的变化或变动,这里无法对所有的实施方式予以穷举,凡是属于本发明的技术方案所引伸出的显而易见的变化或变动仍处于本发明的保护范围之列。

Claims (9)

1.一种基于JSON的数据仓库查询方法,其特征在于,该查询方法包括以下步骤:
S10、进行基于JSON的数据仓库存储;
S20、进行基于JSON的数据仓库查询;
步骤S10包括如下子步骤:
S11:将JSON数据仓库分为键-节点标记数据仓库和值-路径标记数据仓库;
S12:解析JSON文档;
S13:对JSON文档中的节点进行标记,构建节点标记;
S14:基于所述节点标记,对JSON文档中的值构建路径标记;
S15:将JSON文档中节点的键和所对应的节点标记组成键-节点标记对,并存储到所述键-节点标记数据仓库中;
S16:将所述节点的值和所对应的路径标记组成值-路径标记对,并存储到所述值-路径标记数据仓库中;
步骤S20包括如下子步骤:
S21:接收查询指令;
S22:分析查询指令,解析查询关键词;
S23:通过键-节点标记数据仓库查找出关键词对应的节点标记查询点;
S24:将所有节点标记根据级别从高级至低级排列,构成路径标记查询域;
S25:通过路径标记查询域及变种R树的存储方式在值-路径标记数据仓库中锁定查询数据的存储位置;
S26:返回所查询的结果,根据路径标记的层级关系,重新构成一个或者多个JSON文档进行输出。
2.根据权利要求1所述的查询方法,其特征在于,步骤S12中解析JSON文档具体包括识别键值对和分离键值对。
3.根据权利要求1所述的查询方法,其特征在于,步骤S13中对JSON文档中的节点进行标记采用无重复排号的方法。
4.根据权利要求3所述的查询方法,其特征在于,所述无重复排号方法为对节点名称进行从1开始的顺序标号,并对重复节点名称采用相同标号。
5.根据权利要求1所述的查询方法,其特征在于,步骤S14中对JSON文档中的值构建路径标记,具体包括:
S1401:以所述值的节点为出发节点向上一层节点搜索至根节点,记录各节点的标记;
S1402:将各节点标记按照从根节点到出发节点的顺序组成节点数组,该节点数组为所述值的路径标记。
6.根据权利要求1-4中任一项所述的查询方法,其特征在于,步骤S15具体包括以下步骤:
S1501:将JSON文档中的节点的键和所对应的节点标记组成键-节点标记对;
S1502:检查键-节点标记数据仓库中是否存在该节点的键-节点标记对,若是,则停止存储;若否,则执行步骤S1503;
S1503:检查键-节点标记数据仓库中是否存在与该节点的键相同且节点标记对不同的键-节点标记对,若是,则停止存储;若否,则执行步骤S1504;
S1504:将所述节点的键-节点标记对按照单层文档的方式存储到JSON文件中。
7.根据权利要求1-5中任一项所述的查询方法,其特征在于,步骤S16具体包括以下步骤:
S1601:将所述值和所对应的路径标记组成值-路径标记对;
S1602:以路径标记为索引,将所述值-路径标记对按照单层文档的方式依次存储到所述值-路径标记数据仓库中。
8.根据权利要求7所述查询方法,其特征在于,所述值-路径标记数据仓库采用变种R树的形式,其中,所述节点的路径标记作为该变种R树中节点的键,所述节点的值包含在该变种R树对应叶节点中,所述变种R树中非叶节点产生指向叶节点值的指针。
9.根据权利要求1所述的查询方法,其特征在于,对所述节点标记查询点的查找是基于对节点数字代号的查找进行的。
CN201610351689.1A 2016-05-24 2016-05-24 基于json的数据仓库存储及查询方法 Active CN106021523B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610351689.1A CN106021523B (zh) 2016-05-24 2016-05-24 基于json的数据仓库存储及查询方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610351689.1A CN106021523B (zh) 2016-05-24 2016-05-24 基于json的数据仓库存储及查询方法

Publications (2)

Publication Number Publication Date
CN106021523A CN106021523A (zh) 2016-10-12
CN106021523B true CN106021523B (zh) 2019-07-26

Family

ID=57094588

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610351689.1A Active CN106021523B (zh) 2016-05-24 2016-05-24 基于json的数据仓库存储及查询方法

Country Status (1)

Country Link
CN (1) CN106021523B (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106934011A (zh) * 2017-03-09 2017-07-07 济南浪潮高新科技投资发展有限公司 一种json数据的结构化解析方法及装置
CN108628737A (zh) * 2017-03-23 2018-10-09 北京小唱科技有限公司 一种json数据的验证方法和系统
CN107274147A (zh) * 2017-05-31 2017-10-20 成都明途科技有限公司 基于矩阵式数据管理的数字数据统计方法
CN109725982B (zh) * 2017-10-31 2020-12-11 迈普通信技术股份有限公司 数据对象构建方法及装置
CN109508409A (zh) * 2018-10-23 2019-03-22 魔秀科技(北京)股份有限公司 一种半结构化json数据自由解析适配方法
CN111241131B (zh) * 2020-01-08 2023-04-18 政采云有限公司 一种数据查询方法、装置、设备及计算机可读存储介质
CN112506948A (zh) * 2020-12-03 2021-03-16 中国人寿保险股份有限公司 业务信息的指标查询方法及相关设备

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102768674A (zh) * 2012-06-12 2012-11-07 上海方正数字出版技术有限公司 一种基于路径结构的xml数据存储方法
CN105122243A (zh) * 2013-03-15 2015-12-02 亚马逊科技公司 用于半结构化数据的可扩展分析平台

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102768674A (zh) * 2012-06-12 2012-11-07 上海方正数字出版技术有限公司 一种基于路径结构的xml数据存储方法
CN105122243A (zh) * 2013-03-15 2015-12-02 亚马逊科技公司 用于半结构化数据的可扩展分析平台

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
面向复杂数据的对象存储系统;兰超 等;《计算机科学与探索》;20131212;第8卷(第2期);第129-138页

Also Published As

Publication number Publication date
CN106021523A (zh) 2016-10-12

Similar Documents

Publication Publication Date Title
CN106021523B (zh) 基于json的数据仓库存储及查询方法
CN110941612B (zh) 基于关联数据的自治数据湖构建系统及方法
CN103646032B (zh) 一种基于本体和受限自然语言处理的数据库查询方法
CN102722542A (zh) 一种资源描述框架图模式匹配方法
CN102693310A (zh) 一种基于关系数据库的资源描述框架查询方法和系统
Bröcheler et al. DOGMA: A disk-oriented graph matching algorithm for RDF databases
Taheriyan et al. Leveraging linked data to discover semantic relations within data sources
CN103365992A (zh) 一种基于一维线性空间实现Trie树的词典检索方法
CN109582831A (zh) 一种支持非结构化数据存储与查询的图数据库管理系统
CN106528648A (zh) 结合Redis内存数据库的分布式RDF关键词近似搜索方法
CN103123650A (zh) 一种基于整数映射的xml数据库全文索引方法
CN104615734B (zh) 一种社区管理服务大数据处理系统及其处理方法
CN103699647A (zh) 一种字符串词典的索引方法及系统
Seo et al. Big data framework for analyzing patents to support strategic R&D planning
Bremner et al. Edge-graph diameter bounds for convex polytopes with few facets
Zhu et al. Mini-XML: An efficient mapping approach between XML and relational database
Maleszka et al. A method for complex hierarchical data integration
Wu et al. Modeling and extracting deep-web query interfaces
Li et al. PRIS at TAC2012 KBP Track.
CN106933844A (zh) 面向大规模rdf数据的可达性查询索引的构建方法
CN116467278A (zh) 一种面向MongoDB存储的时态RDF四元组模型及冗余属性消除方法
Zhang et al. An overview on supervised semi-structured data classification
Klaib et al. Investigation into indexing XML data techniques
Shunqing et al. From the imperial catalogue to western library science: the loss of meaning for classical Chinese literature
CN111488437B (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
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20210323

Address after: 100144 12th floor, building 16, xishanhui (Shijingshan Science and Technology Park), 30 Shixing street, Shijingshan District, Beijing

Patentee after: Beijing Bank-Enterprise Integration Technology Development Co.,Ltd.

Address before: 100044 Beijing city Haidian District Shangyuan Village No. 3

Patentee before: Beijing Jiaotong University

TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20220124

Address after: 100144 room A-1151, floor 2, building 3, yard 30, Shixing street, Shijingshan District, Beijing (cluster registration)

Patentee after: Beijing jiehui Technology Co.,Ltd.

Address before: 100144 12th floor, building 16, xishanhui (Shijingshan Science and Technology Park), 30 Shixing street, Shijingshan District, Beijing

Patentee before: Beijing Bank-Enterprise Integration Technology Development Co.,Ltd.

TR01 Transfer of patent right