[发明专利]审核执行ClickhouseDDLSQL语义语法的方法及装置在审
申请号: | 202111421013.2 | 申请日: | 2021-11-26 |
公开(公告)号: | CN114282260A | 公开(公告)日: | 2022-04-05 |
发明(设计)人: | 陈武;艾杰;贾亚武 | 申请(专利权)人: | 上海鱼尔网络科技有限公司 |
主分类号: | G06F21/62 | 分类号: | G06F21/62 |
代理公司: | 上海汉声知识产权代理有限公司 31236 | 代理人: | 胡晶 |
地址: | 201615 上海市松*** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 审核 执行 clickhouseddlsql 语义 语法 方法 装置 | ||
1.一种审核执行Clickhouse DDL SQL语义语法的方法,其特征在于,包括:
当Clickhouse在生产环境做DDL变更时,通过Clickhouse元数据获取生产环境业务数据库和业务表结构;
读取Clickhouse SQL数据,对SQL数据进行预处理,得到DDL SQL语句;
从Clickhouse SQL数据中解析出数据库名和表名,对Clickhouse SQL数据中的数据库名和表名进行预处理;
判断表名是分布式表还是本地表,若是分布式表,则在生产环境获取本地表,并在测试环境建立相应的临时表;若是本地表,则在测试环境执行DDL SQL语句,检测是否出现SQL异常;
若无SQL异常,则在生产环境中执行DDL SQL语句,删除测试环境的临时表。
2.如权利要求1所述的审核执行Clickhouse DDL SQL语义语法的方法,其特征在于,所述读取Clickhouse SQL数据,对SQL数据进行预处理进一步包括:
对Clickhouse SQL数据按分号进行分割,得到各DDL SQL语句;
采用空字符串替换DDL SQL语句中的转义字符。
3.如权利要求1所述的审核执行Clickhouse DDL SQL语义语法的方法,其特征在于,所述对Clickhouse SQL数据中的数据库名和表名进行预处理进一步包括:
识别Clickhouse SQL数据中表名上带的数据库名,将所述数据库名替换为测试数据库名,得到在测试环境需建立的表名。
4.如权利要求1所述的审核执行Clickhouse DDL SQL语义语法的方法,其特征在于,所述判断表名是分布式表还是本地表进一步包括:
以local为关键字,判断表名是否以local结尾,若是,则为本地表,若否,则为分布表。
5.如权利要求1所述的审核执行Clickhouse DDL SQL语义语法的方法,其特征在于,所述在测试环境执行DDL SQL语句,检测是否出现SQL异常进一步包括:
通过Golang建立Clickhouse数据库连接,在测试环境中执行DDL SQL语句,若执行成功,则SQL审核通过;若执行失败,则SQL审核失败,获取报错信息并返回。
6.如权利要求1所述的审核执行Clickhouse DDL SQL语义语法的方法,其特征在于,所述在生产环境中执行DDL SQL语句进一步包括:
通过Golang建立Clickhouse数据库连接,在生产环境中执行DDL SQL语句,若执行成功,则审核通过;若执行失败,则审核失败,获取报错信息并返回。
7.一种审核执行Clickhouse DDL SQL语义语法的装置,其特征在于,包括:
数据获取模块,用于当Clickhouse在生产环境做DDL变更时,通过Clickhouse元数据获取生产环境业务数据库和业务表结构,同时在测试环境建立临时表;
数据预处理模块,用于读取Clickhouse SQL数据,对SQL数据进行预处理,得到DDL SQL语句;
表名处理模块,用于从Clickhouse SQL数据中解析出数据库名和表名,对ClickhouseSQL数据中的数据库名和表名进行预处理;
审核模块,用于判断表名是分布式表还是本地表,若是分布式表,则在生产环境获取本地表,并在测试环境建立相应的本地表;若是本地表,则在测试环境执行DDL SQL语句,检测是否出现SQL异常;若无SQL异常,则在生产环境中执行DDL SQL语句,删除测试环境的临时表。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海鱼尔网络科技有限公司,未经上海鱼尔网络科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202111421013.2/1.html,转载请声明来源钻瓜专利网。