数据沿袭跟踪库
datatracer的Python项目详细描述
数据跟踪器
数据沿袭跟踪库
概述
DataTracer是一个Python库,用于使用统计方法解决数据沿袭问题 方法,机器学习技术,和手工制作的启发式。在
目前,数据跟踪器库实现以下属性的发现:
- Primary Key:标识每个表中哪个列是主键。在
- Foreign Key:查找表之间存在哪些关系。在
- 列映射:给定一个表中的字段,从同一个表中推断出其他哪些字段 或者其他表,它们之间的关系更密切,或者在生成给定字段时贡献最大。在
REST API
DataTracer库还集成了一个restapi,它支持与DataTracer的交互 通过HTTP通信的解算器。你可以检查一下here
安装
要求
DataTracer已在Python 3.5 and 3.6, 3.7上开发和测试
另外,虽然不是严格要求,但强烈建议使用virtualenv,以避免 干扰运行DataTracer的系统中安装的其他软件。在
用pip安装
安装DataTracer的最简单和推荐的方法是使用pip:
pip install datatracer
这将从PyPi拉出并安装最新的稳定版本。在
如果您想从源代码安装或对项目有所贡献,请阅读 Contributing Guide。在
数据格式:数据集和元数据
DataTracer库已准备好使用datasets,它是一个表的集合
加载为pandas.DataFrames
和元数据JSON,它提供有关
数据集结构。在
您可以在MetaData repository中找到有关元数据格式的详细信息。在
{a15还可以很容易地包含
使用datatracer.get_demo_data
函数下载到您的计算机:
这将在您的工作目录中创建一个名为datatracer_demo
的文件夹
可以在里面使用的数据集。在
快速启动
在这篇简短的教程中,我们将指导您完成一系列有助于您的步骤 Data Tracer入门。在
加载数据
第一步是以DataTracer期望的格式加载数据。在
为此,我们可以使用datatracer.load_dataset
函数将路径传递给
数据集文件夹。在
例如,如果我们想使用demo文件夹中包含的classicmodels
数据集
我们刚刚创建的,我们可以使用:
fromdatatracerimportload_datasetmetadata,tables=load_dataset('datatracer_demo/classicmodels')
这将返回一个元组,其中包含:
- 包含数据集详细信息的
MetaData
实例。在 - 一个
dict
,数据集的所有表都作为pandas.DataFrame
加载。在
选择解算器
在DataTracer项目中,使用 调用solvers。在
我们可以使用get_solvers
函数查看可用解算器的列表:
fromdatatracerimportget_solversget_solvers()
将返回一个列表及其名称:
['datatracer.column_map',
'datatracer.foreign_key.basic',
'datatracer.foreign_key.standard',
'datatracer.primary_key.basic']
使用DataTracer实例查找表关系
为了使用选定的解算器,您需要使用DataTracer
类加载它。在
在本例中,我们将尝试找出数据集中表之间的关系
通过使用求解器datatracer.foreign_key.standard
。在
fromdatatracerimportDataTracer# Load the Solversolver=DataTracer.load('datatracer.foreign_key.standard')# Solve the Data Lineage problemforeign_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'}]
下一步是什么?在
您可以在notebook tutorials中了解更多有关数据跟踪器功能的信息。在
另外,别忘了看看DataTracerREST API。在
历史
0.0.6-2020年6月19日
- 添加
update_metadata
原语和管道。在 - 升级至元数据v0.0.2版本
0.0.5-2020年6月12日>- 向restapi添加新的
update_metadata
端点。在 - 新教程和新的数据集演示。在
0.0.4-2020年6月5日
- 添加预训练解算器的初始版本
- 重新组织ColumnMapSolver代码树
- 添加restapi以通过HTTP访问DataTracer解算器
0.0.3-2020年5月28日
- 完成列映射并添加教程
- 小重构和添加docstring
- 修复测试配置
0.0.2-2020年5月26日
- 整理配置和依赖关系
0.0.1-2020年5月22日
update_metadata
端点。在第一次发布。在
特点:
- 主键检测
- 外键检测
- 列映射
- 项目
标签: