度量空间中的数据库相似连接
1. 引言
相似连接(SJ)是一种非常有用的数据处理和分析操作,它能检索出所有距离小于预定义阈值 ε 的数据对。此前,虽然已经提出了多种 SJ 算法,但将其作为一流的数据库操作符来实现的工作却很少。本文提出了一种适用于任何位于度量空间的数据集的 SJ 数据库操作符 DBSimJoin。其主要贡献如下:
- 提出 DBSimJoin,它完全集成到数据库引擎中,具备非阻塞行为、优先生成早期结果以及支持数据库迭代器接口等特性。
- 据作者所知,DBSimJoin 是首个可用于任何位于度量空间的数据集的 SJ 数据库操作符,支持多种距离函数和数据类型。
- 给出将 DBSimJoin 集成到数据库系统的多个指南,并详细介绍了在 PostgreSQL 中的实现。
- 对 DBSimJoin 在多种数据类型上的性能进行了全面评估,结果显示它显著优于其他方法。
- 展示了 DBSimJoin 可与其他操作符结合用于复杂的相似查询,还能应用于重要的查询转换规则以实现基于成本的查询优化。
2. 相关工作
在 SJ 的研究方面已经开展了大量工作,主要是将其作为独立算法在数据库系统之外实现。部分实现技术依赖于预建索引,如 eD - index、D - index 和 List of Twin Clusters(LTC),这些索引技术在支持 SJ 操作的同时也存在一些缺点:
| 索引技术 | 缺点 |
| ---- | ---- |
| D - index 和 eD - index | 可能需要重建索引以支持不同 ε 的查询 |
| eD - index | 仅适用于自连接情况 |