数据血缘追踪库
项目描述
麻省理工学院Data to AI Lab的一个开源项目。
DataTracer
数据血缘追踪库
- 许可证: MIT
- 开发状态: 预alpha
- 主页: https://github.com/data-dev/DataTracer
概述
DataTracer是一个Python库,使用统计方法、机器学习技术和手工启发式方法来解决数据血缘问题。
目前Data Tracer库实现了以下属性的发现
- 主键:识别每个表中的哪个列是主键。
- 外键:找出表之间的关系。
- 列映射:给定表中的一个字段,推断哪些其他字段(来自同一表或其他表)与该字段更相关或在生成该字段方面贡献最大。
REST API
DataTracer 库还包含一个 REST API,允许通过 HTTP 通信与 DataTracer 解算器交互。您可以在这里查看。
安装
需求
DataTracer 已在 Python 3.5 和 3.6, 3.7 上开发和测试。
此外,尽管不是强制性的,但强烈建议使用 virtualenv,以避免干扰在运行 DataTracer 的系统中安装的其他软件。
使用 pip 安装
安装 DataTracer 最简单、推荐的方法是使用 pip。
pip install datatracer
这将从 PyPi 拉取并安装最新稳定版本。
如果您想从源代码安装或为项目做出贡献,请阅读贡献指南。
数据格式:数据集和元数据
DataTracer 库已准备好使用数据集进行工作,这些数据集是一组加载为 pandas.DataFrames
的表,以及一个提供有关数据集结构信息的元数据 JSON。
您可以在 MetaData 仓库 中找到有关元数据格式的更多信息。
DataTracer 还包括一些 演示数据集,您可以使用 datatracer.get_demo_data
函数轻松地将它们下载到您的计算机上。
from datatracer import get_demo_data
get_demo_data()
这将创建一个名为 datatracer_demo
的文件夹,位于您的当前工作目录中,其中包含一些可以使用的数据集。
快速入门
在本简短教程中,我们将引导您完成一系列步骤,帮助您开始使用 Data Tracer。
加载数据
第一步是加载数据,使其符合 DataTracer 所期望的格式。
为此,我们可以使用 datatracer.load_dataset
函数,传递数据集文件夹的路径。
例如,如果我们想使用我们刚刚创建的演示文件夹中包含的 classicmodels
数据集,我们可以通过以下方式加载它
from datatracer import load_dataset
metadata, tables = load_dataset('datatracer_demo/classicmodels')
这将返回一个包含以下内容的元组
- 一个包含有关数据集详细信息的
MetaData
实例。 - 一个包含所有表(作为
pandas.DataFrame
加载)的dict
。
选择一个解算器
DataTracer 项目中,不同的数据线问题使用我们称为 解算器 的工具来解决。
我们可以使用 get_solvers
函数查看可用的解算器列表
from datatracer import get_solvers
get_solvers()
它将返回一个包含它们名称的列表
['datatracer.column_map',
'datatracer.foreign_key.basic',
'datatracer.foreign_key.standard',
'datatracer.primary_key.basic']
使用 DataTracer 实例查找表关系
为了使用所选解算器,您需要使用 DataTracer
类加载它。
在本例中,我们将尝试通过使用解算器 datatracer.foreign_key.standard
来找出我们数据集中表之间的关系。
from datatracer import DataTracer
# Load the Solver
solver = DataTracer.load('datatracer.foreign_key.standard')
# Solve the Data Lineage problem
foreign_keys = solver.solve(tables)
结果将是一个包含外键候选者的字典
[{'table': 'products',
'field': 'productLine',
'ref_table': 'productlines',
'ref_field': 'productLine'},
{'table': 'payments',
'field': 'customerNumber',
'ref_table': 'customers',
'ref_field': 'customerNumber'},
{'table': 'orders',
'field': 'customerNumber',
'ref_table': 'customers',
'ref_field': 'customerNumber'},
{'table': 'orderdetails',
'field': 'productCode',
'ref_table': 'products',
'ref_field': 'productCode'},
{'table': 'orderdetails',
'field': 'orderNumber',
'ref_table': 'orders',
'ref_field': 'orderNumber'},
{'table': 'employees',
'field': 'officeCode',
'ref_table': 'offices',
'ref_field': 'officeCode'}]
接下来是什么?
您可以在 笔记本教程 中了解更多关于 DataTracer 的功能。
另外,别忘了看看 DataTracer 的 REST API。
历史
0.0.6 - 2020-06-19
- 添加
update_metadata
原语和管道。 - 升级到 MetaData v0.0.2
0.0.5 - 2020-06-12
- 添加新的
update_metadata
端点到 REST API。 - 添加新的演示数据集和新教程。
0.0.4 - 2020-06-05
- 添加预训练解算器的初始版本
- 重构 ColumnMapSolver 代码树
- 添加通过 HTTP 访问 DataTracer 解算器的 REST API
0.0.3 - 2020-05-28
- 完成列映射并添加教程
- 少量重构和添加文档字符串
- 修复测试配置
0.0.2 - 2020-05-26
- 配置和依赖项管理
0.0.1 - 2020-05-22
第一个版本。
功能
- 主键检测
- 外键检测
- 列映射
项目详情
下载文件
下载适合您平台文件。如果您不确定选择哪个,请了解更多关于安装包的信息。
源代码分布
构建分布
datatracer-0.0.6.tar.gz的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 0ee8e7ae1b955765fd4e64331748977aadfe75a9ef79951da909b25e69163fe1 |
|
MD5 | 90dd2cea860cf7693fa353f2d9808a00 |
|
BLAKE2b-256 | 6c24648f0bcde3d93371771a2a6ea0f77e92ec3a0a824da6b55d245b5b77ba2f |
datatracer-0.0.6-py2.py3-none-any.whl的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 794cd6cfa37d8fa255d9f645641f3f0c05cb3948cbc7b298c51b858afecb4fbc |
|
MD5 | e1da068ff8d875e97394b414a08c7216 |
|
BLAKE2b-256 | 81cc6b65fb89baa95acdb9aa7991e88524aa96071be7de02e0146ef35ac254db |