当前位置: 首页 > news >正文

hive执行select count(1)返回0

背景:

   做数据质量检核任务的时候,有些数据表有数据,直接查hive执行select count(1) from table返回的值一直是0

问题原因:

   hive通过select count(1)或者select count(*) 查询的是元数据库里面的rownum,如果数据表数据是通过load、put等方式加载进去的,元数据库里面的rownum没有收集统计信息,导致数据不对。

解决:

1、hive部署的时候,开启统计功能

hive.compute.query.using.stats:该属性的默认值为false。如果设置为true,Hive在执行某些查询时,例如select count(1),只利用元数据存储中保存的状态信息返回结果。为了收集基本状态信息,需要将hive.stats.autogather属性配置为true。为了收集更多的状态信息,需要运行analyzetable查询命令。

设置

hive.stats.autogather = true

2、临时方案

方案一:

使用analyze table来执行统计过程,datax或者flinkx同步数据,最后需要执行这个

ANALYZE TABLE tableName  COMPUTE  STATISTICS;  

这个也不是永久生效,如果执行之后,又put或者load数据量还是不对,还要再次执行这个sql

方案二:

窗口级别生效

set hive.compute.query.using.stats=false;
select count(1)  from tableName;

http://www.lryc.cn/news/307857.html

相关文章:

  • 3D Gaussian splatting 协方差矩阵 球谐函数 简单理解
  • 代码随想录算法刷题训练营day27:LeetCode(39)组合总和、LeetCode(40)组合总和 II、LeetCode(131)分割回文串
  • docker 容器修改端口和目录映射
  • echarts鼠标事件
  • 【北京迅为】《iTOP-3588开发板网络环境配置手册》第2章 电脑、开发板直连交换机或路由器
  • 6.5 共享数据
  • SpringBoot之Session新增、删除、获取配置与使用
  • Hive UDF 札记
  • npm已经配置淘宝源仍然无法使用
  • Qt5转Qt6笔记
  • FPGA高端项目:FPGA基于GS2971的SDI视频接收转HDMI输出,提供3套工程源码和技术支持
  • java 锁
  • 该类型的 CollectionView 不支持从调度程序线程以外的线程对其 SourceCollection 进行的更改。
  • Mybatis学习笔记:延迟加载
  • 蓝桥杯题练习:平地起高楼
  • 我愿意启动价值流
  • 排序算法1:冒泡排序、快速排序、插入排序
  • Vant Weapp
  • 无人机精准定位技术,GPS差分技术基础,RTK原理技术详解
  • java面试:elasticsearch
  • GO语言学习笔记(与Java的比较学习)(三)
  • 如何用Python3自撰一个简单的后端框架
  • 使用pyannote-audio实现声纹分割聚类
  • 防御保护:防火墙内容安全
  • uni-app webview 打开baidu.com
  • 【C#】SixLabors.ImageSharp和System.Drawing两者知多少
  • 总是 -bash: gomobile: 命令未找到
  • day27【LeetCode】454. 四数相加 II
  • UE5 UE4 不同关卡使用Sequence动画
  • 【JAVA日志】关于日志系统的架构讨论