跳转到主要内容

数据血缘追踪库

项目描述

“DAI-Lab” 麻省理工学院Data to AI Lab的一个开源项目。

Development Status PyPI Shield Downloads Run Tests

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 (302.2 kB 查看哈希值)

上传时间 源代码

构建分布

datatracer-0.0.6-py2.py3-none-any.whl (277.6 kB 查看哈希值)

上传时间 Python 2 Python 3

由以下支持