CN112667662A - 一种基于json键值的解析sql和nosql的通用方法 - Google Patents
一种基于json键值的解析sql和nosql的通用方法 Download PDFInfo
- Publication number
- CN112667662A CN112667662A CN202011564484.4A CN202011564484A CN112667662A CN 112667662 A CN112667662 A CN 112667662A CN 202011564484 A CN202011564484 A CN 202011564484A CN 112667662 A CN112667662 A CN 112667662A
- Authority
- CN
- China
- Prior art keywords
- page
- data
- sql
- json
- value
- 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.)
- Granted
Links
Images
Abstract
本发明提供了一种基于json键值的解析sql和nosql的通用方法,包括:S1、将sql和nosql中的数据库定义统一的json key,设置各个键值的使用方法,键值即key值,封装属性值;S2、规范使用方式,统一接口的参数口径,参数统一为com.alibaba.fastjson.JSONArray和自定义的ys.bigdata.basic.pojo.Pager两个类;S3、合并两个集群的数据,查询数据后返回。实现接口应用层统一参数查询语法,数据分页做到nosql和sql统一,使冷数据和热数据能够融合,无感处理返回给调用方,适用于monogdb的nosql到所有sql的转换查询。
Description
技术领域
本发明涉及数据查询技术领域,具体的,本发明涉及一种基于json键值的解析sql和nosql的通用方法。
背景技术
随着业务数据的处理越来越多,流水类的热数据存储在nosql平台的mongodb集群,冷数据存储在sql平台的clickhouse集群,因为两个集群的查询语句写法差异较大,用户查询数据时体验不佳,查询效率不高,且数据的统一维护也不方便。
发明内容
为了克服现有技术的不足,本发明提供了一种基于json键值的解析sql和nosql的通用方法,以解决上述的技术问题。
本发明解决其技术问题所采用的技术方法是:一种基于json键值的解析sql和nosql的通用方法,其改进之处在于:包括S1、将sql和nosql中的数据库定义统一的jsonkey,json key即json的名称和类型,设置各个键值的使用方法,键值即key值,封装属性值;S2、规范使用方式,统一接口的参数口径,参数统一为com.alibaba.fastjson.JSONArray和自定义的ys.bigdata.basic.pojo.Pager两个类,com.alibaba.fastjson.JSONArray即过滤条件,ys.bigdata.basic.pojo.Pager即分页所包含的类;S3、合并两个集群的数据,查询数据后返回。
在上述方法中,步骤S1包括以下步骤:
S11、将sql和nosql中的数据库定义统一的json key的含义,json key即json的名称和类型;
S12、设置各个键值的使用方法,枚举各类运算符,返回数据时把字段值统一转换为大写;
S13、封装分页属性值,采用统一的limit+sort,定义翻页按钮的映射值,决定翻页按钮的置亮或置灰,limit+sort即先将数据排序,再截取limit的数量,limit表示返回具体多少条数据。
在上述方法中,步骤S2包括以下步骤:
S21、通过com.alibaba.fastjson.JSONArray和ys.bigdata.basic.pojo.Pager设置对应分页的属性值,完成对sql的转换;
S22、分页请求完成后,将接口返回的用于判断分页的最大最小值回传至接口;
S23、根据flag值来判断取最大还是最小值,然后填充至sql中,flag定义了4个值,分别对应了页面的4个按钮,0对应首页,1对应上页,2对应下页,-1对应尾页;
S24、获取Pager的isNexHasData和isUpHasData,通过isNexHasData和isUpHasData的值来判断当前sql返回的数据是否有上下页,自动生成页面效果,决定翻页按钮的置灰或置亮,isNexHasData判断页面是否还有下页,联动页面上的下页按钮,isUpHasData判断页面是否还有上页,联动页面上的上页按钮,当在首页时,isUpHasData判断没有上页,上页按钮置灰,isNexHasData判断有下页,下页按钮置亮;当在中间页时,isUpHasData判断有上页,上页按钮置亮,isNexHasData判断有下页,下页按钮置亮;当在尾页时,isUpHasData判断有上页,上页按钮置亮,isNexHasData判断没有下页,下页按钮置灰。
在上述方法中,步骤S24中,当sql返回的数据不足一页时,则翻页按钮均置灰。
在上述方法中,步骤S3包括以下步骤:
S31、传入指定的json key的参数;
S32、解析json,拿到指定的json值,解析成对应的数据库处理语法进行数据操作,生成sql和nosql语句;
S33、判断数据的日期,根据判断结果查询mongodb和clickhouse中相应的数据,数据的日期为3日之内的,则查询mongodb,数据的日期不在3日之内的,则查询clickhouse;
S34、将查询到的数据汇总返回。
本发明的有益效果是:实现接口应用层统一参数查询语法,数据分页做到nosql和sql统一,使冷数据和热数据能够融合,无感处理返回给调用方,适用于monogdb的nosql到所有sql的转换查询,保证在大数据量的情况下性能稳定,在跨集群查询时无缝兼容。
附图说明
附图1为本发明的流程图。
附图2为图1中的步骤S1的具体流程示意图。
附图3为图1中的步骤S3的具体流程示意图。
具体实施方式
下面结合附图和实施例对本发明进一步说明。
以下将结合实施例和附图对本发明的构思、具体结构及产生的技术效果进行清楚、完整地描述,以充分地理解本发明的目的、特征和效果。显然,所描述的实施例只是本发明的一部分实施例,而不是全部实施例,基于本发明的实施例,本领域的技术人员在不付出创造性劳动的前提下所获得的其他实施例,均属于本发明保护的范围。另外,专利中涉及到的所有联接/连接关系,并非单指构件直接相接,而是指可根据具体实施情况,通过添加或减少联接辅件,来组成更优的联接结构。本发明创造中的各个技术特征,在不互相矛盾冲突的前提下可以交互组合。
参照图1所示,本发明的一种基于json键值的解析sql和nosql的通用方法,包括以下的步骤:
S1、将sql和nosql中的数据库定义统一的json key,json key即json的名称和类型,设置各个键值的使用方法,键值即key值,封装属性值,
具体的,参照图2所示,将sql和nosql中的数据库定义统一的json key的含义,json key即json的名称和类型,保证键值统一,方便程序解析;设置各个键值的使用方法,枚举各类运算符,返回数据时把字段值统一转换为大写,sql和nosql中的数据库操作语法不统一,将数据库的操作类型映射成统一的枚举运算符,通过枚举值来判断当前具体是什么;sql数据库字段不区分大小写,nosql是严格区分的,在返回数据时把字段值统一转换为大写,以实现统一程序;封装分页属性值,采用统一的limit+sort,定义翻页按钮的映射值,决定翻页按钮的置亮或置灰,limit+sort即先将数据排序,再截取limit的数量,limit表示返回具体多少条数据。sql和nosql的分页处理实现逻辑有不同,通过采用取消跳页而只能一页页的向下或者向上翻页的方式,实现优化性能,统一分页方案,保证在大数据量的情况下性能稳定,在跨集群查询时无缝兼容。
S2、使用方式,统一接口的参数口径,参数统一为com.alibaba.fastjson.JSONArray和自定义的ys.bigdata.basic.pojo.Pager两个类,com.alibaba.fastjson.JSONArray即过滤条件,ys.bigdata.basic.pojo.Pager即分页所包含的类,
具体的,通过com.alibaba.fastjson.JSONArray和ys.bigdata.basic.pojo.Pager设置对应分页的属性值,完成对sql的转换,Jsonarray用于条件映射,按照统一定义的json key的标准来传入对应的键值,根据指定的键值解析成对应的sql,Pager即分页所包含的类,类里面包含了分页所需要的属性,用于分页以及汇总数据的字段设置;此类没有跳页的操作方式,每次请求完后,将接口返回的最大最小值回传至接口;设置了最大最小值,会根据flag值来判断取最大还是最小值,然后填充至sql中,flag定义了4个值,分别对应了页面的4个按钮,0对应首页,1对应上页,2对应下页,-1对应尾页;获取Pager的isNexHasData和isUpHasData,通过isNexHasData和isUpHasData的值来判断当前sql返回的数据是否有上下页,自动生成页面效果,决定翻页按钮的置灰或置亮,isNexHasData判断页面是否还有下页,联动页面上的下页按钮,isUpHasData判断页面是否还有上页,联动页面上的上页按钮,当在首页时,isUpHasData判断没有上页,上页按钮置灰,isNexHasData判断有下页,下页按钮置亮;当在中间页时,isUpHasData判断有上页,上页按钮置亮,isNexHasData判断有下页,下页按钮置亮;当在尾页时,isUpHasData判断有上页,上页按钮置亮,isNexHasData判断没有下页,下页按钮置灰;进一步的,当sql返回的数据不足一页时,则翻页按钮均置灰。
S3、合并两个集群的数据,查询数据后返回,
具体的,参照图3所示,传入指定的json key的参数;解析json,拿到指定的json值,解析成对应的数据库处理语法进行数据操作,生成sql和nosql语句;判断数据的日期,根据判断结果查询mongodb和clickhouse中相应的数据,数据的日期为3日之内的,则查询mongodb,数据的日期不在3日之内的,则查询clickhouse;将查询到的数据汇总返回。
本发明实现接口应用层统一参数查询语法,数据分页做到nosql和sql统一,使冷数据和热数据能够融合,无感处理返回给调用方,适用于monogdb的nosql到所有sql的转换查询,保证在大数据量的情况下性能稳定,在跨集群查询时无缝兼容。
以上是对本发明的较佳实施进行了具体说明,但本发明创造并不限于所述实施例,熟悉本领域的技术人员在不违背本发明精神的前提下还可做出种种的等同变形或替换,这些等同的变形或替换均包含在本申请权利要求所限定的范围内。
Claims (5)
1.一种基于json键值的解析sql和nosql的通用方法,其特征在于:所述方法包括以下的步骤:
S1、将sql和nosql中的数据库定义统一的json key,json key即json的名称和类型,设置各个键值的使用方法,键值即key值,封装属性值;
S2、规范使用方式,统一接口的参数口径,参数统一为com.alibaba.fastjson.JSONArray和自定义的ys.bigdata.basic.pojo.Pager两个类,com.alibaba.fastjson.JSONArray即过滤条件,ys.bigdata.basic.pojo.Pager即分页所包含的类;
S3、合并两个集群的数据,查询数据后返回。
2.如权利要求1所述的一种基于json键值的解析sql和nosql的通用方法,其特征在于:所述步骤S1包括以下步骤:
S11、将sql和nosql中的数据库定义统一的json key的含义,json key即json的名称和类型;
S12、设置各个键值的使用方法,枚举各类运算符,返回数据时把字段值统一转换为大写;
S13、封装分页属性值,采用统一的limit+sort,定义翻页按钮的映射值,决定翻页按钮的置亮或置灰,limit+sort即先将数据排序,再截取limit的数量,limit表示返回具体多少条数据。
3.如权利要求1所述的一种基于json键值的解析sql和nosql的通用方法,其特征在于:所述步骤S2包括以下步骤:
S21、通过com.alibaba.fastjson.JSONArray和ys.bigdata.basic.pojo.Pager设置对应分页的属性值,完成对sql的转换;
S22、分页请求完成后,将接口返回的用于判断分页的最大最小值回传至接口;
S23、根据flag值来判断取最大还是最小值,然后填充至sql中,flag定义了4个值,分别对应了页面的4个按钮,0对应首页,1对应上页,2对应下页,-1对应尾页;
S24、获取Pager的isNexHasData和isUpHasData,通过isNexHasData和isUpHasData的值来判断当前sql返回的数据是否有上下页,自动生成页面效果,决定翻页按钮的置灰或置亮,isNexHasData判断页面是否还有下页,联动页面上的下页按钮,isUpHasData判断页面是否还有上页,联动页面上的上页按钮,当在首页时,isUpHasData判断没有上页,上页按钮置灰,isNexHasData判断有下页,下页按钮置亮;当在中间页时,isUpHasData判断有上页,上页按钮置亮,isNexHasData判断有下页,下页按钮置亮;当在尾页时,isUpHasData判断有上页,上页按钮置亮,isNexHasData判断没有下页,下页按钮置灰。
4.如权利要求1所述的一种基于json键值的解析sql和nosql的通用方法,其特征在于:所述步骤S24中,当sql返回的数据不足一页时,则翻页按钮均置灰。
5.如权利要求1所述的一种基于json键值的解析sql和nosql的通用方法,其特征在于:所述步骤S3包括以下步骤:
S31、传入指定的json key的参数;
S32、解析json,拿到指定的json值,解析成对应的数据库处理语法进行数据操作,生成sql和nosql语句;
S33、判断数据的日期,根据判断结果查询mongodb和clickhouse中相应的数据,数据的日期为3日之内的,则查询mongodb,数据的日期不在3日之内的,则查询clickhouse;
S34、将查询到的数据汇总返回。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011564484.4A CN112667662B (zh) | 2020-12-25 | 2020-12-25 | 一种基于json键值的解析sql和nosql的通用方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011564484.4A CN112667662B (zh) | 2020-12-25 | 2020-12-25 | 一种基于json键值的解析sql和nosql的通用方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112667662A true CN112667662A (zh) | 2021-04-16 |
CN112667662B CN112667662B (zh) | 2022-11-08 |
Family
ID=75409312
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011564484.4A Active CN112667662B (zh) | 2020-12-25 | 2020-12-25 | 一种基于json键值的解析sql和nosql的通用方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112667662B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113254519A (zh) * | 2021-05-28 | 2021-08-13 | 北京奇岱松科技有限公司 | 多源异构数据库的访问方法、装置、设备和存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017133538A1 (zh) * | 2016-02-05 | 2017-08-10 | 中兴通讯股份有限公司 | 一种实现数据查询的方法和服务器 |
US20170300477A1 (en) * | 2015-03-11 | 2017-10-19 | Automated Insights, Inc. | Platform for natural language generation editor |
CN107491561A (zh) * | 2017-09-25 | 2017-12-19 | 北京航空航天大学 | 一种基于本体的城市交通异构数据集成系统及方法 |
CN108090154A (zh) * | 2017-12-08 | 2018-05-29 | 广州市申迪计算机系统有限公司 | 一种异构多源数据融合查询方法及装置 |
CN109656943A (zh) * | 2018-12-12 | 2019-04-19 | 国网辽宁省电力有限公司信息通信分公司 | 屏蔽异构数据库查询复杂度的数据服务方法 |
-
2020
- 2020-12-25 CN CN202011564484.4A patent/CN112667662B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170300477A1 (en) * | 2015-03-11 | 2017-10-19 | Automated Insights, Inc. | Platform for natural language generation editor |
WO2017133538A1 (zh) * | 2016-02-05 | 2017-08-10 | 中兴通讯股份有限公司 | 一种实现数据查询的方法和服务器 |
CN107491561A (zh) * | 2017-09-25 | 2017-12-19 | 北京航空航天大学 | 一种基于本体的城市交通异构数据集成系统及方法 |
CN108090154A (zh) * | 2017-12-08 | 2018-05-29 | 广州市申迪计算机系统有限公司 | 一种异构多源数据融合查询方法及装置 |
CN109656943A (zh) * | 2018-12-12 | 2019-04-19 | 国网辽宁省电力有限公司信息通信分公司 | 屏蔽异构数据库查询复杂度的数据服务方法 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113254519A (zh) * | 2021-05-28 | 2021-08-13 | 北京奇岱松科技有限公司 | 多源异构数据库的访问方法、装置、设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN112667662B (zh) | 2022-11-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110489445B (zh) | 一种基于多形态复合的海量数据快速查询方法 | |
CN108280276B (zh) | 基于Revit软件楼梯模型标准创建和用量统计方法 | |
CN111198898B (zh) | 大数据查询方法及大数据查询装置 | |
CN112667662B (zh) | 一种基于json键值的解析sql和nosql的通用方法 | |
CN113626223A (zh) | 一种接口调用方法和装置 | |
CN114328682A (zh) | 一种基于规则引擎的数据处理方法、装置、设备及介质 | |
CN105550361A (zh) | 日志处理方法及装置和问答信息处理方法及装置 | |
CN113792071A (zh) | Sql智能生成并调优组件和方法 | |
CN106055641A (zh) | 一种面向智能机器人的人机交互方法及装置 | |
CN116578585B (zh) | 数据查询方法、装置、电子设备及存储介质 | |
CN113722337B (zh) | 业务数据确定方法、装置、设备及存储介质 | |
CN111177234A (zh) | 一种文档型数据文件快速处理装置及方法 | |
CN110728121B (zh) | 基于现有接口实现零开发的数据导入系统及方法 | |
CN112559837A (zh) | 一种业务电子档案开发方法 | |
CN110990000B (zh) | Mvc模式设计模型层的数据请求处理方法、装置及设备 | |
CN113221528A (zh) | 基于openEHR模型的临床数据质量评估规则的自动生成与执行方法 | |
CN107844639B (zh) | 一种项目标准结构自动生成方法及系统 | |
CN112862323A (zh) | 智慧城市评价指标展示方法及装置 | |
CN117669737B (zh) | 一种端到端地理行业大语言模型构建及使用方法 | |
CN115567340B (zh) | Can总线的测试工程生成方法、装置、设备及介质 | |
CN113065325B (zh) | 一种基于OpenXml的Excel文档分析方法及系统 | |
CN111460792A (zh) | 一种辅助编校方法与装置、存储介质 | |
CN115204141A (zh) | 数据处理方法、装置、电子设备及存储介质 | |
CN113704320B (zh) | 数据处理方法、装置、电子设备及存储介质 | |
CN112380827B (zh) | 一种pptx文档批量处理方法及终端 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |