数据沿袭跟踪库

datatracer的Python项目详细描述


Development StatusPyPI ShieldDownloadsRun Tests

数据跟踪器

数据沿袭跟踪库

概述

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函数下载到您的计算机:

^{pr2}$

这将在您的工作目录中创建一个名为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日

第一次发布。在

特点:

  • 主键检测
  • 外键检测
  • 列映射

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
JavaJSonarray不会从SeekBar读取double   使用另一个类从Java中的2D数组打印用户输入   java ClassNotFoundException的原因   spring调用两个方法以返回Java中的不同页面   httpurlconnection Java禁止的代码错误,但浏览器错误(2)   java画布矩阵转换   java:在另一个java映射中使用“Map”作为值   java“未找到用于解密的证书”(Apache CXF,WSSecurity)   java如何查看JTable中选择的行   java在没有xmlwrappers的情况下重复xml元素序列集   java将垂直直方图打印到控制台   java Spring JDBCTemplate:构造不带特殊字符的JSON   java PayPal RestApi获取用户信息