【技术实现步骤摘要】
一种JSON数据的语法树提取方法
本专利技术涉及数据处理方法,具体来说,涉及JSON数据存储与查询领域,更具体地说,涉及一种JSON数据的语法树(树状结构数据的元数据)提取方法,并基于此方法进行的数据处理方法、查询方法及系统。
技术介绍
随着计算机网络和大数据处理技术的发展,传统关系型数据已经越来越不能满足网络和大数据环境下对数据定义和使用的要求。而以JSON为代表的半结构化数据因为既能够充分的表达编程语言中对象(class),同时还能够根据数据的格式变化对原有的数据格式进行修改和扩充,故而其在实际环境中被广泛的使用。在传统的关系型数据库中,用户将记录导入到数据库之前需要预先以数据表的形式定义记录的元信息:例如表中有哪些属性,各属性分别是什么类型等。而在使用JSON数据时,不需要预先定义记录的元信息:用户在使用JSON数据前不需要预先定义数据集中记录的内部结构,包括域的名称、值的类型及相关的嵌套结构等。当用户的需求发生改变时,例如改变记录内部的结构、改变某一个域的类型等,记录的结构可以随时按照需求的变化进行相应的改变,不需要修改记录相关的数据元信息以及之前产生的记录的内部结构。这样,JSON数据为用户提供了足够强的语义的灵活性:用户不需要预先定义JSON数据的元信息;同时当需求发生变化时,用户可以随时修改JSON数据的内部结构。现阶段对JSON数据处理(包括数据解析、存储和查询等相关的操作)有以下的三种方式:方式一、不提取记录内部结构的元信息(即JSON数据中的数据结构),将其作为一个整体存储 ...
【技术保护点】
1.一种JSON数据的语法树提取方法,其特征在于,包括:/nS0、对给定的数据集中的JSON数据进行采样,获取预设采样规模的多条JSON记录;记录采样到的每一条JSON记录的内部结构对应的JSON记录结构树,其中,每一条JSON记录的每一个域与其对应JSON记录结构树中的一个节点关联;/nS1、遍历步骤S0中记录的所有的JSON记录结构树以累加生成一个统计结构树,并在统计结构树中的每一个节点设置一个计数器以记录该节点在所有JSON记录结构树中出现的总次数;/nS2、遍历统计结构树中每个节点的计数器,将计数器中记录的数值大于预设阈值的节点划分为非稀疏节点,与非稀疏节点关联的域为非稀疏域;将计数器记录的数值小于或等于预设阈值的节点划分为稀疏节点,与稀疏节点关联的域为稀疏域;/nS3、对域的特征进行识别,基于特征识别结果对稀疏域进行归类,特征识别结果相同的稀疏域归类到一起,形成相同特征的域的归类;/nS4、基于采样的JSON记录划分出的非稀疏域、相同特征的域的归类生成语法树的初始状态:/nS5、根据步骤S4生成的语法树的初始状态,对给定的数据集中的所有JSON记录逐条进行解析,动态更新数据集 ...
【技术特征摘要】
1.一种JSON数据的语法树提取方法,其特征在于,包括:
S0、对给定的数据集中的JSON数据进行采样,获取预设采样规模的多条JSON记录;记录采样到的每一条JSON记录的内部结构对应的JSON记录结构树,其中,每一条JSON记录的每一个域与其对应JSON记录结构树中的一个节点关联;
S1、遍历步骤S0中记录的所有的JSON记录结构树以累加生成一个统计结构树,并在统计结构树中的每一个节点设置一个计数器以记录该节点在所有JSON记录结构树中出现的总次数;
S2、遍历统计结构树中每个节点的计数器,将计数器中记录的数值大于预设阈值的节点划分为非稀疏节点,与非稀疏节点关联的域为非稀疏域;将计数器记录的数值小于或等于预设阈值的节点划分为稀疏节点,与稀疏节点关联的域为稀疏域;
S3、对域的特征进行识别,基于特征识别结果对稀疏域进行归类,特征识别结果相同的稀疏域归类到一起,形成相同特征的域的归类;
S4、基于采样的JSON记录划分出的非稀疏域、相同特征的域的归类生成语法树的初始状态:
S5、根据步骤S4生成的语法树的初始状态,对给定的数据集中的所有JSON记录逐条进行解析,动态更新数据集对应的语法树。
2.根据权利要求1所述的一种JSON数据的语法树提取方法,其特征在于,所述步骤S0中记录采样到的每一条JSON记录的内部结构对应的JSON记录结构树包括如下操作:
对JSON记录中的域的嵌套关系进行解析,从最外层的域开始,在JSON记录结构树中记录最外层的域关联的节点;
以递归方式对具有嵌套关系的域自外而内,层层解析,在JSON记录结构树中记录每一层域关联的节点,直至解析到域的值为原子类型。
3.根据权利要求1所述的一种JSON数据的语法树提取方法,其特征在于,所述步骤S1中针对每一个JSON记录结构树,执行如下步骤:
S11、遍历JSON记录结构树中的每一个节点;
S12、针对遍历到的当前节点,查找统计结构树中是否存在与之相同的节点,若存在,则统计树中相同的节点对应的计数器加1;若不存在,则在统计结构树中产生一个与当前节点相同的节点并设置计数器。
4.根据权利要求1所述的一种JSON数据的语法树提取方法,其特征在于,将预设阈值设置为从数据集中采样得到的所有JSON记录中所有域的出现的总次数的80%。
5.根据权利要求1所述的一种JSON数据的语法树提取方法,其特征在于,域的特征包括域的嵌套关系、域名和域值的类型及单条JSON记录中域值出现的次数。
6.根据权利要求1所述的一种JSON数据的语法树提取方法,其特征在于,所述步骤S4包括:
对于非...
【专利技术属性】
技术研发人员:陈世敏,王智义,祁琦,
申请(专利权)人:中国科学院计算技术研究所,
类型:发明
国别省市:北京;11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。