首页 文章 精选 留言 我的

精选列表

搜索[udf],共674篇文章
优秀的个人博客,低调大师

ComputeColStats UDF中 近似算法的介绍

一,前面的话 表和列的统计信息对CBO的结果有着极大地影响,能够高效和准确的收集统计信息是极其重要的。但高效和准确是矛盾的,更准确的统计信息往往需要更多的计算,我们能做的是在高效和准确之间找到更好的平衡。接下来的内容是关于目前在ComputeColStats中用的一些近似算法。 二,收集的内容 目前针对列主要会收集以下统计信息:cntRows : 列中总数据个数,包括nulll值avgColLen :列的平均长度maxColLEN :列的最大长度minValue :列的最小值maxValue :列的最大值numNulls :列中null值个数numFalses :如果boolean型,false值的个数numTrues :如果boolean型,true值的个数countDistinct :不同值的个数topK :topk值的个数,数据倾

优秀的个人博客,低调大师

云计算大会有感—MapReduce和UDF

(转载请注明出处:http://blog.csdn.net/buptgshengod) 1.参会有感 首先还是非常感谢CSDN能给我票,让我有机会参加这次中国云计算峰会。感觉不写点什么对不起CSDN送我的门票(看到网上卖一千多一张呢)。 还是得从国家会议中心说起,两年前lz曾经在那当过IDF的志愿者,当时是纯体力劳动,负责给参会人员发一些杂志什么的,当时苦逼的为了多蹭一个盒饭躲到柜子后面直到开饭。真没想到两年后可以以来宾的身份参加国家会议中心的大会(虽然午餐还是苦逼的盒饭吧),这次真的可以走进主会议场聆听专家们的报告。说实话,一进主会议场看到几千个码农,都是差不多的装扮,真的有点小震撼。 听了几个院士和运营商老总的报告,最震撼的还是微软副总裁王亚勤先生的演讲,感觉挺震撼的。不得不说微软就是微软(

优秀的个人博客,低调大师

ComputeColStats UDF中 近似算法的介绍(续)

在前一篇文章的最后提到,对于准确率的提升是后续需要做的事情之一。接下来看看对于提升准确率,还有哪些事情可以做。 一,回顾 首先回顾下前一篇文章最后得到的结果,如下:执行时间先忽略,只看准确率。对于上面8个字段,有些在sample为25(采样比例1/25)的情况下还是相当准确的,比如odps_task_type,start_time;而有些则存在一定差距,比如project_name,fuxi_ceil_mem等;还有些存在比较大的差距,比如odps_inst_id,fuxi_avg_cpu。同样的采样算法,同样的估计算法,对于不同的数据会得到截然不同的结果。这种差异相信决大部分来自于数据本身。下面就从数据本身来看下到底差异是如何出现的。 二,数据差异 不同的字段存储的数据不同,不同数据可能会存在唯一值上的差异。比如说对于主键,比如说对于纬度直,两者肯定在DistinctValue的分布上肯定是完全不同的。 1,如果该字段为主键,那么RowCount(X轴)和DistinctValue(Y轴)关系类似下图: 这是一条斜率为1的直线。对于这种情况,目前的算法肯定可以非常准确的估算出DistinctValue值。 2,如果该字段为纬度值(唯一值非常少),那么RowCount(X轴)和DistinctValue(Y轴)关系类似下图: 随着RowCount的增加,DistinctValue也在增加,但到了某个点后DistinctValue基本保持不变。 3,如果该字段为一般字段,随着RowCount的增加而DistinctValue也缓慢增加,类似下图: 三,数据差异导致的DistinctValue的计算误差? 上面一部分列举了三种可能的RowCount和DistinctValue关系。第一种类型是比较简单的,也能很准确的估算出DistinctValue值。而对于第二种和第三种则要困难的多,从测试的结果来看是这样的。我们采样的前提是,采样算法能保证采样是随机的,每条数据被访问的几率是相同的。但实际上这样的前提是不存在的。这也是目前对第三种的估算也可能存在较大差异的原因。因为按道理来说,其实第三种我们也应该能很好的预估才对。目前的采样算法并不是随机的,数据本身分布对采样的结果影响极大。为了性能和实现起来简单,目前采样的算法是隔n条取1条的方式实现的,并不是真正意义上的随机采样。针对同一次估算过程,我尝试过不同的拟合回归算法,结果并没有特别的不同,问题并不是在算法上,而是在数据本身上。下面通过对存在较大误差的fuxi_avg_cpu来看下,不同的采样比例下的RowCount和DistinctValue关系的差异。上面几张图对下对比,能看得出来在不同的采样比例下图形的状态会有很大的变化。差异这么大的话想要比较准确的预估显然是不太现实的。 四,总结 目前看来DistinctValue估算的差异大部分原因是因为采样,想要提高准确率增加采样比例就可以了。而具体回归的算法,则没那么重要了。

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

用户登录
用户注册