1.大数据体系下,在真正的企业环境中,很容易出现很大的表,比如体积达到 TB 级别.对这种表一个简单的 SELECT * 都会非常的慢,哪怕 LIMIT 10 想要看 10 条数据,也会走 MapReduce 流程
这个时间等待是不合适的.Hive 提供的快速抽样的语法,可以快速从大表中随机抽取一些数据供用户查看。
2.TABLESAMPLE 函数
语法 1 ,基于随机分桶抽样:
SELECT ... FROM tbl TABLESAMPLE(BUCKET x OUT OF y ON(colname | rand()))
• y 表示将表数据随机划分成 y 份( y 个桶)
• x 表示从 y 里面随机抽取 x 份数据作为取样
• colname 表示随机的依据基于某个列的值
• rand() 表示随机的依据基于整行
实例:
SELECT username,orderId,totalmoney FROM orders TABLESAMPLE(BUCKET 1 OUT OF 10 ON orders.username);
SELECT * FROM orders TABLESAMPLE(BUCKET 1 OUT OF 10 ON rand());
用rand()函数随机,所以select结果不一样
语法 2 ,基于数据块抽样SELECT
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- huatuoyibo.net 版权所有 湘ICP备2023021910号-2
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务