Python 的数据沿袭
项目描述
谱系
这个包提供了简单的工具来解析和可视化你的 .sql 脚本。
安装
该软件包通过 PyPI 分发,可以安装
pip install pylineage
为了创建谱系图,您还应该安装Graphviz并将其添加到您的路径中。
SQL 解析器
可以通过运行来解析单个基本 .sql 脚本
from pylineage import SqlParser
parser = SqlParser()
query = """
SELECT column1
, column2 AS c2
FROM my_table t
WHERE column1 = 1
"""
parsed = parser.parse(query)
输出如下所示
>>> parsed
{
"select": [{ "content": "column1" }, { "content": "column2", "alias": "c2" }],
"from": { "content": "my_table", "alias": "t" },
"where": ["column1 = 1"]
}
目前解析器支持子句
| 条款 |
|---|
| 选择 |
| 从 |
| 左连接 |
| 左外连接 |
| 正确加入 |
| 右外连接 |
| 完全加入 |
| 全外连接 |
| 加入 |
| 内部联接 |
| 在哪里 |
| 合格 |
| 通过...分组 |
| 订购方式 |
| 拥有 |
谱系图
基于 SQL 解析器,可以构建一个沿袭图。我们从主构造函数开始:
from pylineage import LineageGraph
lineage_graph = LineageGraph()
随后,有两种添加 SQL 脚本的选项:(1) 作为单独的输入字符串或 (2) 作为目录。
lineage_graph.extend_graph_from_input_string("CREATE TABLE my_view AS SELECT column1 FROM my_table")
lineage_graph.extend_graph_from_directory("/data")
可以通过运行随时清除图形
lineage_graph.clear_graph()
解析和可视化的目的之一是获取执行顺序。这可以通过运行获得
lineage_graph.get_execution_order()
注意
任何不属于源子句(FROM / JOIN)的内部查询都不会作为节点包含在图中。因此,不考虑以下陈述。
...
WHERE column not in (
SELECT column
FROM table2
)
最后,可以通过直接检查来访问 Lineage Graph
lineage_graph.graph
或以交互模式运行它:
lineage_graph.serve_graph()
交互模式提供方便的突出显示和拖动功能。
项目详情
下载文件
下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。
源分布
pylineage-0.1.4.tar.gz
(10.9 kB
查看哈希)
内置分布
pylineage-0.1.4-py3-none-any.whl
(11.8 kB
查看哈希)