C#指纹1对1比较(39 GB数据)减少时间成本
我有一个mssql db,其中包含最小39gb的指纹数据,现在需要找出其中的重复项,每个指纹记录都有一个最小(此处简化)结构,如下所示 [EMP ID][指纹图像][指纹模板(ISO)] 我正在使用(1对1比较)一个C#程序和算法,该程序和算法基于ISO模板上的Ratha算法。该算法工作正常,能够检测重复项,但问题是1对1比较所需的时间成本为O(n2),有谁能帮我提供一些关于减少指纹匹配算法时间成本的想法吗 我读过关于“ms sql ssis”的文章,但它是用于ETL的,我必须在这里应用“ms sql ssis无法实现的算法 现在,示例基准如下(近似值) 我找到了分类特征提取的其他方法,但是如何基于ISO模板进行分类呢。谁能给点建议吗C#指纹1对1比较(39 GB数据)减少时间成本,c#,sql-server,hadoop,ssis,fingerprint,C#,Sql Server,Hadoop,Ssis,Fingerprint,我有一个mssql db,其中包含最小39gb的指纹数据,现在需要找出其中的重复项,每个指纹记录都有一个最小(此处简化)结构,如下所示 [EMP ID][指纹图像][指纹模板(ISO)] 我正在使用(1对1比较)一个C#程序和算法,该程序和算法基于ISO模板上的Ratha算法。该算法工作正常,能够检测重复项,但问题是1对1比较所需的时间成本为O(n2),有谁能帮我提供一些关于减少指纹匹配算法时间成本的想法吗 我读过关于“ms sql ssis”的文章,但它是用于ETL的,我必须在这里应用“ms
我认为Hadoop是一个想法,但是任何人都会遇到指纹匹配与Hadoop的集成。你能给我们一些相关信息的链接吗,比如你所说的ISO模板,以及Ratha的算法?您肯定不想使用O(n^2)算法,因此您确实需要某种特征提取,以便更轻松地减少潜在重复的数量。模板为ISO/IEC 19794-2:2005格式。Ratha Algm我可以在网上找到关于它的文章你的问题有很多问题。首先,您询问如何提高代码的性能,但没有提供任何代码。您没有提供样本数据,如果您提供代码,我们将无法验证您的结果。第三,你将随机技术(SSI、Hadoop)引入其中,使其运行得更快,但一个实现差的算法无论是用.NET语言、Java、汇编、python还是REXX编写的,都会运行得很差。我不抱怨实现算法的速度,由于thia time od FPMatching算法总是以最快的速度消耗时间,问题是如何减少该算法仅在某些模板上的应用,而不是所有模板的一对一匹配。您看到了这个问题和公认的答案吗?它讨论了缩小搜索范围的一些方法:
SampleSpace Compared Time
1. 100 100 ~ 53 sec
2. 500 500 ~ 3.50 min
3. 1233 1233 ~1 hr 48 min