In this work, we track the lineage of tuples throughout their database lifetime. That is, we consider a scenario in which tuples (records) that are produced by a query may affect other tuple insertions into the DB, as part of a normal workflow. As time goes on, exact provenance explanations for such tuples become deeply nested, increasingly consuming space, and resulting in decreased clarity and readability. We present a novel approach for approximating lineage tracking, using a Machine Learning (ML) and Natural Language Processing (NLP) technique; namely, word embedding. The basic idea is summarizing (and approximating) the lineage of each tuple via a small set of constant-size vectors (the number of vectors per-tuple is a hyperparameter). Therefore, our solution does not suffer from space complexity blow-up over time, and it "naturally ranks" explanations to the existence of a tuple. We devise an alternative and improved lineage tracking mechanism, that of keeping track of and querying lineage at the column level; thereby, we manage to better distinguish between the provenance features and the textual characteristics of a tuple. We integrate our lineage computations into the PostgreSQL system via an extension (ProvSQL) and experimentally exhibit useful results in terms of accuracy against exact, semiring-based, justifications. In the experiments, we focus on tuples with multiple generations of tuples in their lifelong lineage and analyze them in terms of direct and distant lineage. The experiments suggest a high usefulness potential for the proposed approximate lineage methods and the further suggested enhancements. This especially holds for the column-based vectors method which exhibits high precision and high per-level recall.
翻译:在这项工作中,我们跟踪数据库使用寿命期间的线条。 也就是说, 我们考虑一种假设, 由查询生成的线条( 记录) 可能会影响其他的线条插入 DB, 作为正常工作流程的一部分。 随着时间的流逝, 这些图条的确切来源解释会变得深巢, 日益消耗的空间, 并导致降低清晰度和可读性。 我们使用机器学习( ML) 和自然语言处理( NLP) 技术, 即 字嵌入 。 基本设想是, 通过一组小的恒定矢量( 和近似) 来总结( ) 每条线条线条线( ) 可能会影响其他的线条插入 DB 。 随着时间的流流逝, 我们的解决方案不会因空间复杂而受到影响, 而“ 自然排序” 解释一个基础的线条。 我们设计了一个替代且改进的线条追踪机制, 将线条跟踪和查询在列一级; 特别是, 我们从此, 将每条程的直径直径直径直径分析, 将一个系统的特性和直径解, 将一个系统推, 推一个系统推, 推一个系统推, 推, 推一个系统推, 推, 推, 推, 推, 推, 推, 推, 推, 推, 推, 推, 推, 推, 推, 推, 推, 推, 推, 推, 推, 推, 推, 推, 推, 推, 推, 推, 推, 推, 推, 推, 推, 推, 推, 推, 推, 推, 推, 推, 推, 推, 推, 推, 推, 推, 推, 推, 推, 推, 推, 推, 推, 推, 推, 推, 推, 推, 推, 推, 推, 推, 推, 推, 推, 推, 推, 推, 推, 推, 推, 推, 和 和 和推, 推, 推, 推, 推, 推,