全网唯一标准王
(19)国家知识产权局 (12)发明 专利申请 (10)申请公布号 (43)申请公布日 (21)申请 号 202210875368.7 (22)申请日 2022.07.25 (71)申请人 成都烽顺科技有限公司 地址 610000 四川省成 都市高新区蜀锦路 88号1栋二单 元1207号 (72)发明人 苏鑫 李明 张乙  (74)专利代理 机构 成都帝鹏知识产权代理事务 所(普通合伙) 5126 5 专利代理师 罗旭 (51)Int.Cl. G06F 16/25(2019.01) G06F 16/242(2019.01) G06F 16/28(2019.01) (54)发明名称 一种基于ETL转换数据血缘 生成方法 (57)摘要 本发明公开一种基于ETL转换数据血缘生成 方法, 通过转换ID从ET L仓库加载转换元数据; 从 转换元数据中获取表输出相关步骤 元数据, 存入 集合; 判断集合是否为空, 如果为空表示没有目 标表, 则直接 结束; 如果集合不为空, 则获取表输 入相关步骤元数据, 存入变量input; 判断变量是 否为空, 如果为空表示没有 来源表, 则直接 结束; 如过变量不为空, 遍历集合, 单个变量为output, 构建input到output的表血缘对象, 并将血缘关 系对象添加到表血缘集合, 实现单个表输出步骤 血缘解析; 合并表血缘集合中同一目标表的多个 表输出步骤 涉及的字段血缘; 将表血缘集合写入 数据库进行持久化。 本发明能够支持识别复杂 ETL数据处 理过程。 权利要求书3页 说明书9页 附图4页 CN 115221231 A 2022.10.21 CN 115221231 A 1.一种基于 ETL转换数据血缘 生成方法, 其特 征在于, 包括 步骤: S10,输入转换ID, 通过转换ID从ETL仓库加载转换 元数据trans; S20,从转换 元数据trans中获取表输出相关步骤元 数据, 存入集合outputs; S30,判断集合output s是否为空, 如果为空表示没有目标表, 则直接结束; 如果outputs 不为空, 则获取表输入相关步骤元 数据, 存入变量input; S40,判断变量input是否为空, 如果为空表示没有来源表, 则直接结束; 如 过input不为 空, 遍历集合outputs, 单个变量为output, 构建input到output的表血缘对象 lineageTable, 并将血缘关系对象添加到表血缘集合lineageTables, 实现单个表输出步骤 血缘解析; S50,合并表血缘集合lineageTables中同一目标表的多个表输出步骤涉及的字段血 缘; S60,将表血缘 集合lineageTables写入数据库进行持久化。 2.根据权利要求1所述的一种基于ETL转换数据血缘生成方法, 其特征在于, 单个表输 出步骤血缘 解析包括 步骤: S41,输入参数表输出步骤元数据output、 表输入步骤元数据input、 转换元数据trans; 检查表输入到表输出链路过程, 并将过程写入链表link; 完成表输入到单个表输出步骤链 路构建; S42,判断表输入到表输出链路是否存在, 如果不存在则结束单个表输出步骤血缘解析 过程; 如果链路存在, 通过trans预加载表输出output之前所有步骤涉及的字段信息, 存储到 键值对ro ws, 键为步骤名称, 值 为行元数据, 完成预加载步骤字段 元数据; S43,判断预加载步骤涉及的字段信 息是否异常, 如果存在异常则结束单个表输出步骤 血缘解析过程; 如果不存在异常, 从头遍历链表link, 单个变量为step, 通过step获取对应的行元数据 row, 使用步骤step、 步骤 行元数据r ow生成单个步骤字段来源信息, 并将 字段来源信息存储 到键值对fields, 键为 步骤输出字段, 值 为字段来源信息; 完成单个步骤字段来源解析; S44,通过表输出步骤元 数据output获取目标字段集 合targets; S45,遍历集合target s, 单个目标字段变量target, 通过递归 从fields获取target的所 有来源字段和来源字段对应的来源步骤, 构建字段血缘对象lineageField, 并加入集合 lineageFields, 完成单个目标字段 血缘解析; S46,构建表血缘对象l ineageTable。 3.根据权利要求2所述的一种基于ETL转换数据血缘生成方法, 其特征在于, 在所述步 骤S41中表输入到单个表输出步骤链路构建过程包括 步骤: S411, 先将表输入步骤元 数据input加入链 表link头; S412, 通过转换 元数据trans获取i nput的下一 步集合; S413, 判断下一步集合是否为空, 为空则表示表输入到表输出链路过程链路不存在; 如 果下一步集合不为空, 则遍历下一 步集合; S414, 判断单个下一步是否与输出步骤元数据output相等; 如果相等表示链路存在且 检查结束, 将outp ut添加链路最后; 如果单个下一步与输出步骤元数据output不相等, 则递权 利 要 求 书 1/3 页 2 CN 115221231 A 2归执行S412到S414, 直到下一步等于output或下一步集合集合为空; 下一步等于output时 将递归成功的中间步骤 插入到link相应位置 。 4.根据权利要求2所述的一种基于ETL转换数据血缘生成方法, 其特征在于, 在所述步 骤S42中预加载步骤字段 元数据过程包括 步骤: S421, 通过t rans获取output上一 步集合; S422, 遍历上一步集合中所有上一步的步骤元数据; 断单个上一步有没有产生新的字 段; 如果单个上一 步产生新的字段则添加该字段信息 到行元数据row; S423, 获取单个上一步的输入字段元数据加入row, 并将字段来源步骤名和row添加到 rows; S424, 递归执 行S421到S423, 直到上一 步集合为空; 其中, 当上一步为表输入步骤时, 表输入将sql发送到数据库中执行, 从返回的结果中 获取字段元数据, 将数据库字段元数据转为ETL中统一的字段元数据后, 添加到行元数据 row, 并将表输入步骤名和ro w添加到ro ws。 5.根据权利要求2所述的一种基于ETL转换数据血缘生成方法, 其特征在于, 在所述步 骤S43中单个步骤字段来源解析 过程包括 步骤: S431, 输入参数步骤元数据step、 步骤行元数据row、 缓存键值对fields; 从步骤行元数 据row中获取字段元数据集合values, 遍历字段元数据集合values, 使用单个字段元数据 value, 构造 字段来源信息field, 并将field加入fields; S432, 判断步骤元数据step 是否为表输入, 如果为表输入则解析表输入中sql查询结果 字段的来源字段和来源表; 构造 字段来源信息field, 并将field加入fields; S433, 判断步骤元数据step是否为表输出相关, 如果为表输出相关则解析step目标表 字段对应的输入字段为 来源字段; 构造 字段来源信息field, 并将field加入fields; S434, 判断步骤元数据step是否为会产生新字段血缘的步骤; 如果为产生新字段血缘 的步骤则解析step输出字段对应的输入字段为来源字段; 构造字段来源信息field, 并将 field加入fields。 6.根据权利要求2所述的一种基于ETL转换数据血缘生成方法, 其特征在于, 在所述步 骤S45中所述单个目标字段 血缘解析过程包括 步骤: S451, 开始输入参数目标字段target缓存键值对fields, 判断键值对fields里面是否 包含target; 如果键值对fields里面 不包含target, 直接结束单个目标字段 血缘解析过程; 如果键值对fields里面包含target, 通过target从fields中获取字段血缘关系对象 field; S452, 判断field中来源字段集合是否为空, 如果为空表示target来自步骤产生的字 段, 根据field构建l ineageField对象, 并加入当前l ineageFields; 如果不为空, 遍历field中来源字段集合, 获取单个来源字段作为target, 递归执行 S451‑S452获取l ineageFields; S453, 判断递归得到的lineageFields是否为空, 如果为空则表示target来自表, 且已 递归到表输入的来源字段, 根据field构建lineageField对象, 并加入当前lineageFields; 如果不为空, 将递归得到的l ineageFields合并到当前l ineageFields;权 利 要 求 书 2/3 页 3 CN 115221231 A 3

PDF文档 专利 一种基于ETL转换数据血缘生成方法

文档预览
中文文档 17 页 50 下载 1000 浏览 0 评论 0 收藏 3.0分
温馨提示:本文档共17页,可预览 3 页,如浏览全部内容或当前文档出现乱码,可开通会员下载原始文档
专利 一种基于ETL转换数据血缘生成方法 第 1 页 专利 一种基于ETL转换数据血缘生成方法 第 2 页 专利 一种基于ETL转换数据血缘生成方法 第 3 页
下载文档到电脑,方便使用
本文档由 SC 于 2024-02-24 01:01:58上传分享
友情链接
站内资源均来自网友分享或网络收集整理,若无意中侵犯到您的权利,敬请联系我们微信(点击查看客服),我们将及时删除相关资源。