【Hive 元数据和真实数据-TAB_COL_STATS记录错误问题】
MySql的元数据以及HDFS上数据的关系
元数据在DBS和TBLS上 (SD_ID)
1 首先通过hive创建一个表table_test
在hdfs的存储路径会生成相应的表
TBLS 也会更新内容进行记录
2 通过hive插入insert一条数据
会走一遍MR,数据产生变化后
TAB_COL_STATS有记录改变(CS_ID)、(TBL_ID)
3 通过hdfs 直接向hive的warehouse上传数据到表中
hadoop fs -put test_table01.txt /user/hive/warehouse/table_test
(就是通过不用hive对表添加数据)
使用select * from table_test
可以查询到数据,但这个时候使用select count(1)
对表进行查询返回的结果不准确,
因为没有走MR,Hive不知道数据的变化
desc formatted 表 查询表信息
numFiles 和numRows 这两个参数
并不会对表进行记录,所以查询结果都为0
4 如果通过hive的 load data 上传就会记录
numFiles和numRows的值
当这两个值不正确或不一致的时候
在去用count(1)查询的话
则会通过MR进行纠错
5 如果都不能保证每次上传数据都通过hive
我们可以通过刷新元数据的方式避免错误
ANALYZE TABLE COMPUTE STATISTICS
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现