与数据生成/重复数据消除的简单接口,使概率记录链接变得容易。
pgdedupe的Python项目详细描述
pgdedupe
为大型重复数据消除提供标准接口的工作正在进行中 具有自定义预处理和后处理步骤的数据库。
- 自由软件:麻省理工学院许可证
- 文档:https://pgdedupe.readthedocs.io。
接口
这提供了一个简单的命令行程序pgdedupe。两种配置 文件指定重复数据消除参数和数据库连接设置。到 在生成的数据集上运行重复数据消除,创建一个database.yml文件 指定以下参数:
user: password: database: host: port:
现在,您可以使用以下命令创建示例csv文件:
$ python generate_fake_dataset.py --csv people.csv creating people: 100%|█████████████████████| 9500/9500 [00:21<00:00, 445.38it/s] adding twins: 100%|█████████████████████████| 500/500 [00:00<00:00, 1854.72it/s] writing csv: 47%|███████████▋ | 4666/10000 [00:42<00:55, 96.28it/s]
完成后,将此示例数据集存储在数据库中,其中:
$ python test/initialize_db.py --db database.yml --csv people.csv CREATE SCHEMA DROP TABLE CREATE TABLE COPY 197617 ALTER TABLE ALTER TABLE UPDATE 197617
现在可以删除此数据集的重复数据。这将运行重复数据消除以及 在config.yml中定义的自定义预处理和后处理步骤:
$ pgdedupe --config config.yml --db database.yml
自定义预处理和后处理
除了使用dedupe运行数据库级重复数据消除之外,此 脚本添加自定义的前处理和后处理步骤,以改进运行时和 结果,使其成为模糊匹配和记录链接的混合体。
- 预处理:在运行重复数据消除之前,此脚本完全匹配 重复数据消除。一些系统创建许多相同的行;这可以使 重复数据消除在创建有效的数据块策略方面具有挑战性,通常 使模糊匹配变得更加困难和耗时。
- 后处理:运行重复数据消除后,此脚本执行可选的 精确匹配跨列子集合并。例如,在某些情况下 姓氏和社保号码的精确匹配是 足够的证据表明两个集群确实是同一个身份。
进一步步骤
此脚本基于并扩展了中的示例 dedupe-examples。最好在所有地方都使用这个公共接口 数据库类型,甚至可能允许读取平面csv文件。
历史记录
0.2.1(2017-05-03)
- 使命令行参数成为必需的,从而产生更好的错误消息。
- 重构测试脚本,使其更加用户友好。
0.2.0(2017-04-19)
- pypi上的第一个版本(作为pgdedupe)。
0.1.0(2016-12-14)
- PYPI上的第一个版本(作为超级重复数据消除程序)。