载入中…
公告栏:
当前位置: 中国商业智能网 >> CIO >> 实施经验 >> 文章正文
BlueQuery高速比对数据功能
作者:佚名    来源:本站原创    点击数:    时间:2007-12-12
【摘要】前言: 近日多间SI公司致电Sunnet关心系统性能优化问题,大家都有同样的错误观念,以为只有TB数据才会速度慢,正如以下小量数据例子,半个小时内查不了1万行数据。究竟为什么呢?我们又是怎样解决?

前言:

近日多间SI公司致电Sunnet关心系统性能优化问题,大家都有同样的错误观念,以为只有TB数据才会速度慢,正如以下小量数据例子,半个小时内查不了1万行数据。究竟为什么呢?我们又是怎样解决?

实例:

某集成商,因业务需要,要比对与寻找数据,用户定期得到主动数据(主动数据的格式为XML文件,一个XML文件即是一个批次的主动数据,一个批次主动数据中记录了大量的人员详细信息,每一批主动数据的数据量在1002,000条不等),根据数据比对的规则(用户能灵活定制规则),将主动数据中的人员信息与被动数据(被动数据的格式为ACCESS数据源,被动数据同样记录了大量的人员信息,同时被动数据按照业务处进行划分,每个业务处有自己的被动数据库,每一个业务处的被动数据的数据量在1万至20万不等)中的人员信息进行比对,并且将比中的结果进行记录,反馈给用户,用户可以对比中结果、比对的规则、比对对应的被动数据进行查询。

问題在于搜索性能太慢: 100条主动数据在1万条被动数据中比对的情况为例,精确比对响应时间超于25分钟,模糊比对响应时间超于2个小时。最终用户怎能等待超过半个小时的查询。

过程与挑战: 为提高搜索速度,我们采用了快速的字符串搜索算法Boyer-Moore(BM算法),其与线性搜索的区别是当发现模式不匹配时,不是象线性搜索那样只移动一个字节,而是尽可能多地移动多个字节长度,以提高搜索速度。但采用了BM算法速度也不能接受,为进一步提速,我们采用了创新研发的混合核心算法,进一步提升3~5BM算法速度。

成功的结果: 我们只花了两周时间采用了混合核心算法,在网络环境(千兆)下,以100条主动数据在1万条被动数据中比对的情况为例,精确比对响应时间小于140快原系统15倍以上,模糊比对响应时间小于5分钟快原系统25倍以上

为配合用户,我们在本公司BlueQuery 商业智能产品中,新增如下超速搜索功能:

1. 快速数据精确查询功能SunDataset.QuickFindRow(nCol, varFindValue) - 在千万行数据中找某个值,都不会超过0.001秒。

2. 模糊查找指定值SunDataset.FindLike(nCol, szFindWhat, nStartRow, nDirection, bCaseSensitive)

3. 多列联合快速查找准备按多列快速查找:SunDataset.PrepareRapidFind(VARIANT varColumns, short cSplitter)

此计划,进一步提升BlueQuery商业智能产品的搜索功能。

案例参看 http://www.bluequery.com.cn/news/superspeedetl.htm

 

责任编辑:朱莉   
 
  • 上一篇文章:

  • 下一篇文章:
  • 发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
    ChinaBI版权、投稿与免责申明:
    1)凡本网署名文字、图片和音视频稿件,版权均属中国商业智能网所有。任何媒体、网站或个人未经本网协议授权不得转载、链接、转贴或以其他方式复制发表。已经本网协议授权的媒体、网站,在下载使用时必须注明稿件来源:中国商业智能网,违者本网将依法追究责任。
    2)本网注明“本站来源处不写本站原创”的文章均为转载稿,本网转载出于传递更多信息之目的。如本网转载稿涉及版权等问题,请作者速来电或来函与本网联系。
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
    最新热点
    娱乐资讯
    最新推荐
    网站合作、内容监督、商务咨询、投诉建议 电话:0512-62861389  邮箱:chianbi@126.com
    Copyright 2004-2014 中国商业智能网版权所有   |    苏 ICP 备 13004727 号