全网唯一标准王
(19)国家知识产权局 (12)发明 专利申请 (10)申请公布号 (43)申请公布日 (21)申请 号 202210529082.3 (22)申请日 2022.05.16 (71)申请人 翁秀萍 地址 350012 福建省福州市 鼓楼区洪山 镇 金牛山高校住宅小区4#710 (72)发明人 翁秀萍  (51)Int.Cl. G06F 16/22(2019.01) G06F 16/2455(2019.01) G06F 3/04842(2022.01) G06F 3/04847(2022.01) (54)发明名称 实现基于关联池 数据表自动拼接生 成sql的 方法及装置 (57)摘要 本发明涉及一种实现数据表之间自动关联 拼接生成sql的方法和装置, 该方法包括以下步 骤: 第一步骤, 基于关联解析方式, 解析出和此表 相关的所有sql, 获取字段组, 并对这些字段组逐 一进行验证, 获取表主键, 存储一张数据表主键 库; 第二步骤, 通过对sql血缘解析以及关联解 析, 自动获取所有sql的表之间的关联关系, 在根 据关联池关联方法, 生成关联池; 第三步骤, 基于 第一步及第二步, 用户在装置中执行的图形化操 作, 拖拉生成表元素, 通过连线完成表间连接, 通 过表间关联池技术, 自动完成两表之间关联关 系, 同时用户可结合报表需求, 添加定制化的过 滤条件, 完成表间关联拼接后, 通过主界面手工 点选所需的字段信息, 自动完成sql自动拼接工 作。 权利要求书2页 说明书5页 附图11页 CN 114896248 A 2022.08.12 CN 114896248 A 1.一种实现数据表之间自动关联拼接生成sql的方法,  所述方法包括以下操作: 基于关联解析方式, 解析出和此表相关的所有sql, 获取字段组, 并对这些字段组逐一 进行验证, 获取表主键, 存 储一张数据表主键库的第一操作; 通过对sql血缘解析以及关联解析, 自动获取所有sql的表之间的关联关系, 在根据关 联池关联 方法, 生成关联池的第二操作; 第三操作包含用户在装置中执行的图形化操作, 拖拉生成表元素, 通过连线完成表间 连接, 通过表间关联池技术, 自动完成两表之间关联关系, 同时用户可结合报表需求, 添加 定制化的过滤条件, 完成表间关联拼接后, 通过主界面手工点选所需的字段信息, 自动完成 sql自动拼接 工作。 2.根据权利要求1所述的方法, 其中第 一操作构建表的主键方法包括以下内容: 第 一种 方式是通过手工维护表主键表, 用户根据数据字典的表中所提供 的表主键, 表主键整合成 主键表, 或者是根据对表进行探索, 把探索到的表整合到主键表。 3.第二种方式通过对sql进行挖掘, 通过关联解析, 自动获取表之间的关联字段, 把涉 及的关联字段整合成字段组; 解析出和此表相关的所有sql, 获取字段组, 再通过去重排序 后, 对所有的关联字段组进行 逐一跑数验证, 判断关联字段组合是否为该表主键 。 4.根据权利要求1所述的方法, 其中第二操作构建关联池方法包括以下内容: 通过对 sql进行挖掘, 通过对sql血缘解析以及关联解析, 自动获取所有sql的表之间的关联关系, 在根据关联池关联 方法, 生成关联池。 5.其中关联池由2种形式, 一种是扩展型关联池, 另外一种是 单一型关联池。 6.其中单一型联池, 是直接把sql进行关联解析得到两表间的对应的两个字段, 由于该 字段属性多样性, 不 适合扩展, 直接构建成单一型关联池。 7.其中扩展型关联池, 是指有2个或2个以上的单一型关联池, 由于有共同的关联字段, 扩展权利。 8.同时可以通过手工维护表关联池, 用户逐一阅读所有的sql代码, 找出所有两表之间 的关联关系, 以及临时表, 嵌套表的血缘关系, 整理出表间的相关关联关系, 对表关联池进 行补充。 9.如权利要求3所述的方法, 构建 关联池的其 他方案: 一种是构建字段名称关联池, 通过扩展型关联池, 进行字段名称分析, 找出该字段名称 分布在50%前面的字段, 构建以字段名相近的关联池, 比如客户号的扩展 型字段名称一般有 cust_id,cust_num,cust_n o等相近的字段命名方法, 可以构建字段名称相近的关联池; 另外一种是构建字段解析关联池, 通过扩展型关联池, 进行字段注释名称分析, 找出该 字段注释名称分布在50%前面的字段注释, 构建以字段名相近的字段注释关联池, 同样以客 户号为例, 在平常客户注释命名, 会有客户id, 客户id号, 客户编号, 当事人编号, 申请人编 号等相近的字段注释关联池。 10.此方法可以结合语义 解析, 构建字段注释相近关联池。 11.根据权利要求1所述的方法, 其中第三操作包括以下内容: 第一步根据用户在屏幕中执行的图形化操作, 在界面容器内创建所要关联表元素信 息, 通过图形化操作建立两个数据表之间关联关系; 第二步点击设置两表关联关系, 系统根据副表的主键, 以及两张关联表之间的关联关权 利 要 求 书 1/2 页 2 CN 114896248 A 2系, 自动形成两表关联关系, 如果两表间的关联关系, 不能覆盖副表主键涉及的表字段, 提 示用户选用ro w_number()函数去重, 或者使用group  by函数去重; 第三步表间关联关系连接完成后, 通过主界面手工点选所需的字段信息, 实现图形化 字段生成; 第四步字段选择完成后, 点击sql 生成按钮, 完成sql自动拼接 工作。 12.如权利要求5所述的方法, 其中, 针对两表之间通过关联池关联关系而关联起来的 两个数据表, 结合被关联表的主键 外, 生成一个拼接方案的步骤 包括: 第一步判断副表的类型, 表属于全量表、 增量表、 拉链 表、 流水表、 快照表中哪一种; 第二步通过关联池获取两表的处于统一关联池id, 所 涉及两个表的所有字段; 第三步判断副表主键是否存在, 副表主键存在, 判断主键所涉及的字段是否都在第二 步的关联字段池, 如果主键所有关联字段均处于关联池, 可以形成自动关联关系; 如果主键 所涉及的关联字段如果不全在4中 的关联池, 则提示用户转成row_number()或group  by方 式关联, 形成两表关联关系, 特别针对副表类型为增量表或者流水表, 推荐使用gr oup by方 式关联; 如果表主键不存在, 但两表存在关联字段, 则 提示用户通过row_number()或group  by 方式关联, 形成两表关联关系; 如果关联池获取两表所有字段均不处于 关联池, 则提示用户 无法自动关联。 13.如权利要求6所述的方法, 副表主键需要区分是关联字段以及过滤条件字段, 只需 要判断关联字段是否在关联池, 并通过关联池方式关联, 过滤条件字段只需添加条件过滤, 不需要判断关联关系。 14.比如a表cust_id, b表快照表, 每天保留一份, b的主键是cust_id,stat_dt,其中 stat_dt是过滤条件, a表关联b表时, 只要满足a表的cust_id和b表cust_id在关联池, 就可 以自动形成两表关联关系, 另外 stat_dt添加到过滤条件; 该方法主要适用于切片表和拉链 表。 15.如权利要求6所述的方法, 副表主键所涉及的字段, 主表有2个或2个以上的字段与 其对应, 为了更好更快筛选出两表之间的关联关系, 可以通过给关联池字段赋权的方式 (比 如通过在全部脚本中出现频率进行赋权) , 对存在2个及2个以上关联字段的表进行区分排 序。 16.具体案例如下: a表有字段学生id, 学生对应老师id, b表有用户id, 其中学生id, 老 师id及用户id均在同一个关联池, a表和b表关联时, 可以根据提示有两个关联字段可以做 选择, 其中学生 id在系统中出现概 率较多, 排名靠前。权 利 要 求 书 2/2 页 3 CN 114896248 A 3

.PDF文档 专利 实现基于关联池数据表自动拼接生成sql的方法及装置

文档预览
中文文档 19 页 50 下载 1000 浏览 0 评论 309 收藏 3.0分
温馨提示:本文档共19页,可预览 3 页,如浏览全部内容或当前文档出现乱码,可开通会员下载原始文档
专利 实现基于关联池数据表自动拼接生成sql的方法及装置 第 1 页 专利 实现基于关联池数据表自动拼接生成sql的方法及装置 第 2 页 专利 实现基于关联池数据表自动拼接生成sql的方法及装置 第 3 页
下载文档到电脑,方便使用
本文档由 人生无常 于 2024-03-18 00:14:26上传分享
友情链接
站内资源均来自网友分享或网络收集整理,若无意中侵犯到您的权利,敬请联系我们微信(点击查看客服),我们将及时删除相关资源。