BlueQuery高速比对数据功能

2007-12-13 14:48:14【作者】 畅享网 【进入论坛】
本文关键字 BI 尚南 BlueQuery
广告

前言:

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

实例:

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

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

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

成功的结果: 我们只花了两周时间采用了混合核心算法,在网络环境(千兆)下,以100条主动数据在1万条被动数据中比对的情况为例,精确比对响应时间小于1分40秒快原系统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

如果您希望与本文章的作者或其所在机构,进一步交流,请联系:畅享网 姜小姐
jill.jiang@amt.com.cn | 021-51096826-112 | 在线联系
罗永辉呼吸BI[原创]商业智能:感性到理性 完..

  2007年是商业智能从感性回归理性的一年,也是从完善到提升承前启后的一年。 回顾篇 认识层面 2007年,国内国外普遍加深了对BI的理解。Gart……

TTNN-BI观点TTNN-BI观点十月刊——湖光山色

2007,国际权威重新定义了BI。从当前实践看来,这种定义符合实际,毕竟BI要落地,要能给企业带来真正的收益。当然,如何落地,自然必须有技术的支撑和管理策略及相……