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

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.mzph.cn/news/45848.shtml

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

相关文章

第6章:支持向量机

间隔与支持向量 w为法向量&#xff0c;决定的是超平面的方向。b是偏移项&#xff0c;决定了超平面与原点之间的距离。 为什么最大化间隔&#xff0c;得到的就是最优平面呢&#xff1f; 当超平面没有正确划分正负样本时&#xff0c;几何间隔为负数。几何间隔&#xff0c;各个…

网络编程基础(1)

目录 网络编程解决是跨主机的进程间通讯 1、网络 2、互联网 3、ip地址 &#xff08;1&#xff09;ipv4: &#xff08;2&#xff09;ipV6:1 &#xff08;3&#xff09;IP地址的组成&#xff1a; (4)Linux查看IP地址&#xff1a;ifconfig 4、mac地址 5、ping Ip地址 6…

VisualVM(All-in-One Java Troubleshooting Tool)多合-故障处理工具

VisualVM&#xff1a;多合-故障处理工具 VisualVM&#xff08;All-in-One Java Troubleshooting Tool&#xff09;是功能最强大的 运行监视 和 故障处理 程序之一&#xff0c;曾经在很长一段时间内是Oracle官方主力发展的虚拟机故障处理工具。Oracle曾在VisualVM的软件说明中写…

数据结构--最短路径 Floyd算法

数据结构–最短路径 Floyd算法 F l o y d 算法&#xff1a;求出每⼀对顶点之间的最短路径 \color{red}Floyd算法&#xff1a;求出每⼀对顶点之间的最短路径 Floyd算法&#xff1a;求出每⼀对顶点之间的最短路径 使⽤动态规划思想&#xff0c;将问题的求解分为多个阶段 对于n个顶…

QT学习笔记-Linux ARM环境下实现QT程序通过ODBC驱动访问SQLServer数据库

QT学习笔记-Linux ARM环境下实现QT程序通过ODBC驱动访问SQLServer数据库 0、背景1、基本环境2、搭建交叉编译环境3、在交叉编译服务器上交叉编译安装unixODBC3.1 下载unixODBC3.2 交叉编译unixODBC3.2.1 基本编译说明3.2.2 交叉编译说明3.2.3 ./configure -build,-host,-target…

不知道开黑语音哪个软件好?

黑盒语音官方网站&#xff1a;https://chat.top 免费支持AI降噪免费支持高品质立体声免费支持码率128Kbps,192Kbps免费支持上传100M文件免费支持动态房间头像和横幅支持更多自定义动态表情即将支持更多免费功能

IP 地址监控工具

地址监控实用程序是一套 IP 工具&#xff0c;包括 IP 地址监控工具、流氓检测工具和 MAC 地址解析器&#xff0c;用于日常监控和管理 DNS 名称、IP和 MAC 地址。地址监控工具用于 IP监控&#xff0c;用于管理 DNS 名称、网络的 IP 和 MAC 地址&#xff0c;并跟踪 IP 地址。 IP…

JavaScript中的this关键字的作用,以及它如何确定其值

聚沙成塔每天进步一点点 ⭐ 专栏简介⭐ this关键字的作用⭐ this的值取决于执行上下文⭐ 示例⭐ 总结⭐ 写在最后 ⭐ 专栏简介 前端入门之旅&#xff1a;探索Web开发的奇妙世界 记得点击上方或者右侧链接订阅本专栏哦 几何带你启航前端之旅 欢迎来到前端入门之旅&#xff01;这…

MySQL数据库第十四课--------sql优化---------层层递进

作者前言 &#x1f382; ✨✨✨✨✨✨&#x1f367;&#x1f367;&#x1f367;&#x1f367;&#x1f367;&#x1f367;&#x1f367;&#x1f382; ​&#x1f382; 作者介绍&#xff1a; &#x1f382;&#x1f382; &#x1f382; &#x1f389;&#x1f389;&#x1f389…

极光笔记 | 如何为您的业务开发和训练一个AI-BOT

生成式AI&#xff08;Generative AI&#xff09;是当今科技领域的前沿技术之一。随着数据量的不断增加和计算能力的不断提升&#xff0c;AI技术在企业和个人生活中的应用越来越广泛。AI-BOT&#xff08;以下简称BOT&#xff09;是生成式AI技术的其中一种重要的应用形式&#xf…

