Skip to main content

Python 的数据沿袭

项目描述

PyPI-Python 皮皮-皮皮 PyPI - 许可证

谱系

这个包提供了简单的工具来解析和可视化你的 .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 查看哈希

已上传 source

内置分布

pylineage-0.1.4-py3-none-any.whl (11.8 kB 查看哈希

已上传 py3