[发明专利]一种商业报表数据的分布式列式数据存储转换方法及系统有效
申请号: | 201911386805.3 | 申请日: | 2019-12-29 |
公开(公告)号: | CN111241091B | 公开(公告)日: | 2023-05-16 |
发明(设计)人: | 张勇;范羊羊 | 申请(专利权)人: | 云帐房网络科技有限公司 |
主分类号: | G06F16/22 | 分类号: | G06F16/22;G06F16/27 |
代理公司: | 南京科知维创知识产权代理有限责任公司 32270 | 代理人: | 杜依民 |
地址: | 210000 江苏省南*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 商业 报表 数据 分布式 存储 转换 方法 系统 | ||
1.一种商业报表数据的分布式列式数据存储转换方法,其特征在于具体步骤如下:
步骤S1:环境准备,搭建Hbase集群环境、可运行的springJS环境;
步骤S2:设计报表,在单元格中设置公式,并保存设计完成的json格式的报表模版到mysql数据库中;
步骤S3:生成报表数据,解析json报表数据,生成单元格对象,计算单元格层级关系;
步骤S4:存储报表数据,包括固定行存储和浮动行存储,设计浮动行和非浮动行rowkey,设置hbase列族名称cells,完成报表列式存储;
步骤S5:根据存储数据和报表模版数据,生成可供spreadJs展示的json数据;
步骤S2所述的在单元格中设置的公式包含系统公式和业务数据取值公式, 单元格设置的为系统公式、或业务数据公式、或,业务数据公式和系统公式的组合公式,形成可执行的公式,对于单元格之间依赖的公式使用类[A1]的方式,报表sheet页之间的引用使用{sheetName}![A1]方式;
步骤S4所述的设计浮动行和非浮动行rowkey的步骤,所述浮动行和非浮动行rowkey分别为企业ID_会计年度_会计期间_报表ID_报表版本号_浮动行标识_扩展字段、企业ID_会计年度_会计期间_报表ID__报表名称_报表版本号_报表名称_非浮动行标识_扩展字段。
2.如权利要求1所述的商业报表数据的分布式列式数据存储转换方法,其特征在于:步骤S3所述的生成单元格对象的步骤,所述对象包含sheetName,sheetId,单元格公式,单元格位置,报表ID。
3.如权利要求1所述的一种商业报表数据的分布式列式数据存储转换方法,其特征在于:步骤S3所述的计算单元格层级关系的步骤,没有被引用的单元格作为最底层单元格,只引用了最底层的单元格作为第二层单元格。
4.如权利要求1所述的商业报表数据的分布式列式数据存储转换方法,其特征在于:步骤S4所述的设置hbase列族名称cells的步骤,所述cells列族中包含单元格位置和单元格的值,生成报表数据的时间。
5. 如权利要求3所述的商业报表数据的分布式列式数据存储转换方法,其特征在于:步骤S3所述的计算单元格层级关系的步骤,多线程执行底层单元格,使用scriptEngine或者AviatorEvaluator公式引擎执行单元格中的js公式或者java公式,逐层执行单元格公式。
6.如权利要求1所述的商业报表数据的分布式列式数据存储转换方法,其特征在于:所述固定行存储包括如下步骤
a)计算公式得出数据;
b)非浮动行结果集按照每个报表sheet页的方式返回;
c)设置非浮动行rowkey,企业ID_会计年度_会计期间_报表ID_报表版本号_非浮动行标识_扩展字段;
d)每个单元格设置cells做列族,设置单元格位置信息,和单元格的值作为hbase的put对象;
e)生成数据插入的时间;
f)循环按照报表sheet页插入Hbase中,完成报表列式存储;
所述浮动行存储包括如下步骤:
a)计算公式得出数据
b)浮动行结果集按照每个报表sheet页的方式返回
c)设置浮动行rowkey,企业ID_会计年度_会计期间_报表ID_报表版本号_浮动行标识_扩展字段
d)每个单元格设置cells做列族,设置单元格位置信息和浮动行的行号组合成唯一的位置信息,单元格的值作为保存到对象
e)生成数据插入的时间
f)循环按照报表sheet页插入Hbase中,完成报表列式存储。
7.一种商业报表数据的分布式列式数据存储转换系统,包括设计报表模块、存储报表模块、解析报表模块、执行公式计算报表模块、展示报表模块;
所述设计报表模块,用于在单元格中设置公式,并保存设计完成的json格式的报表模版到mysql数据库中;所述公式包含系统公式和业务数据取值公式, 单元格设置的为系统公式、或业务数据公式、或,业务数据公式和系统公式的组合公式,形成可执行的公式,对于单元格之间依赖的公式使用类[A1]的方式,报表sheet页之间的引用使用{sheetName}![A1]方式;
所述存储报表模块用于设计浮动行和非浮动行rowkey,设置hbase列族名称cells,完成报表列式存储;所述浮动行和非浮动行rowkey分别为企业ID_会计年度_会计期间_报表ID_报表版本号_浮动行标识_扩展字段、企业ID_会计年度_会计期间_报表ID__报表名称_报表版本号_报表名称_非浮动行标识_扩展字段;
所述解析报表模块,用于生成报表数据,解析json报表数据,生成单元格对象,计算单元格层级关系;
所述执行公式计算报表模块,用于使用scriptEngine或者AviatorEvaluator公式引擎执行单元格中的js公式或者java公式,逐层执行单元格公式,第一层数据执行完成,把第二层数据中引用了第一层数据的单元格替换掉,再次多线程使用公式引擎执行公式,得到第二层级的数据,以此类推得出所有单元格数据;
所述展示报表模块,用于根据存储数据和报表模版数据,生成可供spreadJs展示的json数据。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于云帐房网络科技有限公司,未经云帐房网络科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201911386805.3/1.html,转载请声明来源钻瓜专利网。
- 上一篇:一种智能抄表装置
- 下一篇:级联式人脸图像优选方法、系统、设备及可读存储介质
- 数据显示系统、数据中继设备、数据中继方法、数据系统、接收设备和数据读取方法
- 数据记录方法、数据记录装置、数据记录媒体、数据重播方法和数据重播装置
- 数据发送方法、数据发送系统、数据发送装置以及数据结构
- 数据显示系统、数据中继设备、数据中继方法及数据系统
- 数据嵌入装置、数据嵌入方法、数据提取装置及数据提取方法
- 数据管理装置、数据编辑装置、数据阅览装置、数据管理方法、数据编辑方法以及数据阅览方法
- 数据发送和数据接收设备、数据发送和数据接收方法
- 数据发送装置、数据接收装置、数据收发系统、数据发送方法、数据接收方法和数据收发方法
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置