CN116635845A - 跨系统寻找表格数据的位置 - Google Patents
跨系统寻找表格数据的位置 Download PDFInfo
- Publication number
- CN116635845A CN116635845A CN202180078296.7A CN202180078296A CN116635845A CN 116635845 A CN116635845 A CN 116635845A CN 202180078296 A CN202180078296 A CN 202180078296A CN 116635845 A CN116635845 A CN 116635845A
- Authority
- CN
- China
- Prior art keywords
- descriptors
- data
- computer
- columns
- implemented method
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2458—Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
- G06F16/2462—Approximate or statistical queries
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/221—Column-oriented storage; Management thereof
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2255—Hash tables
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/25—Integrating or interfacing systems involving database management systems
- G06F16/258—Data format conversion from or to a database
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
- G06F21/6227—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database where protection concerns the structure of data, e.g. records, types, queries
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Probability & Statistics with Applications (AREA)
- Fuzzy Systems (AREA)
- Mathematical Physics (AREA)
- Computational Linguistics (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
可以提供一种用于寻找数据位置的方法。可以提供对应于第一表格数据(14)的第一概要。可以扫描辅助数据存储系统(2)以识别存储在辅助数据存储系统(2)中的第二表格数据(24)。可以获得第二概要,其中该概要对应于第二表格数据(24)的多个第二列。可以针对所述多个第二列中的每个第二列根据所述每个第二列的单元格的内容的数值表示来计算概要。计算的概要可以包括m个描述符的向量。可以比较具有一个或多个描述符的两个集合。可以将第二概要的描述符的子集与第一概要的对应描述符进行比较,以识别第二表格数据(24)和第一表格数据(14)的全集之间的潜在匹配。
Description
背景技术
本发明总体上涉及用于寻找数据位置的计算机实施的技术。具体地,本发明涉及寻找表格数据的计算机实现的方法和计算机程序产品,其依赖于表格列的统计指纹以减少识别存储在不同存储系统中的表格数据之间的潜在匹配的计算努力。
通常,公司具有许多交易系统和记录系统,其记录与公司的业务相关的数据。数据经常被存储在关系数据库表格中。这样的表格被称为“矩形的”,因为数据被安排在列中;它们通常作为表格的行和列被显示给用户。通常的情况是,来自这些核心关系系统的数据被复制到其他系统,例如,出于分析或其他正常业务的目的。数据的形式保持为矩形,但是它们可以以不同的格式、在不同的文件名下、以及在各种存储系统上存储。随着数据被复制或重新复制以及变换,公司越来越难以知道这样的数据被移动到了哪里。
这通过以下事实而变得复杂:用户可以通过良好管制和管理的过程获得对受限数据源的访问并且使其在没有授权或管制控制的其他上下文中可用。结果,包含敏感数据的数据集可没有访问控制和/或加密的情况下被存储在存储系统中。
这通常是无意的,并且比恶意意图更归因于疏忽,如在以下示例中所展示的。用户可能不知不觉地将数据从适配企业系统移动到不适当系统。用户可进一步变换数据,仅取其子集,或移除一些行或列。此外,用户可以重命名数据文件,使得存储数据的名称与原始数据文件没有关系。销售代表可能取公司主要客户的10%的随机样本,移除地址字段并且不知不觉地将其保存在存储在第三方存储服务中的文件中。
已开发解决此类问题的解决方案,其主要涉及数据指纹和加水印。数据指纹允许创建数据集的小摘要,由此两个相同的数据集具有相同的摘要。这样做的常用方式是产生散列(也称为指纹)。然而,散列使用每比特的信息作为输入,使得单个比特的改变可以导致完全不同的摘要。即,散列甚至对最小的改变也不鲁棒。通过使用数据集内的不同散列的滑动窗口和最具代表性的位模式的测量来获得改进。然而,这种类型的指纹工作在比特级别。然而,相同的关系数据可被存储在不同数据布局内的各种存储系统中,使得比特级指纹大部分不足或不适用。
更普遍地,水印可被插入到数据中,使得数据集可被识别,即使该数据集被移动到不同的存储系统并被改变。这样的技术具有以下主要缺点:必须使用规定的算法对在组织中产生的所有矩形数据集系统地加水印,所述算法在用于创建数据的工具上通常不可用。这对于在大型组织中跨大量数据存储系统典型地创建和更新的成百上千个数据集是不切实际的,所述数据存储系统中的许多甚至不由该组织自身(例如,由云提供者)管理。
发明内容
根据第一方面,本发明实现为一种寻找数据位置的计算机实施的方法。该方法在假定第一概要(synopses)已经可用的上下文中进行。概要对应于存储在一个或多个参考数据存储系统中的表格数据的全集(corpus)的列。为了区分起见,这样的表格数据和相应的列被称为“第一表格数据”和“第一列”。扫描辅助数据存储系统以识别存储在辅助数据存储系统中的另外的表格数据(“第二表格数据”)。第二表格数据包括称为“第二列”的列。接下来,获得与第二表格数据的第二列相对应的概要(“第二概要”)。为此目的,根据所述每个第二列的单元格的内容的数值表示,为所述第二列中的每个第二列计算概要。计算的概要包括m个描述符的向量,其中m大于或等于1,但是其通常更大,例如m≥6。每个描述符是对应列的单元格的内容的数值表示的测量。描述符可以例如是统计测量,诸如平均值、标准偏差、偏度、熵、平均频率等。最后,比较一个或多个描述符的两个集合。即,将第二概要的描述符的至少子集与第一概要的对应描述符(即,相同类型的描述符)相比较,以识别第二表格数据和第一表格数据的全集之间的潜在匹配。
在优选实施例中,比较仅限于描述符的子集。可以在比较这两个集合之前识别该子集,例如,它可以仅包括鉴于全集中的对应描述符而具有最不寻常值的那些描述符。依赖于有限的描述符集合使(执行比较所需的)数据传输和存储要求变得容易。
根据另一方面,本发明实现为用于寻找数据位置的计算机程序产品。该计算机程序产品包括计算机可读存储介质,该计算机可读存储介质具有与其一起实施的程序指令。该程序指令可由处理装置执行,以便使处理装置实现上述方法的所有步骤。
现在将通过非限制性示例并且参照附图来描述实现本发明的计算机化的方法和计算机程序产品。
附图说明
附图(其中,贯穿各单独的视图,相同的参考标号表示相同或功能上相似的元件,并且与以下详细描述一起被结合在本说明书中并且形成本说明书的一部分)用于进一步展示各种实施例并且用于解释所有根据本公开的各种原理和优点,其中:
图1示意性地描绘了在实施例中的两个数据存储系统。第一表格数据的全集被存储在参考数据存储系统中,而第二表格数据被存储在辅助数据存储系统中。
图2示出了在实施例中在辅助数据存储系统上最初识别的(小)表格的示例。
图3示出了在实施例中根据需要转换图2的表格的一些列之后该表格的数值表示。
图4显示了根据实施例的如在图3的数值表格的列中获得的一组列级概要。每个概要对应于一个列并且包括一组统计描述符。为了简单起见,在该示例中,仅示出了两个统计描述符。在实施例中选择最不寻常的描述符值的子集(以粗体字符示出)以形成表格的指纹。
图5示意性地示出了在实施例中如何能够使用概要来识别右手侧的给定表格(RHS)与左手侧的参考表格(LHS)之间的匹配。
图6是示出根据实施例的跟踪表格数据位置的方法的高级步骤的流程图。
图7示意性地表示通用计算机化单元,其可包括在图1的参考存储系统和辅助存储系统的任何或每个中,并且适于实施本发明的实施例中涉及的一个或多个方法步骤。
附图示出了实施例中所涉及的设备或其部件的简化表示。具体地,所描绘的表格是有目的地小的并且它们的记录是有目的地简化的,以便于展示。图中相似(或功能上相似)的元件已被分配相同的附图标记,除非另有说明。
具体实施方式
以下描述如下构造。首先,在第1部分中描述了一般实施例和高级变体。第2部分解决了更具体的实施例;它尤其包括图6的流程的详细描述。第3部分涉及技术实现细节。注意,本方法及其变体统称为“本方法”。所有参考标号Sn(例如,S10、S15等)涉及图6的流程图的方法步骤,而数字参考标号涉及图1中示出的系统的物理部件或组件、或者本发明的实施例中所涉及的数据结构和其组件。
参照图1-图6,首先描述本发明的一个方面,该方面涉及一种寻找数据位置的计算机实现的方法。
图1描绘了执行该方法的技术背景。表格数据14的全集12被存储在一个或多个参考数据存储系统1中。系统1可以显著地包括交易系统、记录系统、(分级)存储系统等,如在许多公司中常见的。换言之,存储系统1包括计算机和存储装置。
表格数据包括列,针对所述列的概要被假定为可用。以下详细描述这些概要。如发明内容中所指出的,存储在系统1中的表格数据被称为“第一表格数据”,其包括“第一列”。辅助数据存储系统2可以类似地存储附加表格数据24(称为“第二表格数据”),也包括列。表格数据指的是按列布置的数据,即,矩形数据。表格数据通常可以表示为一个或多个表格(具有行和列)并且存储为捕获对应的数据结构的文件。在图1的上下文中,系统1、2中的每个可潜在地存储大量这种表格数据14、24。表格数据24可以例如形成数据库或任何文件夹22的一部分。
术语“列”在此被定义为在关系数据库中。即,列是数据值(有时称为记录)的集合,尽管记录有时也用于指代整个行。此类数据值通常具有相同类型(例如,数值数据、文本或任何类型的字符串、图像、音频文件、视频等)。列通常由名称或任何类型的字符串、数字或代码(其被认为是列的属性,而不是其记录)来标记(并且由此识别)。每行包括每列的数据值。即,每行可以被解释为一组元组。单元格(也称为字段)是行和列的交点;它对应于列的一个特定记录。
在图2中示出了捕获公司信息的表格数据的示例,其中,列由以下名称标识:“公司名称”、“总部”、“#雇员”、“收入2019(十亿,美元)”、“主要活动”、以及“最后事件”。图2还示出了有意简化的相应记录。每个列包括相同类型的数据。在附图中,如通常一样,列被垂直地(无偏见)表示。然而,术语“列”不排除其水平表示,应注意,可以容易地转置表格的行和列。
本方法可以由一个或多个计算机化实体11、21例如以分布式方式执行。这种实体可以主要在辅助系统2处、在参考系统1处或在参考系统和辅助系统两者处操作。例如,该方法可以通过在系统1、2中的一个或每个上运行的应用来实现,并且通常允许或要求两个系统1、2之间的交换。在变体中,该方法由外部计算机化实体执行,该外部计算机化实体根据需要适当地与每个系统1、2交互以执行该方法的步骤。在实施例中,该方法依赖于流处理、分布式消息系统来传送数据并实现所需的操作。然而,在变体中,例如,该方法可以简单地依赖于web服务。
虽然假定概要(“第一概要”)对于第一表格数据可用,但是至少在执行本方法之前,这对于辅助系统2上的第二表格数据不一定是(通常不是)这种情况。因此,辅助数据存储系统2需要被扫描(图6中的步骤S15)以识别存储在其中的表格数据24,即,“第二表格数据”。如同第一表格数据,第二表格数据包括称为“第二列”的列。
接下来,在步骤S20-S45获得概要261-266(“第二概要”)。第二概要分别对应于第二表格数据24的第二列。即,通过计算(步骤S40)第二列中的每个列的概要获得第二概要。根据对应列的单元格的内容的数值表示251-256计算每个概要。最终,概要包括m个描述符的向量,其中m≥1(但是m通常更大,例如m≥6)。如果需要,可以设想几十个描述符类型,并且如稍后详细讨论的。每个描述符是对应列的数值表示251-256的测量,例如,统计测量,参见图3和图4。
最后,鉴于标识第二表格数据24和第一表格数据的全集14之间的潜在匹配,在步骤S70处比较一个或多个描述符(每个)的两个集合。即,将第二概要261-266的描述符的至少子集(如在步骤S20-S45所获得的)与第一概要的相应描述符16(即,相同类型的描述符)进行比较S70。即,将一个算术平均值与另一算术平均值比较,将一个熵与另一熵比较等。如果所比较的描述符作为整体充分对应(S75:是),则在全集中的表格数据14和第二表格数据24之间找到了匹配。
通常,对于若干辅助存储系统2的若干表格根据需要重复执行上述方法(如图6的流程所示,参见步骤S80-S10和S90-S20),以充分找出数据位置。该方法尤其可以被执行以跟踪表格数据的位置。
注意,该方法的预期应用不旨在不适当地或错误地跟踪诸如个人用户数据之类的数据。相反,这样的应用通常旨在保护或限制专有数据和机密数据(例如商业、贸易和技术秘密)的扩散,或者旨在标识冗余存储的数据。从技术上讲,该方法的目的是极大地简化跨例如公司的若干存储系统充分地找到表格数据所需的计算。在计算上讲,识别存储在不同位置的表之间的匹配可能是非常具有挑战性的,尤其是因为表格可能仅被部分复制并粘贴在其他位置中,或者以其他方式被修改,如在背景技术部分中所讨论的。在这样的情况下,如在背景技术部分中所解释的,仅使用整个表的散列(指纹)不允许找到数据。
为了解决这一挑战,本方法涉及许可描述符,其被应用于列记录,而不是整个表。这通常需要在计算描述符之前转换列记录中的一些或全部。这样的描述符尤其可以是统计描述符,允许表的列的数值表示的概括统计。因为列通常包含相同类型的数据,所以统计描述符可以充分地捕获它们的数值表示的基本方面,并且因此充当许可指纹26,即,允许修改。只要接近的数值集合导致接近的统计测量,统计测量确实是允许的。例如,合适的统计测量可以包括统计平均值,例如,算术、几何、调和平均值,或例如从广义均值公式或广义f均值获得的任何均值。其他描述符可包括中值、模式、范围、方差、标准分散、中心矩等。通常,合适的统计描述符可以涉及对应数值的位置、分布和/或形状。除了统计描述符之外,可以使用具有类似属性的其他描述符,诸如局部敏感散列和局部敏感散列指纹。
描述符集合可以相应地用于每个列,作为该列的许可指纹。列的部分副本可以基本上保留原始列的相同统计特性。尽管如此,所使用的描述符的多重性(其中m≥2)使得可以补偿在统计描述中丢失的信息,以避免在比较S70中的假阳性。并且因为描述符应用于列,所以通过删除一些列而修改的表格仍然可以部分地匹配原始表。如人们所理解的,所提出的方法允许修改,不仅因为所使用的描述符(例如,统计描述符)的性质,而且由于它们被应用的粒度(列)。
因此,与依赖于整个表的散列的指纹方法相反,本方法允许找到部分匹配。换言之,本方法使得可以以一定概率确定重定位的表格数据24是否全部或部分地对应于表格数据14。
因为描述符的数量m通常远小于如通常包含在列中的记录的数量,所以本方法在计算上保持为易处理,甚至对于通过1000以上计算机化存储系统存储100000以上的表格的公司也是如此。此外,因为该方法后验地扫描表格,所以与加水印方法相反,用户不需要改变产生或更新表格数据的方式。
现在将参照本发明的具体实施例详细描述所有这些。如所述的,基于数值数据计算S40概要,而一些列最初可以包括其他类型的数据,如在图2中举例说明的。在该示例中,初始表格包括包含整数(“#雇员”,第三列)或实数(“收入2019(十亿,美元)”,第四列)的列。这样的列可以不需要任何转换,因为可以直接计算描述符(步骤S40,在步骤S30为否之后)。即,单元格已经由数值组成,该数值可能已经适合于计算对应的概要。然而,一些列包括字符串(“公司名称”、“总部”、第一列和第二列)或字符串列表(“主要活动”、倒数第二列)。其他列可包括日期,其可能以不允许直接计算描述符的格式(例如,“2020年11月6日”)存储。因此,在实施例中,这种列的记录(即,单元格的内容)需要被转换S34为相应的数值。这样做导致相应列的数值表示。最终,如图3所示,针对每个列获得合适的数值表示251-256。在图3中,附图标记25表示在转换一些列之后的初始表格数据24的数值表示。
换句话说,每个第二列的单元格的内容可能需要被转换为相应的数值以获得适当的数值表示,除非单元格已经包括适合于获得概要的值。通常,已由数值组成的列数据不需要转换。类似地,一些文本数据允许从文本直接提取度量(例如,不在词典中的词的分数、唯一词的数量等)。由此,文本数据可能不一定需要被转换。此外,通常可以在许多计算机和软件包上操作和计算日期以产生数值,使得日期也不总是需要被转换。因此,是否转换初始列数据还取决于可用的转换方法。
在这方面,所选择的转换方法优选地取决于存储在列中的数据值的类型。即,本方法可以首先确定是否需要S30将列转换成数值,如果是(S30:是),则将该列的单元格转换成相应的数值。为此目的,本方法可以寻求识别表示列的单元格中包含的数据的类型的数据类型值。这种数据类型值可以例如已经存储为表格的属性(并且因此是可用的),如在图2中假设的,图2在表格底部示出了这种数据类型(以斜体,作为人类可读字符串)。数据类型值不形成列记录的一部分。在该示例中,用“字符串(1)”、“字符串(1)”、“整数”、“实数”、“字符串(2)”和“日期”表示它们,其中字符串(1)是指单个字符串,而字符串(2)是指字符串的列表(例如,字符串的表格)。在变体中,如果必要的话,可以使用简单的测试确定这些数据类型。在这两种情况下,可基于根据相应的数据类型选择S32的转换方法将单元格的内容转换为相应的数值。
例如,所选择S32的转换方法可以是散列方法,其对于不相关的字符串(诸如公司名称或国家代码)可能是足够的,如对于图2中所示的表格的第一列和第二列所做的。在其他情况下,局部敏感散列方法或局部保持散列方法可能更适合于保持相关记录之间的距离。注意,局部保持和局部敏感散列方法不仅可以用于转换S34原始数据,而且可以用于随后获得S40摘要,即,描述符。在又一些情况下,可以使用特征提取方法,如对图2的倒数第二列所做的。在那种情况下,该提取使用每个记录中的扁平字符串列表的分词;随后使用降维技术将所获得的向量投影在1D空间中。
密切相关的嵌入算法可以用于文本等。如果需要,其他特征提取/降维方案可例如用于图像、混合数据类型或数值表格,以及用于音频文件和视频。注意,可以在全集中可用的相同类型的列上训练合适的特征提取器。特征提取之后优选进行降维步骤(例如,至1D空间),以便获得感兴趣的列的每个单元格的单个数值。
对于最后一列所示的日期,存在简单的转换方案,其可以用于将(如最初以任何格式存储的)日期值转换为例如Unix时间戳,如图3所示。
不仅所选择的转换方法,而且所选择的描述符集合可以取决于列的数据值的类型。为了简单起见,图4的示例仅假设两种类型的描述符(即,熵和偏度,由f1和f2表示)。再次为了简单起见,进一步假设这样的描述符跨各个列是相同的。然而,对本领域的技术人员而言将显而易见的是,可以基于列中包含的数据的类型来选择不同描述符集合。例如,熵通常是可以用于任何种类的数值数据的满意描述符。然而,算术平均值有时是无用的,使得其他描述符(例如,分散统计、自相关、最小值、最大值、模式等)可能是优选的。
在简单的实施例中,第二概要261-266的所有描述符(如在步骤S40计算的)在步骤S70进行的比较中使用,即,与第一概要的对应描述符16进行比较并且识别潜在匹配。在这方面,图5示意性地描绘了如针对表格数据14、24计算的概要集合。LHS表格数据14包括列C1…Cn;它是全集的表格,适当地存储在参考系统1中的某处。RHS表格数据24仅包括两个列X1、X2。在该示例中,假定该表格数据24通过系统扫描处理S15被发现。即,该表格数据24被存储在辅助存储系统2中。因为已经为表格数据14索引了n个列,所以在该情况下n个m个描述符的集合(即,n个第一概要,每一个包括m个描述符)是可用的。基于针对两个列X1、X2的相同类型的描述符计算概要给出第二概要,其在该示例中碰巧匹配表格数据14的前两个概要。匹配的概要在图5中由虚线包围。因此,在迁至新位置的表格数据24的列X1、X2之间发现了部分匹配。
可以设想任何合适的度量以关于潜在匹配得出结论。例如,当比较S70两个描述符集合时,可以根据对于任何比较的表格对,该对的匹配概要的数目进行计数的度量来估计S75匹配。该数量方便地除以最小表格的列数。例如,给定一对比较的表格,其中第一表格具有比第二表格更少数量的列,度量可以被写为(对于两个表格的)匹配概要的数量除以两个表格中的最小列数,如在章节2.1中进一步讨论的。在变体中,可以基于概要对之间的相似性测量来确定匹配,以允许部分匹配的更精确量化。在以上度量的变体中,在步骤S70处的比较可以基于在由描述符形成的向量之间(即,在概要之间)计算的距离或相关系数来执行。
在图4中,附图标记26表示包括所有描述符值的完整的概要集合。在概要中涉及的描述符的数量必然影响在步骤S70处进行的比较。当涉及大量表格和列时,大量描述符可能使方法难以处理。幸运的是,优化是可能的,如也在章节2.2中所讨论的。因此,可以设想更复杂的实施例,其中仅概要261-266的描述符的子集与第一概要的描述符16的对应子集(即,相同类型的描述符)相比较(在步骤S70)。这样的比较可以进一步限于对应于相同类型的列的描述符,目的是更高效地识别S75第一表格数据14和第二表格数据24之间的潜在匹配。
这样的描述符子集可进一步被明智地选择,如现在参照图4和图6所讨论的。也就是说,在实施例中,在比较S70子集之前,可以识别最有特性描述符的子集(步骤S50)。例如,鉴于全集12中的对应描述符16,这样的描述符可以对应于具有最不寻常值的描述符。为此目的,该方法可以显著地维持参考描述符的参考值(例如,平均值和标准偏差)。例如,与在全集中发现的平均值相差超过q倍的标准偏差(其中,例如,q=1、1.5或2)的描述符值可以被认为是足够不寻常的而被保留。更一般地,可以根据描述符值和参考值(例如,全集中相同类型的列的描述符的算术平均值)之间的距离来理解不寻常性。在图4的假想示例中,最不寻常的描述符值以粗体字符表示。通常,描述符的子集可限于最不寻常的前K个描述符,其中K通常大于或等于3或更大。
因此,在步骤S70处的比较可以限于几个所选择的描述符,这减轻了存储和传输要求。可以设想不同实现方式(例如,使用参考值代替非不寻常描述符的实际值),其允许以低计算成本执行系统比较,如在下文和章节2.2中进一步讨论的。
由于仅描述符的选择现在是相关的,因此该方法不需要永久地存储所有可用的描述符值。相反,第二概要261-266(如在步骤S40获得的)可以作为压缩的数据结构被存储S55,该压缩的数据结构包括不寻常描述符,但是丢弃剩余的描述符值。例如,当使用线性索引时,可以存储不寻常描述符值以及描述符的索引(对应于图4中的描述符的m×n表格中的位置),例如,作为{{4.88,{1,5}},{0.13,{2,1}},{0.67,{2,5}}}或作为{{4.88,5}},{0.13,7},{0.67,11}}。
在图4的示例中,另一个可能性是用来自全集的参考值(例如,平均值)替换被发现不足够不寻常的所有描述符值,例如,{{<f1,1>,{1,1}},{<f1,2>,{1,2}},{<f1,3>,{1,3}},{<f1,4>,{1,4}},{4.88,{1,5}},{<f1,6>,{1,6}},{0.13,{2,1},…,{0.67,{2,5}},{<f2,6>,{2,6}}}。在以上阵列中,符号<fi,j>是指从全集中获得的与列j相同类型的列的第i个描述符的平均值。进一步的可能性是用“线索”(例如,字符串或数字“0”)代替参考值,该线索指示对应的参考值将由比较算法使用,即,在图4的示例中,{0,0,0,0,{4.88,{1,5}},0,{0.13,{2,1},…,{0.67,{2,5}},0}。在这两种情况下,所获得的数据结构允许所选描述符与第一概要的对应描述符进行比较,并且由此识别潜在匹配。注意,第一概要中的对应描述符可以类似地被(或者必须被)参考值替换。压缩描述符数据结构的另一可能性是计算跨概要的相关矩阵并将所得矩阵存储为表格的指纹。
考虑到与另一值子集的低冲突概率(假设施加足够大的K值),如上所述的压缩数据结构或甚至描述符值的仅子集{4.88,0.13,0.67}可进一步用作表格的指纹(用于除在步骤S70处执行的比较之外的其他目的)。即,该指纹包括所选择的描述符的子集,但是丢弃其他描述符值。
可以实施本方法以尝试和识别存储在不适当的存储系统(例如,可用于一些目的但不适于存储秘密或机密数据的系统)中的表格数据。在那种情况下,当发现匹配时,那么实现实体可关于发现的任何匹配表格数据24采取S80动作。首先,在适当情况下,实体可能报告该匹配(例如,在数据库中记录发现的匹配),以便允许通知文件的所有者。实体还可提示所有者采取适当的补救动作等。此外,如果有必要,实体可以修改与对应文件相关联的用户许可(例如,以防止未经授权的用户访问该文件)、重新定位或者甚至删除该文件。
尽管如此,本方法也可应用于无用副本的检测,以节省存储。此外,参考图6讨论的算法的一部分(即步骤S15至S55)可以用于最初索引存储在适当系统1中的表格数据。此外,可以使用步骤S70、S75和S90,同时通过扫描附加的存储系统来逐步扩展表格数据的索引,由此可能需要检测达布隆和部分匹配。具体地,在步骤S40为任何扫描的存储系统的任何新表格计算的概要可以用于更新S90全集12的已经索引的(第一)概要。更新步骤S90可以有利地利用作为压缩数据结构存储S50的概要261-266。
如前所述,可使用分布式应用来实现本方法。给定在不同存储系统1、2之间所需的不同交换,本方法可以有利地使用流处理、分布式消息传送系统(诸如Kafka消息传送系统)执行,例如以向远程系统发送S52第二概要261-266的描述符,以便后者在步骤S70执行比较。更一般地,本方法可以至少部分地使用诸如Kafka的流处理软件平台来实现。
为了完整性,本发明的另方面涉及一种计算机程序产品。该产品包括具有程序指令的计算机可读存储介质,其中所述程序指令可由处理装置执行,以便使后者执行根据本发明方法的步骤,即,扫描辅助数据存储系统,获得概要,以及比较描述符集合以识别存储在辅助数据存储系统中的表格数据和存储在全集中的数据之间的潜在匹配。这个方面在章节3中详细讨论。
以上实施例已经参考附图简要地描述并且可以包括多个变型。可以设想以上特征的若干组合。示例在下一章节中给出。
本章节描述了允许对矩形数据集形成指纹,使得副本和所导出的数据集两者能够以一定概率被识别的实施例。这样的实施例允许组织以某一概率识别特定矩形数据集已被存储在它可访问的数据存储内的何处,而不管它如何被移动到那里,并允许它可能已被变换的事实。
这可有利地在不改变数据集中的数据(即,不加水印[2])的情况下实现。此外,所使用的技术明显不同于散列的滑动窗口[1]。所提出的方案假定可以扫描组织存储系统。针对通过扫描找到的每个矩形数据集创建概要。如在前一章节中所解释的,概要创建不在比特级操作,而是在数据级上,从矩形数据的列操作。在需要时,列被转换成数值。即,一些列可能已经包括合适的数值。转换可进一步取决于列的类型。例如,可以根本不转换整数值,可以将日期转换成数值时间戳(诸如Unix时间戳),可以使用局部敏感散列技术对字符串进行散列等。列的概要可以包括该列的一个或多个统计测量并且与其原始类型相关联。可以从数据集的所有值或者仅从样本提取概要。然后,矩形数据集的概要(将其称为超级概要)是其列的概要的集合。
这样的概要允许给定数据集与现有全集的数据集容易地比较(章节2.1)。如果必要,可以识别超级概要的最不寻常的描述符,并且将其用作数据集的指纹(章节2.2)。在这两种情况下,当扫描新数据集时,所生成的指纹与现有数据集的指纹进行比较。相似性度量可以用于估计相似性程度。
考虑关系数据库表格T,该关系数据库表格T包含不同类型的n列,包含许多行。能访问该表格的数据的实体创建列概要,如章节1中所解释的。例如,该实体可以作为专用实体运行,或者可以作为诸如元数据目录的更加集成的系统的一部分运行。从对表格的列的统计测量提取所创建的概要。一些列类型可被转换以使得对它们执行静态测量更简单。诸如熵的测量是鲁棒的,因为输入的熵和散列的输入集合的熵是相似的。例如,可以在字符串上使用诸如局部保持散列的技术,以确保输入的某些其他统计属性通过散列被保留。例如,通过将函数f1(.)、f2(.)、……、fm(.)应用于列C1、…、Cn中的每个,可以针对每个列实现m个统计测量。
对于n个列中的每个列,实体可以将m个概要以及该列的原始数据类型发送到实际执行相似性测量的系统,例如后端系统,这可以使用诸如Kafka的消息传送系统来方便地实现。
这种方法使得可以识别两个数据集是相同的还是一个是从另一个导出的。它继续如下。如果来自数据集的列存在于另一数据集中,则该列的概要将是相同的。非常不可能的是,两个不同的列将具有针对所有概要的匹配值。由此,两个数据集T和U之间的匹配的简单度量是函数Match(T,U)=100×#ColumnsWithSameSynopses(T,U)。即,该函数将匹配概要的数目除以两个表格中的最小列目。换言之,Match(T,U)以百分比测量两个数据集之间的相对重叠。两个相同的数据集产生100%匹配。
更有趣的是,如果已经通过连结(join)两个数据集T和U获得了数据集V,使得T的列存在于V中,则V将100%匹配数据集T,因为V是导出的副本并且T是最窄的表格。如果已经通过从T中移除列获得了另一数据集W,则它也将100%匹配,因为W也是导出的副本并且W是这两个中最窄的表格。这示出了可如何在公司全集中识别副本和导出的数据集。
公认地,取决于表格的宽度和所使用的概要的数量,这可能导致太多的数据而无法传送、存储和操作。因而,可以如下优化上述方案。从取自T的m×n个描述符中,我们可以识别作为最具特征的描述符的描述符的子集并且使用这些描述符来识别T。所选择的值是对于相同类型的列最不寻常的那些值。
由于所有值是数值的,对于应用于相同列类型的相同统计类型的所有测量,可获得差异性的简单测量作为与平均值的距离。例如,如果T的列C1具有类型“字符串”并且计算C1的熵E,那么E可以与全集中已经存在的类型“字符串”的列的所有熵测量的平均值进行比较。如果熵值E充分偏离平均值(鉴于标准偏差可以理解的某物),则熵值E可最终被选择为充分不寻常的描述符,例如,如章节1中所解释的。可以类似地测量T的所有m×n个描述符的不寻常性,选择前K个描述符(例如,K=5),并且使用这样的描述符作为T的指纹。
类似地,全集中的所有数据集可以通过一组K个描述符而刻画特征。由此,现在可以将T与全集中的所有其他数据集进行比较。所有表格可以通过与所有K个描述符的相似性来独立地排名。如果比较数包含相同列类型的相同统计描述符,则通过直接比较值,或者如果比较数不包含相同列类型的相同统计描述符,则通过使用平均值,来创建排名。换言之,平均值用作代替物,代替实际描述符值,这便于描述符值的存储和传输以用于比较它们的目的。
然后,通过组合K个独立的排名(例如,通过将每个的顺序相加并且将结果排序),识别与T最相似的表格。与T最相似的表格出现在列表的顶部,并且与T的相似性程度是指纹的K个元素与表格的指纹中的元素(或替代值)之间的归一化欧几里得距离。
图6描述了辅助存储系统被相继S10扫描和处理以用于比较S70的流程,但是它们可被并行处理。在步骤S15扫描当前辅助系统2以寻找表格数据。表格数据被相继处理,见步骤S20,逐列处理,见步骤S25。如果当前列需要转换(步骤S30:是),则根据列的原始数据类型选择S32合适的转换方法,并且根据选择的方法将列单元格转换S34成数值,之后计算其概要S40。否则(步骤S30:否),在步骤S40直接计算概要。如之前解释的,获得概要作为向量,即,一组描述符。一旦处理了所有列(S45:是),就鉴于全集中的相应(例如,平均)值来识别概要中的最不寻常描述符(步骤S50)。然后,可以将所选择的描述符发送(步骤S52)至远程系统以供其执行S70比较。在步骤S55存储所获得的所有概要的压缩表示;出于不同目的,可以将它们用作当前表格数据的指纹。在步骤S70处,将仅选择的描述符与全集的描述符进行比较以识别潜在匹配。在比较中可能涉及替换值,而非不寻常的描述符值不涉及,如先前所述。如果没有找到匹配(S75:否),则全集可以在步骤S90基于存储的(压缩的)概要表示进行更新,然后开始处理S20当前存储系统2上的另一表格。如果发现匹配(步骤S75:是),则比较实体(例如,远程系统)可以对此进行报告并且采取所有必要的动作(重新定位、删除、修改许可等),步骤S80。然后,该方法将移动S10到下一个存储系统2,以此类推。在变体中,系统地更新全集,而不管在步骤S75处是否找到匹配。
该流程对应于章节2.2中描述的场景。这个流程可以根据在章节2.1中解释的场景来简化。也就是说,鉴于在步骤S70处比较所有描述符,可以在步骤S50处选择所有描述符值。在步骤S55将相应地存储完整数据结构。
计算机化的系统和装置可以被适当地设计用于实施如在此描述的本发明的实施例。在这方面,可以理解,本文描述的方法在很大程度上是非交互的和自动的。在示范性实施例中,在此描述的方法可以在交互式、部分交互式或非交互式系统中实现。本文中描述的方法可在软件、硬件或其组合中实现。在示范性实施例中,在此提出的方法以软件实现,作为可执行程序,后者由合适的数字处理设备执行。更一般地,可实现本发明的实施例,其中使用虚拟机和/或诸如个人计算机、工作站等通用数字计算机。
例如,图7中描绘的系统示意性地表示可形成参考存储系统1和辅助系统2中的一个或多个的一部分的计算机化单元101,例如,通用计算机或专用计算机。
在示例性实施例中,在硬件架构方面,如图7所示,单元101包括至少一个处理器105、缓存存储器112以及耦接至存储器控制器115的存储器110。可能涉及若干处理器。为此目的,处理单元可以被分配各自的存储器控制器,如本身已知的。
一个或多个输入和/或输出(I/O)设备145、150、155(或外围设备)经由本地输入/输出控制器135通信地耦合。I/O控制器135可以耦接到或包括如本领域中已知的一条或多条总线和系统总线140。输入/输出控制器135可具有为简单起见而省略的额外元件,例如控制器、缓冲器(高速缓存)、驱动器、中继器和接收器,以实现通信。进一步,本地接口可以包括地址、控制和/或数据连接,以实现上述组件之间的适当通信。
处理器105是用于执行软件的硬件设备,特别是最初存储在存储器110中的软件。处理器105可以是任何定制或可商购的处理器。处理器包括一个或多个中央处理单元(CPU)以及可能的一个或多个图形处理单元(GPU)。通常,这种处理器可以涉及任何类型的基于半导体的微处理器(以微芯片或芯片组的形式),或通常涉及用于执行软件指令的任何装置。
存储器110可以包括易失性存储器元件(例如,随机存取存储器)和非易失性存储器元件中的任何一个或组合。此外,存储器110可以并入电子、磁性、光学和/或其他类型的存储介质。注意,存储器110可以具有分布式架构,其中不同部件彼此远离定位,但是可以由处理器105访问。
存储器110中的软件可以包括一个或多个单独的程序,每个程序包括用于实现逻辑功能的可执行指令的有序列表。在图7的示例中,存储器110中的软件包括计算机化方法,形成根据示例性实施例的本文描述的所有方法的一部分,并且具体地,包括合适的操作系统(OS)。OS实质上控制其他计算机程序的执行并且提供调度、输入-输出控制、文件和数据管理、存储器管理以及通信控制和相关服务。
本文描述的方法(或其部分)可以是源程序、可执行程序(目标代码)、脚本或包括要执行的指令集的任何其他实体的形式。当处于源程序形式时,则需要经由编译器、汇编器、解释器等(如本身已知的)变换程序,该编译器、汇编器、解释器可以或可以不包括在存储器110内,以便结合OS适当地操作。此外,该方法可以被写为具有数据和方法的类的面向对象的编程语言,或者具有例程、子例程和/或函数的过程编程语言。
可能地,常规键盘和鼠标可耦接至输入/输出控制器135。可以包括其他I/O设备145-155。计算机化单元101还可包括耦合到显示器130的显示控制器125。在示范性实施例中,计算机化单元101还可包括网络接口或收发器160,用于耦合到网络,进而实现去往/来自其他外部部件的数据通信。
网络在单元101与外部设备之间发送和接收数据。网络可能以无线方式实现,例如,使用无线协议和技术,诸如Wifi、WiMax等。网络可以是固定无线网络、无线局域网(LAN)、无线广域网(WAN)、个人区域网(PAN)、虚拟专用网(VPN)、内联网或其他合适的网络系统,并且包括用于接收和传送信号的设备。
网络还可以是基于IP的网络,用于经由宽带连接在单元101与任何外部服务器、客户端等之间通信。在示例性实施例中,网络可以是由服务提供商管理的管理IP网络。此外,网络可以是分组交换网络,诸如LAN、WAN、互联网网络、物联网网络等。
如果单元101是PC、工作站、智能设备等,则存储器110中的软件还可以包括基本输入输出系统(BIOS)。BIOS存储在ROM中,使得当激活计算机化单元101被激活时可以执行BIOS。当单元101在操作中时,处理器105被配置为执行存储器110内存储的软件,传送去往和来自存储器110的数据,并且通常根据软件控制计算机化单元101的操作。
本文所描述的方法和OS整体或部分地由处理器105读取,通常缓冲在处理器105内,并且然后执行。当在此描述的方法以软件实现时,这些方法可以存储在任何计算机可读介质(如存储装置120)中,以供任何计算机相关系统或方法使用或结合任何计算机相关系统或方法使用。
本发明可以是方法和/或计算机程序产品。计算机程序产品可包括其上具有用于使处理器执行本发明的各方面的计算机可读程序指令的计算机可读存储介质。
计算机可读存储媒体可为可保留和存储供指令执行装置使用的指令的有形装置。计算机可读存储介质可以是,例如但不限于,电子存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备、或者上述的任意合适的组合。计算机可读存储介质的更具体示例的非穷尽列表包括以下各项:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式紧凑盘只读存储器(CD-ROM)、数字通用盘(DVD)、记忆棒、软盘、诸如穿孔卡之类的机械编码设备或具有记录在其上的指令的槽中的凸出结构、以及上述各项的任何合适的组合。如本文所使用的计算机可读存储媒体不应被解释为暂时性信号本身,例如无线电波或其他自由传播的电磁波、通过波导或其他传输媒体传播的电磁波(例如,穿过光纤电缆的光脉冲)或通过电线发射的电信号。
本文中所描述的计算机可读程序指令可以经由网络(例如,互联网、局域网、广域网和/或无线网络)从计算机可读存储介质下载到相应的计算/处理设备,或者下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光传输纤维、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配器卡或网络接口接收来自网络的计算机可读程序指令,并转发计算机可读程序指令以存储在相应计算/处理设备内的计算机可读存储介质中。
用于执行本发明的操作的计算机可读程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、集成电路的配置数据、或以一种或多种程序设计语言的任何组合编写的源代码或目标代码,这些程序设计语言包括面向对象的程序设计语言(诸如Smalltalk、C++等)和过程程序设计语言(诸如“C”程序设计语言或类似程序设计语言)。计算机可读程序指令可以完全地在用户计算机上执行、部分在用户计算机上执行、作为独立软件包执行、部分在用户计算机上部分在远程计算机上执行或者完全在远程计算机或服务器上执行。在后一种情况下,远程计算机可通过任何类型的网络(包括局域网(LAN)或广域网(WAN))连接至用户计算机,或者可连接至外部计算机(例如,使用互联网服务提供商通过互联网)。在一些实施例中,包括例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA)的电子电路可以通过利用计算机可读程序指令的状态信息来使电子电路个性化来执行计算机可读程序指令,以便执行本发明的各方面。
下面将参照根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述本发明。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
这些计算机可读程序指令可被提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器以产生机器,使得经由计算机或其他可编程数据处理装置的处理器执行的指令创建用于实现在流程图和/或框图的或多个框中指定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置、和/或其他设备以特定方式工作,从而,其中存储有指令的计算机可读存储介质包括包含实现流程图和/或框图中的或多个方框中规定的功能/动作的方面的指令的制造品。
也可以把计算机可读程序指令加载到计算机、其他可编程数据处理装置、或其他设备上,使得在计算机、其他可编程装置或其他设备上执行一系列操作步骤,以产生计算机实现的处理,使得在计算机、其他可编程装置或其他设备上执行的指令实现流程图和/或框图中的或多个方框中规定的功能/动作。
附图中的流程图和框图示出了根据本发明的不同实施例的系统、方法和计算机程序产品的可能实现方式的架构、功能和操作。对此,流程图或框图中的每个框可表示指令的模块、段或部分,其包括用于实现指定的逻辑功能的一个或多个可执行指令。在一些备选实现中,框中标注的功能可以不按照图中标注的顺序发生。例如,取决于所涉及的功能,连续示出的两个块实际上可以基本上同时执行,或者这些块有时可以以相反的顺序执行。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作或执行专用硬件与计算机指令的组合的专用的基于硬件的系统来实现。
虽然已经参考有限数量的实施例、变型和附图描述了本发明,但是本领域技术人员将理解,在不背离本发明的范围的情况下,可以做出各种改变并且可以替换等同物。具体地,在不脱离本发明的范围的情况下,在给定的实施例、变型或附图中示出的叙述的特征可以与另实施例、变型或附图中的另特征组合或替换另特征。因此,可设想关于任何上述实施例或变型描述的特征的各种组合,这些组合保持在所附权利要求的范围内。此外,在不背离本发明的范围的情况下,可以做出许多微小修改以使特定情况或材料适应本发明的教导。因此,本发明旨在不限于所公开的具体实施方式,而是本发明将包括落在所附权利要求范围内的所有实施方式。此外,可以设想除上面明确触摸之外的许多其他变型。
Claims (20)
1.一种寻找数据位置的计算机实现的方法,所述方法包括:
给定存储在一个或多个参考数据存储系统中的第一表格数据的全集的多个第一列的第一概要,扫描辅助数据存储系统以识别存储在所述辅助数据存储系统中的第二表格数据,所述第二表格数据包括多个第二列;
通过对于所述多个第二列中的每个第二列,根据所述每个第二列的单元格的内容的数值表示计算概要,获得所述第二表格数据的所述多个第二列的第二概要,其中所述概要包括m个描述符的向量,m≥1,每个描述符是所述数值表示的测量;以及
比较具有一个或多个描述符的两个集合,由此将所述第二概要的描述符的至少一个子集与所述第一概要的对应描述符进行比较,以识别第二表格数据和第一表格数据的所述全集之间的匹配。
2.根据权利要求1所述的计算机实现的方法,其中:
在比较所述两个集合时,仅将第二概要的描述符的所述子集与第一概要的对应描述符进行比较,以识别第一表格数据和第二表格数据之间的匹配。
3.根据权利要求2所述的计算机实现的方法,其中,所述方法进一步包括:
在比较所述两个集合之前,将所述描述符的所述子集识别为鉴于所述全集的第一概要的对应描述符具有最不寻常值的描述符。
4.根据权利要求3所述的计算机实现的方法,其中,所述方法进一步包括:
存储作为压缩的数据结构获得的第二概要,后者包括具有最不寻常值的那些描述符,并且丢弃剩余的描述符。
5.根据权利要求4所述的计算机实现的方法,其中,所述方法进一步包括:
根据存储为压缩的数据结构的第二概要来更新所述全集的第一概要。
6.根据权利要求1所述的计算机实现的方法,其中:
在比较所述两个集合时,将第二个概要的所有描述符与第一个概要的对应描述符进行比较以识别所述匹配。
7.根据权利要求6所述的计算机实现的方法,其中:
在比较所述两个集合时,根据对于任意表格的对,对该对的匹配概要的数目进行计数的度量,来识别所述匹配。
8.根据权利要求1所述的计算机实现的方法,其中:
比较具有一个或多个描述符的所述两个集合包括计算这两个描述符集合之间的相关性测量、距离和相似性测量中的一个。
9.根据权利要求1所述的计算机实现的方法,其中,所述方法进一步包括:
使用流处理、分布式消息传送系统将第二概要的描述符的所述至少一个子集发送到远程系统,供其比较这两个集合。
10.根据权利要求1所述的计算机实现的方法,其中:
计算所述概要进一步包括将所述每个第二列的单元格的内容转换成相应数值以获得所述数值表示,除非所述单元格已经由适合于获得所述概要的值组成。
11.根据权利要求10所述的计算机实现的方法,其中:
计算所述概要还包括,在转换所述内容之前,识别代表所述每个第二列的单元格中包含的数据类型的数据类型值;以及
基于根据所述数据类型值选择的转换方法将所述内容转换为所述相应数值。
12.根据权利要求11所述的计算机实现方法,其中:
所述转换方法选自以下方法中的一者或多者:散列方法、局部敏感散列方法、局部保持散列方法、和特征提取方法。
13.根据权利要求1所述的计算机实现的方法,其中,所述方法还包括,在扫描所述辅助数据存储系统之前:
扫描所述一个或多个参考数据存储系统以识别第一表格数据的所述全集;以及
通过针对所述多个第一列中的每个第一列,根据所述每个第一列的单元格的内容的数值表示计算概要来获得所述第一概要,其中这个概要包括m个描述符的向量,m≥1,每个描述符是所述数值表示的测量。
14.根据权利要求13所述的计算机实现的方法,其中:
所述方法还包括根据所获得的第二概要的描述符来更新所述全集的第一概要。
15.根据权利要求1所述的计算机实现的方法,其中:
对于每个第二列计算的所述概要包括m≥2个描述符的向量,这些描述符包括一个或多个统计描述符,每个统计描述符是所述数值表示的统计测量。
16.根据权利要求15所述的计算机实现的方法,其中:
根据对所述数值表示的数据值的位置、分布和形状中的一者的测量来计算所述统计描述符中的每一个。
17.根据权利要求1所述的计算机实现的方法,其中:
所述方法还包括关于被发现与所述全集中的任何所述第一表格数据匹配的所述第二表格数据采取动作。
18.一种用于寻找数据位置的计算机程序产品,所述计算机程序产品包括具有随其实施的程序指令的计算机可读存储介质,所述程序指令可由处理装置执行,以使所述处理装置:
给定存储在一个或多个参考数据存储系统中的第一表格数据的全集的多个第一列的第一概要,扫描辅助数据存储系统以识别存储在所述辅助数据存储系统中的第二表格数据,所述第二表格数据包括多个第二列;
通过对于所述多个第二列中的每个第二列,根据所述每个第二列的单元格的内容的数值表示计算概要,获得第二表格数据的所述多个第二列的第二概要,其中所述概要包括m个描述符的向量,m≥1,每个描述符是所述数值表示的测量;以及
比较具有一个或多个描述符的两个集合,由此将第二概要的描述符的至少一个子集与第一概要的对应描述符进行比较,以识别第二表格数据和第一表格数据的所述全集之间的匹配。
19.根据权利要求18所述的计算机程序产品,其中:
所述程序指令可执行以使得所述处理装置仅将第二概要的描述符的所述子集与第一概要的对应描述符进行比较。
20.根据权利要求19所述的计算机程序产品,其中:
所述程序指令可由所述处理装置执行,以进一步使所述处理装置在比较所述两个集合之前,将所述描述符的所述子集识别为鉴于所述全集的第一概要的对应描述符具有最不寻常值的描述符。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/119,704 US11500886B2 (en) | 2020-12-11 | 2020-12-11 | Finding locations of tabular data across systems |
US17/119,704 | 2020-12-11 | ||
PCT/IB2021/060784 WO2022123370A1 (en) | 2020-12-11 | 2021-11-21 | Finding locations of tabular data across systems |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116635845A true CN116635845A (zh) | 2023-08-22 |
Family
ID=81941476
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202180078296.7A Pending CN116635845A (zh) | 2020-12-11 | 2021-11-21 | 跨系统寻找表格数据的位置 |
Country Status (6)
Country | Link |
---|---|
US (1) | US11500886B2 (zh) |
JP (1) | JP2024501404A (zh) |
CN (1) | CN116635845A (zh) |
DE (1) | DE112021006042T5 (zh) |
GB (1) | GB2616577A (zh) |
WO (1) | WO2022123370A1 (zh) |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5802528A (en) | 1996-05-24 | 1998-09-01 | Oracle Corporation | Method and apparatus for data comparisons |
US8666998B2 (en) | 2010-09-14 | 2014-03-04 | International Business Machines Corporation | Handling data sets |
US9734223B2 (en) | 2013-06-14 | 2017-08-15 | International Business Machines Corporation | Difference determination in a database environment |
US9836526B2 (en) | 2013-12-17 | 2017-12-05 | International Business Machines Corporation | Selecting a structure to represent tabular information |
US9928281B2 (en) | 2015-03-20 | 2018-03-27 | International Business Machines Corporation | Lightweight table comparison |
US10824637B2 (en) * | 2017-03-09 | 2020-11-03 | Data.World, Inc. | Matching subsets of tabular data arrangements to subsets of graphical data arrangements at ingestion into data driven collaborative datasets |
US10445062B2 (en) | 2016-09-15 | 2019-10-15 | Oracle International Corporation | Techniques for dataset similarity discovery |
US10942947B2 (en) | 2017-07-17 | 2021-03-09 | Palantir Technologies Inc. | Systems and methods for determining relationships between datasets |
US11561973B2 (en) * | 2017-09-29 | 2023-01-24 | Oracle International Corporation | Statistics based query transformation |
US11474978B2 (en) | 2018-07-06 | 2022-10-18 | Capital One Services, Llc | Systems and methods for a data search engine based on data profiles |
US20200175559A1 (en) * | 2018-12-04 | 2020-06-04 | Sap Se | Representing sets of entitites for matching problems |
US11461671B2 (en) * | 2019-06-03 | 2022-10-04 | Bank Of America Corporation | Data quality tool |
CN110427992A (zh) | 2019-07-23 | 2019-11-08 | 杭州城市大数据运营有限公司 | 数据匹配方法、装置、计算机设备及存储介质 |
US11604797B2 (en) * | 2019-11-14 | 2023-03-14 | Microstrategy Incorporated | Inferring joins for data sets |
US20210406717A1 (en) * | 2020-06-29 | 2021-12-30 | Oracle International Corporation | Enabling efficient machine learning model inference using adaptive sampling for autonomous database services |
US11782928B2 (en) * | 2020-06-30 | 2023-10-10 | Microsoft Technology Licensing, Llc | Computerized information extraction from tables |
-
2020
- 2020-12-11 US US17/119,704 patent/US11500886B2/en active Active
-
2021
- 2021-11-21 GB GB2309412.1A patent/GB2616577A/en active Pending
- 2021-11-21 JP JP2023532486A patent/JP2024501404A/ja active Pending
- 2021-11-21 WO PCT/IB2021/060784 patent/WO2022123370A1/en active Application Filing
- 2021-11-21 DE DE112021006042.2T patent/DE112021006042T5/de active Pending
- 2021-11-21 CN CN202180078296.7A patent/CN116635845A/zh active Pending
Also Published As
Publication number | Publication date |
---|---|
GB202309412D0 (en) | 2023-08-09 |
WO2022123370A1 (en) | 2022-06-16 |
JP2024501404A (ja) | 2024-01-12 |
DE112021006042T5 (de) | 2023-12-07 |
US20220188312A1 (en) | 2022-06-16 |
GB2616577A (en) | 2023-09-13 |
US11500886B2 (en) | 2022-11-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20230126005A1 (en) | Consistent filtering of machine learning data | |
US20200356901A1 (en) | Target variable distribution-based acceptance of machine learning test data sets | |
US11100420B2 (en) | Input processing for machine learning | |
US11182691B1 (en) | Category-based sampling of machine learning data | |
US7844139B2 (en) | Information management apparatus, information management method, and computer program product | |
US9639542B2 (en) | Dynamic mapping of extensible datasets to relational database schemas | |
US20140244300A1 (en) | Systems and methods for managing a master patient index including duplicate record detection | |
US20170255709A1 (en) | Atomic updating of graph database index structures | |
US20050234896A1 (en) | Image retrieving apparatus, image retrieving method and image retrieving program | |
US20170255708A1 (en) | Index structures for graph databases | |
US20090049013A1 (en) | Enhanced control to users to populate a cache in a database system | |
US20140046928A1 (en) | Query plans with parameter markers in place of object identifiers | |
US11429658B1 (en) | Systems and methods for content-aware image storage | |
US20180107689A1 (en) | Image Annotation Over Different Occurrences of Images Using Image Recognition | |
US11567995B2 (en) | Branch threading in graph databases | |
US10956453B2 (en) | Method to estimate the deletability of data objects | |
US20220029787A1 (en) | Citation and Attribution Management Methods and Systems | |
US8032505B2 (en) | Relative document representing system, relative document representing method, and computer readable medium | |
US10146881B2 (en) | Scalable processing of heterogeneous user-generated content | |
US20180089235A1 (en) | Method and System for Deduplicating Data | |
US10754859B2 (en) | Encoding edges in graph databases | |
US9286349B2 (en) | Dynamic search system | |
CN116635845A (zh) | 跨系统寻找表格数据的位置 | |
US20220229863A1 (en) | Assigning documents to entities of a database | |
JP2022153339A (ja) | データベースシステムにおけるレコードマッチング(データベースシステムにおけるレコードマッチングのコンピュータ実装方法、コンピュータプログラム、コンピュータシステム) |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |