问题标签 [deduplication]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1413 浏览

.net - 重复数据删除框架?

我想将重复数据删除集成到我正在编写的用于备份 vmware 映像的软件中。我一直无法找到任何适合我认为我需要的东西。似乎有很多完整的解决方案,包括一种或另一种重复数据删除形式。这些包括使用公共或私有云的存储或备份解决方案、专用文件系统、存储网络或设备等。但是,我需要开发自己的解决方案并将重复数据删除集成到其中。我的软件将用 C# 编写,我希望能够调用 API 来告诉它要删除哪些内容。

我所说的重复数据删除类型不是针对另一个图像对一个图像进行重复数据删除——通常是为某物的两个“版本”生成增量或差异备份的方法——或者在维基百科条目中所谓的“客户端备份重复数据删除”重复数据删除,因为我已经有了解决方案,并且想更进一步。

我设想一种方法可以让我在全球范围内以某种方式对数据块进行重复数据删除(即某种形式的全球重复数据删除)。为了全局,我想会有某种形式的中央查找表(例如哈希索引),它会告诉重复数据删除器正在检查的数据的副本已经保存并且不需要再次存储。块可以是文件级(单实例存储或 SIS)或子文件/块级重复数据删除。后者应该更有效(这对于我们的目的来说比处理开销更重要)并且将是我的首选选项,但如果必须,我也可以让 SIS 工作。

正如我上面提到的,我现在已经阅读了很多关于其他人的重复数据删除软件的信息。我不会在这里举例子,因为我不是专门模仿其他人的方法。相反,我一直无法找到程序员的解决方案,并且想知道是否有类似的东西可用。另一种选择是推出我自己的解决方案,但委婉地说,这将是一项相当大的任务。

谢谢。

0 投票
2 回答
701 浏览

node.js - 为 OS X 构建重复数据删除应用程序,我应该使用什么/如何作为文件的哈希值

我即将踏上编程之旅,这无疑会以失败和/或将鼠标扔到我的 Mac 上而告终,但这是一个有趣的问题。

我想构建一个应用程序,它从某个基本目录开始扫描并递归地遍历每个文件,如果它找到一个完全重复的文件,它将删除它,并在其位置创建一个符号链接。基本上穷人重复数据删除。这实际上为我解决了一个真正的问题,因为我的 Mac 上有一堆重复文件,我需要释放磁盘空间。

根据我的阅读,这是策略:

  1. 递归循环,并为每个文件生成一个哈希。哈希需要非常独特。这是第一个问题。我应该使用什么哈希?如何通过这个神奇的哈希运行每个文件的整个二进制内容?

  2. 将每个文件的哈希和完整路径存储在键/值存储中。我认为 redis 非常适合它的速度。

  3. 遍历键/值存储,查找重复哈希,删除重复文件,创建符号链接,并将键/值存储中的行标记为副本。

因此,我的问题是:

  • 我应该为每个文件使用什么哈希算法?这是怎么做到的?
  • 我正在考虑使用 node.js,因为 node 通常在 i/o 类型的东西上速度很快。问题是节点吸收了 CPU 密集型的东西,所以散列可能是瓶颈。
  • 我在这里还缺少什么其他问题?
0 投票
3 回答
2967 浏览

mysql - MySQL distinct 查询返回具有重复信息的行,需要去重

我在 MySQL 数据库中有一个类似于下面显示的表:

我需要一个类似于下面的结果(即只有 a & b 值具有不同的 D & E 列值):

我试过这个查询:

我明白了:

我不需要 column_c 中带有“c”、“d”或“f”的行。我需要在 column_d 中同时具有 0 和 4 值的行(即 column_c 是“a”或“b”)。

0 投票
2 回答
455 浏览

php - 使用 PHP 的重复数据删除 mysql 结果

我有一个表,其中包含以下条目:

当我在自动完成字段中将这些呈现给用户时,我会删除 () 或 [] 之间的任何内容,因为它们不相关,但是,正如您从上面的列表中看到的那样,这让我留下了 123 的两个条目在下拉列表中...有没有进一步抑制重复?有时可能有多达 5 或 6 个,至少可以说是错误的!下面的代码:

非常感谢

0 投票
2 回答
115 浏览

hash - 如何枚举和删除以三元组形式分配给 3 个继承者中的每一个的 9 个项目......及以后?

这个问题与Seeking a solution or a heursitic approxmation for the 3-partitioncombinatorial situation中描述的上下文有关。任务是将大约 48 件继承的珠宝,每件都有其评估价值,分配给 3 位继承人,以使每位继承人的价值相等或几乎相等。就我的法律目的而言,这个问题已经得到了充分的回答。

这个新问题源于我通过枚举解决这个问题的追求。在法律上完全没有必要。现在只是一个智力挑战。

现在的问题:

为每个项目分配一个唯一索引:可能只是整数 1 到 48。现在将这 48 个分配给 3 个继承者中的每一个并消除重复项。

为了使这个例子更简单,断言只有 9 个项目,每个继承者将接收 3 个项目。(请注意,这与之前使 3 个 bin 的值几乎相等的目标不同。)

如何消除 item-to-bins 序列中的重复项?

示例:
让 bin 1 包含项目 {1,2,3}
让 bin 2 包含项目 {4,5,6}
让 bin 3 包含项目 {7,8,9}

这个三元组的最终值将有 6 个重复:
{1,2,3}{4,5,6}{7,8,9}
{4,5,6}{1,2, 3}{7,8,9}
{4,5,6}{7,8,9}{1,2,3}
{7,8,9}{1,2,3}{4,5,6 }
{7,8,9}{4,5,6}{1,2,3}
等。

同样,如何消除 item-to-bins 序列中的重复项?不枚举整个三元组排列。不,这不太对。我可能不得不暂时磨掉所有的三元组排列。如何根据已经完成的先验快速消除重复的三元组组合?

我可以想象像发明一个函数,给定 3 个项目的任意组合,返回一个唯一值。使用素数的东西?除了许多素数对和另一个素数。

我交叉发布了关于 mathoverflow 的原始问题。对于不理解 stackoverflow 和 mathoverflow 之间的关系,我深表歉意。

0 投票
1 回答
383 浏览

php - 如何使学说不在我的数据库中保留重复的对象?

我有两种不同的对象:RideLocation

Ride具有作为Location对象的起点终点

位置不指向Ride

这意味着我在教义上有一个多对一的单向关系。

如何让原则确保我的数据库中没有任何重复的Location对象?

例如:如果我创建一个从明尼苏达州明尼阿波利斯到明尼苏达州曼凯托的Ride并将它们持久化,我现在已经在我的数据库中存储了一个Ride和两个Location对象。

既然这些都已持久化,我将创建另一个从明尼苏达州曼凯托到明尼苏达州新乌尔姆的骑行并持久化它们。

Doctrine 复制了明尼苏达州曼凯托的位置。

教义是否具有此功能,或者我是否有责任检查我是否正在创建重复的对象?

0 投票
1 回答
295 浏览

email - 电子邮件存储的重复数据删除建议

建议的存储模型是将附件存储在单独的文件(或 blob)中,并将电子邮件本身存储为 MIME 多部分消息,其中包含对附件的引用及其编码方式。这允许用户显示原始,但不需要我实际存储效率较低的 base64 与消息。大多数情况下,我将能够只存储使用的 base64 行长度。

这样,我们可以执行附件级别的重复数据删除。

但重复数据删除如何走得更远?以下是我的想法:

  • 当然,所有附件和电子邮件都可以单独压缩(字节级重复数据删除)。
  • 我可以将 12 个附件的集合压缩到一个文件中。压缩相同类型的多个文件(例如 PDF),即使是来自同一发件人的文件,可能更有效。
  • MIME 消息也可以成组压缩。
  • 我不关心搜索效率,因为会使用全文索引。
  • 搜索电子邮件当然会使用一种全文索引,它不会被压缩。
  • 解压缓存将在电子邮件第一次到达时创建,并且仅在一段时间未查看电子邮件后才会被删除。

您在这方面有什么建议吗?电子邮件存储系统的正常情况是什么?

0 投票
6 回答
3878 浏览

java - 去重 HashMap 值

我想知道是否有人知道删除重复值的好方法LinkedHashMap?我有一LinkedHashMapStringList<String>。我想删除ArrayList's 中的重复项。这是为了改进一些下游处理。

我能想到的唯一一件事是在我迭代时保留处理过的值的日志,HashMap然后通过ArrayList并检查我以前是否遇到过一个值。这种方法似乎会随着列表的增长而降低性能。有没有办法预处理HashMapArrayList值中删除重复项?

为了说明......如果我有 String1>List1 (a, b, c) String2>List2 (c, d, e) 我想删除“c”,这样HashMap中的列表就没有重复项。

0 投票
1 回答
82 浏览

.net - 获取不同电话号码列表的最佳方法(不删除原始格式)?

我们有一个主Person记录和一个(或多个)副本Persons,我们正在合并他们的数据,优先考虑主记录而不是副本。

当涉及电话号码时,目标是合并他们的数据,一个电话号码进入该Phone字段,任何其他电话号码进入一个备注字段(以免完全丢弃它们)。记录可能包含也可能不包含电话号码。

为了简洁起见,我们不想在注释字段中添加一堆基本相同的数字。所以我们不希望该字段包含:

(1234) 123123
1234 123123

如果我们可以丢弃格式和空格,这将很容易,但我们需要保留它们(开头/结尾的空白除外)。

我们从创建一个结构开始(不知道为什么我们有一个结构而不是一个类,但无论如何)

然后,合并代码如下所示:

但是,显然,这里的问题是它允许重复。

我们有点希望Contains只匹配“剥离”值,但它当然不知道这样做。

对于这样一个小功能来说,这似乎已经有太多代码了,但目前我们正在考虑编写一些东西(在结构中?),它将Contains仅在剥离时替换和匹配。有没有更简洁的方法?

代码在 VB 中,但欢迎使用 C# 回答。

还要记住,我们必须优先考虑master,所以如果我们使用 LINQ 和 Distinct,我们需要确保我们不会丢失排序顺序(这是我的理解)。

0 投票
4 回答
2506 浏览

sql - 没有 DELETE 的重复数据删除记录

我只需要从 SQL Server 中的重复行中带回一条记录

我有这样的数据

这些行显示为同一个人订购的 2 件商品,实际上它们只是篮子中选择的数量和 2 条记录。

我的问题是我怎样才能只检索这些行之一?

谢谢