最小二乘拟合圆柱

目录 一、算法原理二、代码实现 本文由CSDN点云侠原创&#xff0c;原文链接。如果你不是在点云侠的博客中看到该文章&#xff0c;那么此处便是不要脸的爬虫。 一、算法原理 由圆柱面的几何特性可得&#xff0c;圆柱面上的点到其轴线的距离恒等于半径 r 0 r_0 r0​&#xff0c;…

Java自学到什么程度就可以去找工作了?

引言 Java作为一门广泛应用于软件开发领域的编程语言&#xff0c;对于初学者来说&#xff0c;了解到什么程度才能开始寻找实习和入职机会是一个常见的问题。 本文将从实习和入职这两个方面&#xff0c;分点详细介绍Java学习到什么程度才能够开始进入职场。并在文章末尾给大家安…

基于springboot+vue的博物馆藏品平台(前后端分离)

博主主页&#xff1a;猫头鹰源码 博主简介&#xff1a;Java领域优质创作者、CSDN博客专家、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战 主要内容&#xff1a;毕业设计(Javaweb项目|小程序等)、简历模板、学习资料、面试题库、技术咨询 文末联系获取 项目介绍…

剑指 Offer 48. 最长不含重复字符的子字符串(C++实现)

剑指 Offer 48. 最长不含重复字符的子字符串https://leetcode.cn/problems/zui-chang-bu-han-zhong-fu-zi-fu-de-zi-zi-fu-chuan-lcof/ dp 注意&#xff1a;缩小 不含重复字符子串 时的写法 dp_1 min(i - charToIndex[s[i]], dp_0 1); int lengthOfLongestSubstring(string s…

python中使用xml快速创建Caption和URL书签管理器应用程序

导语&#xff1a; 本文介绍如何使用wxPython库创建一个Caption和URL管理器应用程序。该应用程序具有图形用户界面&#xff0c;允许用户输入Caption和URL&#xff0c;并将其保存到XML文件中。此外&#xff0c;还提供了浏览文件夹并选择HTML文件的功能&#xff0c;并可以运行另一…

深入解析淘宝API,实现高效商务应用

淘宝API的基本调用 1. API文档与SDK 淘宝API官方提供了详细的API文档&#xff0c;包含了API的使用说明、参数列表、示例代码等内容。开发者可以通过文档了解每个API接口的具体功能和使用方法。此外&#xff0c;淘宝API还提供了多种编程语言的SDK&#xff0c;方便开发者进行快速…

jupyter notebook出现ERR_SSL_VERSION_OR_CIPHER_MISMATCH解决方案

大家好,我是爱编程的喵喵。双985硕士毕业,现担任全栈工程师一职,热衷于将数据思维应用到工作与生活中。从事机器学习以及相关的前后端开发工作。曾在阿里云、科大讯飞、CCF等比赛获得多次Top名次。现为CSDN博客专家、人工智能领域优质创作者。喜欢通过博客创作的方式对所学的…

c#扩展方法的使用

扩展方法可以向现有类型“添加”方法&#xff0c;无需创建新的派生类型、重新编译或以其他方式修改原始类型&#xff0c;用起来很方便&#xff0c;下面是我写的例子&#xff0c;为string这个常用的类型添加一个showmes方法&#xff0c;以下是扩展方法的代码&#xff1a; public…

python爬虫9:实战2

python爬虫9&#xff1a;实战2 前言 ​ python实现网络爬虫非常简单&#xff0c;只需要掌握一定的基础知识和一定的库使用技巧即可。本系列目标旨在梳理相关知识点&#xff0c;方便以后复习。 申明 ​ 本系列所涉及的代码仅用于个人研究与讨论&#xff0c;并不会对网站产生不好…

Linux中shell脚本——for、while循环及脚本练习

目录 一.for循环 1.1.基本格式 1.2.类C语言格式 二.while循环 2.1.基本格式 2.2.死循环语句 三.跳出循环 3.1.continue跳出循环 3.2.break跳出循环 四.常用循环 4.1.循环打印九九乘法表 4.2.循环ping测试某个网段网络连通性 4.3.while死循环实现猜数字游戏 4.4.数…