[发明专利]一种JSON数据的语法树提取方法有效
| 申请号: | 201911240324.1 | 申请日: | 2019-12-06 |
| 公开(公告)号: | CN111046630B | 公开(公告)日: | 2021-07-20 |
| 发明(设计)人: | 陈世敏;王智义;祁琦 | 申请(专利权)人: | 中国科学院计算技术研究所 |
| 主分类号: | G06F40/14 | 分类号: | G06F40/14;G06F16/81 |
| 代理公司: | 北京泛华伟业知识产权代理有限公司 11280 | 代理人: | 王勇 |
| 地址: | 100190 北*** | 国省代码: | 北京;11 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 json 数据 语法 提取 方法 | ||
本发明提供一种JSON数据的语法树提取方法,包括:对给定的数据集中的JSON数据进行采样,记录JSON记录结构树;遍历所有的JSON记录结构树以累加生成一个统计结构树;遍历统计结构树中每个节点的计数器,将JSON记录中的域划分为稀疏域和非稀疏域;将特征相同的稀疏域归类到一起,形成相同特征的域的归类;基于非稀疏域、相同特征的域的归类生成语法树的初始状态:根据语法树的初始状态,对给定的数据集中的所有JSON记录逐条进行解析,动态构建数据集对应的语法树。本发明通过对JSON数据记录(Record)中的稀疏的域按照特征进行归类,提高了语法树的组织效率;通过对具有相同特征的域进行归类,减少了解析后的数据的列式文件数量,从而提高了在后续查询过程中的效率。
技术领域
本发明涉及数据处理方法,具体来说,涉及JSON数据存储与查询领域,更具体地说,涉及一种JSON数据的语法树(树状结构数据的元数据)提取方法,并基于此方法进行的数据处理方法、查询方法及系统。
背景技术
随着计算机网络和大数据处理技术的发展,传统关系型数据已经越来越不能满足网络和大数据环境下对数据定义和使用的要求。而以JSON为代表的半结构化数据因为既能够充分的表达编程语言中对象(class),同时还能够根据数据的格式变化对原有的数据格式进行修改和扩充,故而其在实际环境中被广泛的使用。
在传统的关系型数据库中,用户将记录导入到数据库之前需要预先以数据表的形式定义记录的元信息:例如表中有哪些属性,各属性分别是什么类型等。而在使用JSON数据时,不需要预先定义记录的元信息:用户在使用JSON数据前不需要预先定义数据集中记录的内部结构,包括域的名称、值的类型及相关的嵌套结构等。当用户的需求发生改变时,例如改变记录内部的结构、改变某一个域的类型等,记录的结构可以随时按照需求的变化进行相应的改变,不需要修改记录相关的数据元信息以及之前产生的记录的内部结构。这样,JSON数据为用户提供了足够强的语义的灵活性:用户不需要预先定义JSON数据的元信息;同时当需求发生变化时,用户可以随时修改JSON数据的内部结构。
现阶段对JSON数据处理(包括数据解析、存储和查询等相关的操作)有以下的三种方式:
方式一、不提取记录内部结构的元信息(即JSON数据中的数据结构),将其作为一个整体存储在相应的数据库中,例如PostgreSQL,Oracle,MongoDB等。具体的实现方式又分为以下2种:
(a)、直接将JSON数据以原有的文本形式存储在数据库的表的某个域中,例如PostgreSQL等。
(b)、将JSON数据按照一定的编码格式进行逐条记录的二进制编码,之后将记录作为一个整体进行存储。例如,在Oracle(FSDM,OSON)及PostgreSQL(jsonb data)中,可以定义表中的某个域为JSON的二进制类型,之后在每条记录的这个域中存储一条经过编码的JSON记录;在MongoDB中,其将每条JSON数据解析并编码为一条二进制的BSON数据,进而独立的存储为一个完整的数据集。
方式二、由用户预先定义相应树状结构的JSON元数据,再按照一定的形式进行数据的组织和编码。具体的实现方式又分为以下2种:
(a)、树状结构数据拆分为若干张关系型数据库表的形式或者部分拆分为表的形式。例如Argo[Enabling JSON Document Stores in RelationalSystems],用户需要按照表的形式将JSON等树状结构数据拆分成为具体键值对(Key:Value)形式的域进行存储。
(b)、树状结构数据按照用户的预定义定义为语法树的形式。例如GoogleProtocols,Apache Parquet等,用户首先将树状结构的数据的内部结构定义为语法树的形式,进而由树状结构数据处理系统按照其对应的语法树对数据进行解析、存储和查询等相应的操作。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国科学院计算技术研究所,未经中国科学院计算技术研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201911240324.1/2.html,转载请声明来源钻瓜专利网。
- 数据显示系统、数据中继设备、数据中继方法、数据系统、接收设备和数据读取方法
- 数据记录方法、数据记录装置、数据记录媒体、数据重播方法和数据重播装置
- 数据发送方法、数据发送系统、数据发送装置以及数据结构
- 数据显示系统、数据中继设备、数据中继方法及数据系统
- 数据嵌入装置、数据嵌入方法、数据提取装置及数据提取方法
- 数据管理装置、数据编辑装置、数据阅览装置、数据管理方法、数据编辑方法以及数据阅览方法
- 数据发送和数据接收设备、数据发送和数据接收方法
- 数据发送装置、数据接收装置、数据收发系统、数据发送方法、数据接收方法和数据收发方法
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置





