distinct sampling阅读报告

阅读报告

阅读文献P.B.Gibbons,“Distinct sampling for high-accurate answers to disticnct values queries andevents report”, Intl. Conf. on Very Large Databases, pp.541-550, 2001.

 

解决问题:在大数据量的数据中找出一个关键属性的不同值的个数的采样精确估计求解

 SQL范例:    select countdistinct o_custkey

From orders

Where o_orderdate >= ‘2012-01-01’    (今年有多少不同的顾客下了订单)

 

运行效果:1%的采样率(原本文件1%的样本大小)达到0-10%的相关误差,比之前方法的50%-250%的相关误差的方法的运行速度提高了2-4个数量级。只需要浏览整个数据一遍。

 

具体方法

算法伪代码:

         L是哈希函数的值域中的值,作为决定是否保留在样本中的凭据。B是样本的大小。T是每个关键属性的不同值的记录保存的最大条数,cv表示关键属性v在样本中的最大相同数量。

         算法中使用的die-hash不是均匀hash,而是按照2的幂递减的。也就是说die-hashi的概率是2^(i+1),从0-较大的i的概率之和为1

         估计结果=|S| * 2 ^L

         算法执行样例:

算法优点:

         增量处理:可以在较小的内存和时间消耗情况下更新数据插入和删除之后的结果,适用于流式数据增量处理。只需要保存Lt这两个定义模型和die-hash的系数。插入新的数据只需要再执行算法中的步骤4-16,而删除操作只需要将样本中对应的记录删除即可。

         支持join操作:算法可以支持关键属性的join操作,具体解决办法与

相同。

        

算法缺陷:

         模型构建和算法模型都相对比较复杂。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值