Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#指纹1对1比较(39 GB数据)减少时间成本_C#_Sql Server_Hadoop_Ssis_Fingerprint - Fatal编程技术网

C#指纹1对1比较(39 GB数据)减少时间成本

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

我有一个mssql db,其中包含最小39gb的指纹数据,现在需要找出其中的重复项,每个指纹记录都有一个最小(此处简化)结构,如下所示

[EMP ID][指纹图像][指纹模板(ISO)]

我正在使用(1对1比较)一个C#程序和算法,该程序和算法基于ISO模板上的Ratha算法。该算法工作正常,能够检测重复项,但问题是1对1比较所需的时间成本为O(n2),有谁能帮我提供一些关于减少指纹匹配算法时间成本的想法吗

我读过关于“ms sql ssis”的文章,但它是用于ETL的,我必须在这里应用“ms sql ssis无法实现的算法

现在,示例基准如下(近似值)

我找到了分类特征提取的其他方法,但是如何基于ISO模板进行分类呢。谁能给点建议吗


我认为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