马哈鱼数据血缘工具背后的项目: gsp_demo_java 项目简单介绍与使用

news2024/11/19 14:50:37

0.背景

马哈鱼数据血缘工具(https://www.sqlflow.cn/)是SQLflow工具的中文译名,实际就是sqlflow.
对于SQL flow来说,底层调用的是General SQL Parser(GSP https://sqlparser.com) 的库.
这个gsp有开源的java demo项目:https://github.com/sqlparser/gsp_demo_java

1.快速使用

下载项目后用idea 导入后,这是一个springboot项目,如果直接启动控制台会打印一堆注释,因为没有导入参数,这个项目需要用参数来导入sql文件
在运行里输入 /f sql文件绝对路径
在这里插入图片描述启动项目后控制台即打印血缘
以 下列sql为例

SELECT d.deptno,
d.dname
FROM dept d

生成节点

<dlineage>
    <table id="4" name="dept" alias="d" type="table" coordinate="[3,8,0],[3,14,0]">
        <column id="5" name="deptno" coordinate="[1,8,0],[1,16,0]"/>
        <column id="6" name="dname" coordinate="[2,8,0],[2,15,0]"/>
    </table>
    <resultset id="8" name="RS-1" type="select_list" coordinate="[1,8,0],[2,15,0]">
        <column id="9" name="deptno" coordinate="[1,8,0],[1,16,0]"/>
        <column id="10" name="dname" coordinate="[2,8,0],[2,15,0]"/>
    </resultset>
    <relationship id="1" type="fdd" effectType="select">
        <target id="9" column="deptno" parent_id="8" parent_name="RS-1" coordinate="[1,8,0],[1,16,0]"/>
        <source id="5" column="deptno" parent_id="4" parent_name="dept" parent_alias="d" coordinate="[1,8,0],[1,16,0]"/>
    </relationship>
    <relationship id="2" type="fdd" effectType="select">
        <target id="10" column="dname" parent_id="8" parent_name="RS-1" coordinate="[2,8,0],[2,15,0]"/>
        <source id="6" column="dname" parent_id="4" parent_name="dept" parent_alias="d" coordinate="[2,8,0],[2,15,0]"/>
    </relationship>
</dlineage>

打印结果是xml格式,当然也可以用参数 /json 指定输出 为json格式方便代码处理

上述xml中有三种类型,table 表示源表,而select_list 表示查询列表即结果集,fdd 是表示目标实体的数据来自源实体的一种关系
以上就是最简单的应用
具体的学习还带研读源码和查看项目doc文件夹下pdf

2. 参数翻译

加粗为个人觉得常用参数

/f:可选,SQL文件的完整路径。
/d:可选,目录的完整路径包括SQL文件。
/j: 可选, 返回结果包含join关系.

/s:可选,简单输出,忽略中间结果。
/i:可选,与/s选项相同,但将保留SQL函数生成的结果集。
/text:可选,此选项仅在使用/s时有效,以文本模式输出列依赖项。

/if:可选,保留所有中间结果集,但删除SQL函数生成的结果集
/ic:可选,忽略输出中的坐标。
/lof:选项,将孤立列链接到第一个表。
/traceView:可选,只输出源表和视图的名称,忽略所有中间数据。

/json:可选,打印json格式输出。
/stat:可选,输出分析统计信息。
/tableLineage:可选的输出表级沿袭。 **
/tableLineage/csv:可选,以csv格式输出选项卡级沿袭。 **

/t,设置数据库类型。默认值为oracle
/o:可选,将输出流写入指定文件。
/log:可选,生成数据流。日志文件来记录信息。

/h:可选,指定jdbc连接的主机
/P:可选,指定jdbc连接的端口,注意大写字母P。
/u:可选,指定jdbc连接的用户名。
/p:可选,指定jdbc连接的密码,注意它是小写的p。
/db:可选,指定jdbc连接的数据库。

/schema:可选,指定用于提取元数据的模式。
/metadata:可选,将数据库元数据信息输出到文件元数据。json。
/transform:可选,输出关系转换代码。 没大用
/coor:可选,输出关系变换坐标,但不输出代码。 没大用
/defaultDatabase:可选,指定默认架构。
/defaultSchema:可选,指定默认架构。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/898321.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Focus-DETR利用双重注意力机制重建编码器,打造最强目标检测模型

前期的文章我们介绍了DETR模型,我们知道DETR模型首先使用CNN卷积神经网络搜集图片的核心特征点,然后把这些特征点整合起来,通过embedding方法,把特征图片转换到特征向量空间。然后根据标准Transformer模型的编码器与解码器进行注意力机制的计算,最后把计算后的数据进行图片…

vue3+ts+vite使用el-breadcrumb实现面包屑组件,实现面包屑过渡动画

简介 使用 element-plus 的 el-breadcrumb 组件&#xff0c;实现根据页面路由动态生成面包屑导航&#xff0c;并实现面包屑导航的切换过渡动画 一、先看效果加粗样式 1.1 静态效果 1.2 动态效果 二、全量代码 <script lang"ts" setup> import { ref, watch…

5个高清视频素材网站

推荐5个高清视频素材网站&#xff0c;免费、付费、商用的都有&#xff0c;可根据自己需求去选择&#xff0c;赶紧收藏吧&#xff01; 菜鸟图库 https://www.sucai999.com/video.html?vNTYxMjky ​ 菜鸟图库网素材非常丰富&#xff0c;网站主要还是以设计类素材为主&#xff…

RCE远程命令执行

逻辑运算符:: &&&#xff1a;代表首先执行命令a&#xff0c;若成功再执行命令b&#xff0c;又被称为短路运算符。 &&#xff1a;代表首先执行命令a再执行命令b&#xff0c;不管a是否成功&#xff0c;都会执行命令b。在执行效率上来说“&&”更加高效。 ||&a…

合宙Air724UG LuatOS-Air LVGL API--简介

为何是 LVGL LVGL 是一个开源的图形库&#xff0c;它提供了创建嵌入式 GUI 所需的一切&#xff0c;具有易于使用的图形元素、漂亮的视觉效果和低内存占用的特点。 LVGL特点&#xff1a; 强大的 控件 &#xff1a;按钮、图表、列表、滑动条、图像等 高级图形引擎&#xff1a;动…

AIGC之文本内容生成概述(下)—— BERT

关于AIGC系列的文章内容&#xff0c;我们在上一期介绍了基础模型Transformer&#xff0c;本期将会继续介绍基于Transformer模型改进的BERT&#xff08;双向编码器表示Transformer&#xff09;模型。如果想要查之前的介绍内容&#xff0c;可以关注本号&#xff0c;翻看之前的文章…

九耶丨阁瑞钛伦特-在项目中找到的经典BUG是什么?

在项目中找到的经典BUG有很多种&#xff0c;以下是其中一些常见的例子&#xff1a; 空指针异常&#xff08;NullPointerException&#xff09;&#xff1a;当程序试图访问一个空对象或未初始化的变量时&#xff0c;会抛出空指针异常。这通常是由于缺少对变量的正确初始化或检查…

知识继承概述

文章目录 知识继承第一章 知识继承概述1.背景介绍第一页 背景第二页 大模型训练成本示例第三页 知识继承的动机 2.知识继承的主要方法 第二章 基于知识蒸馏的知识继承预页 方法概览 1.知识蒸馏概述第一页 知识蒸馏概述第二页 知识蒸馏第三页 什么是知识第四页 知识蒸馏的核心目…

java练习6. 求完数

题目: 请编程求出1000 以内的所有完数。 完数:一个数如果恰好等于它的所有真因子&#xff08;即除了自身外的所有因数&#xff09;之和&#xff0c;这个数就称为"完数"。 public static void main(String[] args) {for (int i 2; i < 1000; i) {int sum0;for (in…

最大公约数题--夏令营

题目&#xff1a; 知识点&#xff1a; 1。数论-欧几里得算法-gcd最大公因数性质 证明性质2&#xff0c;为什么两组的公约数相等&#xff0c;同样&#xff0c;最大公约数也相等 算法表示 int gcd(int a, int b) {return b 0 ? a : gcd(b, a % b); } 2.分析题目&#xff1a;…

java forEach中不能使用break和continue的原因

1.首先了解break和continue的使用范围和作用 1.1使用范围 break适用范围&#xff1a;只能用于switch或者是循环语句中。当然可以用于增强for循环。 continue适用范围: 用于循环语句中。 1.2作用 break: 1. break用于switch语句的作用是结束一个switch语句。 2. break用于循…

STM32单片机WIFI手机APP智能窗户窗帘控制系统手动自动定时

实践制作DIY- GC0163--WIFI手机APP智能窗户窗帘控制系统 基于STM32单片机设计---WIFI手机APP智能窗户窗帘控制系统 二、功能介绍&#xff1a; STM32F103C系列最小系统板5VUSB电源ULN2003控制的步进电机5个按键DS1302时钟芯片LCD1602显示器光敏电阻结合内部ADC采集光强DHT11温度…

FPGA_学习_17_IP核_ROM(无延迟-立即输出)

由于项目中关于厂商提供的温度-偏压曲线数据已经被同事放在ROM表了&#xff0c;我这边可用直接调用。 今天在仿真的时候&#xff0c;发现他的ROM表用的IP核是及时输出的&#xff0c;就是你地址给进去&#xff0c;对应地址的ROM数据就立马输出&#xff0c;没有延迟。 我打开他的…

聊聊@Accessors和@Builder

目录 Accessors和BuilderAccessors(chaintrue)BuilderAccessors和Builder的区别Accessors和Builder使用的坑 详细看看Accessors注解Accessors的源码Accessors属性说明fluent属性chain属性makeFinal属性prefix属性 Accessors和Builder Accessors(chaintrue) 就是new一个对象后…

2024秋招简历注意事项

互联网是一年比一年难&#xff0c;刚刚帮学弟修改了一下简历&#xff0c;学弟很强有项目有论文有比赛&#xff0c;但是我修改的时候感觉有点啰嗦&#xff0c;抓不住重点&#xff0c;所以在编写简历时&#xff0c;我觉得有几个要点一定要注意&#xff1a; 1. 简明扼要&#xff1…

C++之string类的使用

C之string类的使用 1.为什么要学string类2.标准库中的string类3.string类的接口的使用3.1默认成员函数3.2容量操作3.3访问操作3.4遍历操作3.5修改操作3.6字符串操作3.7非成员函数 1.为什么要学string类 我们所学的字符串是以’\0’结尾的一些字符的集合&#xff0c;为了操作方…

html | 基于iframe的简易富文本编辑器

效果图 支持: 选中后 ctrlI 斜体 代码 思路就是在iframe种嵌套html和css。 <pre> - 支持: 选中后 ctrlI 斜体 - todo: 鼠标实现单击斜体 </pre> <iframe name"richedit" style"height:30%; width:100%;"></iframe><script…

层叠上下文、层叠顺序

什么是层叠上下文 层叠上下文&#xff08;Stacking Context&#xff09;是指在 HTML 和 CSS 中&#xff0c;用于控制和管理元素层叠顺序以及呈现的一种机制。在一个网页中&#xff0c;许多元素&#xff08;例如文本、图像、背景等&#xff09;可能会重叠在一起&#xff0c;这时…

Hvv之Nacos漏洞分析与整改

目录 什么是nacos 漏洞复现过程 解压、修改配置文件、启动、 复现任意创建账户漏洞 问题分析 修改建议 什么是nacos Nacos 是阿里巴巴推出来的一个新开源项目&#xff0c;这是一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。 NACOS界面提示“内部系统…

冠达管理:市盈率除以市净率是什么意思?

市盈率&#xff08;Price-to-Earnings Ratio&#xff0c;简称P/E&#xff09;和市净率&#xff08;Price-to-Book Ratio&#xff0c;简称P/B&#xff09;是股票商场中常用的两个评价目标。市盈率衡量的是一家公司的市值与其盈余才能的联系&#xff0c;而市净率则是衡量其市值与…