[发明专利]一种树状结构数据处理方法及系统有效
申请号: | 201710178695.6 | 申请日: | 2017-03-23 |
公开(公告)号: | CN107092656B | 公开(公告)日: | 2019-12-03 |
发明(设计)人: | 陈世敏;王智义 | 申请(专利权)人: | 中国科学院计算技术研究所 |
主分类号: | G06F16/84 | 分类号: | G06F16/84;G06F16/81;G06F16/25 |
代理公司: | 11006 北京律诚同业知识产权代理有限公司 | 代理人: | 祁建国;梁挥<国际申请>=<国际公布>= |
地址: | 100080 北*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 树状 结构 数据处理 方法 系统 | ||
1.一种树状结构数据处理方法,其特征在于,包括:
步骤1,设置用于描述与定义Protocol Buffers与JSON文本数据中域的二进制数据类型、嵌套结构的定义;建立半结构化数据的定义,其中对于Protocol Buffers的文本数据,在解析数据前首先根据其语法树定义文件中对语法树定义动态生成语法树,JSON格式的数据在数据解析的过程中根据其数据中的格式与内容动态生成JSON格式的数据语法树的定义;读取半结构化数据,并将其解析为行式或者列式的二进制格式数据,其中在解析的过程中,动态生成或根据定义建立语法树,包括:建立JSON语法树:在解析数据的过程中通过数据动态的建立语法树,其中假设每个域的值的类型是不会改变的且数组中的成员类型都是一致的,在建立语法树的过程中,根据数据中值的类型确定其值的类型,且将值为数组的JSON的域定义为重复出现,其余节点均定义为不一定会出现,在解析过程中,先根据parent父亲节点ID与field name对应的域名通过符号表查找有无相关的结构定义,如果没有,则向语法树中添加相关的节点,否则对节点的值进行解析;建立Protocol Buffers语法树:Protocol Buffers在proto文件中定义message作为新的数据类型,其中包含的每个域为基本的数据类型或其他的复合类型的数据,在建立Protocol Buffers语法树的过程中,首先解析proto文件,扩展新的数据类型,之后再按照指定的根节点将数据类型的定义逐一扩展并组装成为数据结构的语法树;以及存储半结构化数据的定义,包括:定义填充半结构化数据中语法树的每一个节点,节点中不但描述节点本身的相关信息,还通过语法树中节点的ID将节点相互关联,形成树型结构;
步骤2,存储行式或列式的所述二进制格式数据,其中实现对行式或列式的所述二进制格式数据相互转换,以及将所述二进制格式数据直接输出为文本格式的JSON数据;
步骤3,基于所述二进制格式数据,对半结构化数据进行查询操作。
2.如权利要求1所述的树状结构数据处理方法,其特征在于,所述步骤1还包括对半结构化数据进行解析:以单条记录为单位逐层嵌套存储的行式存储结构;以数据树状结构定义中叶子为单位存储的列式存储结构。
3.如权利要求1所述的树状结构数据处理方法,其特征在于,定义二进制格式的数据,用于行式或列式的二进制格式数据的存储与运算:
1)整形数:TypeInt(8/16/32/64)分别表示8/16/32/64位的整形数;
2)浮点数:Type(Float/Double)分别表示float和double类型的浮点数;
3)字符串:TypeString表示的字符串;
4)时间戳:TypeTimeStamp表示时间戳,内部用TypeInt64具体实现。
4.如权利要求1所述的树状结构数据处理方法,其特征在于,所述步骤3包括当执行查询操作时,先根据查询语句中的内容生成本次查询所需建立的操作树,所述操作树中的每一个节点都是一个SQL操作。
5.如权利要求1所述的树状结构数据处理方法,其特征在于,还包括扩展SQL的查询语法,如下所示:
(1)“.”:用于间隔域的路径表达式中的嵌套层次;
(2)“any”:表示重复的域中任意的一个数值;
(3)“all”:表示重复的域中所有的数值;
输出的结果为:JSON格式的数据;忽略嵌套结构的类JSON数据。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国科学院计算技术研究所,未经中国科学院计算技术研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710178695.6/1.html,转载请声明来源钻瓜专利网。
- 上一篇:数控切割机切割头升降定位装置
- 下一篇:万向防撞夹持器