使用Desbordante高效发现条件依赖关系 / Efficient Discovery of Conditional Dependencies with Desbordante
1️⃣ 一句话总结
本文提出了一种名为ParCFDFinder的算法,通过并行化和工程优化,将条件函数依赖的发现速度平均提升118倍、内存使用减少14倍,并集成到开源数据剖析工具Desbordante中,使得在普通计算机上也能快速处理数十万行数据集。
Conditional functional dependencies (CFDs) are functional dependencies with a restricted scope: they specify the context in which a dependency holds and are useful for data-quality tasks, specifying complex integrity constraints, and extracting valuable insights from data. We study the CFD discovery problem, which is computationally demanding. We build on the state-of-the-art CFDFinder algorithm and introduce a set of algorithmic and engineering improvements, including a parallelization strategy, to produce ParCFDFinder. Our implementation is integrated into Desbordante - a high-performance open-source data profiler written in C++ that exposes a Python interface, enabling CFD discovery to be invoked from any Python program. Experimental results show that our enhancements speed up the algorithm by up to $318\times$ ($118\times$ on average) and reduce memory usage by up to $23\times$ ($14\times$ on average) compared with the existing Java-based implementation of Metanome. Integrating ParCFDFinder into Desbordante makes it possible, for the first time, to conveniently discover CFDs on datasets with hundreds of thousands of rows on a commodity machine within a reasonable time.
使用Desbordante高效发现条件依赖关系 / Efficient Discovery of Conditional Dependencies with Desbordante
本文提出了一种名为ParCFDFinder的算法,通过并行化和工程优化,将条件函数依赖的发现速度平均提升118倍、内存使用减少14倍,并集成到开源数据剖析工具Desbordante中,使得在普通计算机上也能快速处理数十万行数据集。
源自 arXiv: 2607.04030