【hive】hive表很大的时候查询报错问题
线上hive使用环境出现了一个奇怪的问题,跑一段时间就报如下错误:
FAILED: SemanticException MetaException(message:Exception thrown when executing query : SELECT A0.PART_NAME,A0.PART_NAME AS NUCORDER0 FROM PARTITIONS A0 LEFT OUTER JOIN TBLS B0 ON A0.TBL_ID = B0.TBL_ID LEFT OUTER JOIN DBS C0 ON B0.DB_ID = C0.DB_ID WHERE C0.`NAME` = ? AND B0.TBL_NAME = ? ORDER BY NUCORDER0)
然后,等待一段时间就又可能执行了。
经过逐步问题定位(拆分各个查询),发现是对一个特大表(每小时大概80G左右数据,高峰时段更大)的查询引起的。在查询中有如下的语句:
where (cast(if(length(hour)<2, concat(day,'\'''\'',hour), concat(day,hour)) as INT) between 2017101006 and 2017101017
其目的是想实现滑动时间窗口几个小时的数据查询,由于有跨天的存在,因此写的和上边一样。但是这样写对于特大表实际上是不行的,没有用到分区。
问题找到了,解决方案如下:
1.针对查询要求,重新设计表,按照天和小时一起来分区,新的分区day_time。
2.用新的表直接查询的时候可以使用day_time between 2017101006 and 2017101017 来查询
3.后续观察,发现不报如上错误了。
【hive】hive表很大的时候查询报错问题的更多相关文章
- Hive中小表与大表关联(join)的性能分析【转】
		Hive中小表与大表关联(join)的性能分析 [转自:http://blog.sina.com.cn/s/blog_6ff05a2c01016j7n.html] 经常看到一些Hive优化的建议中说当 ... 
- sql注入--双查询报错注入原理探索
		目录 双查询报错注入原理探索 part 1 场景复现 part 2 形成原因 part 3 报错原理 part 4 探索小结 双查询报错注入原理探索 上一篇讲了双查询报错查询注入,后又参考了一些博客, ... 
- sql注入--双查询报错注入
		sql注入--双查询报错注入 背景:在sqli-labs第五关时,即使sql语句构造成功页面也没有回显出我们需要的信息,看到了有使用双查询操作造成报错的方式获得数据库信息,于是研究了一下双查询的报错原 ... 
- MongoDB 聚合查询报错
		1.Distinct聚合查询报错 db.users.distinct("uname") db.runCommand({"distinct":"user ... 
- sqli注入--利用information_schema配合双查询报错注入
		目录 sqli-labs 5.6双查询报错注入通关 0x01 获取目标库名 0x02 获取库中表的数量 0x03 获取库中表名 0x04 获取目标表中的列数 0x05 获取目标表的列名 0x06 从列 ... 
- laravel 项目表单中有csrf_token,但一直报错419错误   解决redis连接错误:MISCONF Redis is configured to save RDB snapshots, but it is currently not able to persi
		laravel 项目表单中有csrf_token,但一直报错419错误,因为项目中使用到Redis缓存,在强制关闭Redis后出现的问题,查询laravel.log文件查找相关问题 安装redis后在 ... 
- Jpa自定义查询报错(Failed to convert from type [java.lang.Object[]] to type)
		Jpa自定义查询报错 问题背景 今天遇到一个奇怪的报错"Failed to convert from type [java.lang.Object[]] to type",这个报错 ... 
- asp.net使用post方式action到另一个页面,在另一个页面接受form表单的值!(报错,已解决!)
		原文:asp.net使用post方式action到另一个页面,在另一个页面接受form表单的值!(报错,已解决!) 我想用post的方式把一个页面表单的值,传到另一个页面.当我点击Default.as ... 
- MySQL查询报错 ERROR: No query specified
		今天1网友,查询报错ERROR: No query specified,随后它发来截图. root case:查询语法错误 \G后面不能再加分号;,由于\G在功能上等同于;,假设加了分号,那么就是;; ... 
随机推荐
- ETL全量单表同步简述
			ETL全量单表同步简述 1. 实现需求 当原数据库的表有新增.更新.删除操作时,将改动数据同步到目标库对应的数据表. 2. 设计思路 设计总体流程图如下: 注意点: 1.数据库合并时,选择正确的数据源 ... 
- 分享最近抽空写的一个代码生成器,集成EasyDBUtility数据库访问帮助类
			一直想写一个自己的代码生成器,但是因为工作事情多,一直搁置下来,最近下决心终于利用下班时间写完了,现在分享给有需要的朋友,代码生成器集成EasyDBUtility数据库访问帮助类,暂时只支持sqlse ... 
- 【大数据处理架构】1.spark streaming
			1. spark 是什么? >Apache Spark 是一个类似hadoop的开源高速集群运算环境 与后者不同的是,spark更快(官方的说法是快近100倍).提供高层JAVA,Scala, ... 
- Gulp安装及使用
			測试环境 Mac:10.10.4 Gulp:3.9.0 时间:2015年08月15日18:07:08 安装Gulp sudo npm install --global gulp npm install ... 
- 解决VS命令提示符 “Setting environment for using Microsoft Visual Studio. 此时不应有“系列错误
			一.起因 近期在玩Boost库.当然首先是要进行Boost库的安装和配置.于是浅墨Google了一下boost库的安装配置攻略.下载了最新版1.55的boost库.就愉悦地開始进行配置了. 当进行到第 ... 
- iOS UI03_LTView
			// // LTView.h // OC03_LTView // // Created by dllo on 15/7/31. // Copyright (c) 2015年 dllo. All ... 
- 六:二叉树中第k层节点个数与二叉树叶子节点个数
			二叉树中第k层节点个数 递归解法: (1)假设二叉树为空或者k<1返回0 (2)假设二叉树不为空而且k==1.返回1 (3)假设二叉树不为空且k>1,返回左子树中k-1层的节点个数与右子树 ... 
- Eclipse + CDT引入OpenCV失败的解决的方法
			Android JNI开发中用到了OpenCV,由于想通过JNI实现,就没有去用Android层的Lib引用. 可是操作中发如今.cpp文件中include的时候发现"#include &l ... 
- 浅析java(多方面解读)
			昨天我简单的说了一下我的编程学习之路.假设你热爱编程.而不是仅为了赚钱,我想我的经历或许会给你带来一定的启示,假设你还没有看.请先慢慢读完我的编程学习之路,您肯定会有还有一番体会的.. 好了.废话不多 ... 
- linux用于文件解压缩的命令
			1 gzip gzip -<压缩率> 压缩率用数字(1-9)来表示,越大,则压缩率越大. 2 bz2 解压bz2 bzip2 -d filename.bz2 
