=========查询分区的大小========= select d.NAME,t.TBL_NAME,p.PART_NAME,prm.PARAM_KEY,prm.PARAM_VALUE from TBLS t left join DBS d on t.DB_ID = d.DB_ID left join PARTITIONS p on t.TBL_ID = p.TBL_ID left join PARTITION_PARAMS prm on p.PART_ID=prm.PART_ID where…
在hive的数据建表时,为了查询的高效性,我们经常会对表建立分区,例如下面的表 create external table dm_fan_photo_icf_basic(user string, item string, hot int) PARTITIONED BY (day string) ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t' stored as textfile location '/user/hive/fan/photo/icf/b…
今天下午有同事反馈她提交了了一个SQL后,hive 查询就停止响应了. 我看了下,发现hiveserver确实hug住了.听过查看日志,发现了一个牛逼的SQL, 这个SQL很简单: select a.column1, b.column2 from a left join b on a.id = b.id 这两张表都是很大的表,保存了好多年的数据,表b按照日期和类目进行了分区. 因为没有加限制,所以HiveMetaStore在获取分区的时候,会从mysql中获取这个表所有的分区信息,SQL如下:…
版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/sheismylife/article/details/27874943 创建带分区的外部表 创建外部表的优点是数据能够随时从hdfs中挂载进表中 使用分区的优点是能够缩短查询范围 以下的样例展示了怎样创建外部表 CREATE EXTERNAL TABLE my_daily_report( last_update string, col_a string, col_b string, col_c s…
好久不写,一方面是工作原因,有些东西没发直接发,另外的也是习惯给丢了,内因所致.今天是个好日子,走起! btw,实际上这种格式化输出应该不只限于某一种需求,差不多是通用的. 需求: --基本的:当前Hive查询结果存在数据与表头无法对齐的情况,不便于监控人员直接查看,或者导出到excel中,需要提供一个脚本,将查询结果处理下,便于后续的查看或者操作. --额外的:A.每次查询出来的结果字段数.字段长度不固定:B.每个数据文件中可能包含不只一套查询结果,即存在多个schema. 想法: 对于基本需…
1 基本概念 1.1 什么是分区 Hive查询中一般会扫描整个表内容,会消耗很多时间.有时候只需要查询表中的一部分数据,因此建表时引入了partition(分区)概念. 表中的一个 Partition 对应于表下的一个目录,所有的 Partition 的数据都存储在对应的目录中,因此,使用分区,很容易对数据进行部分查询. 1.2 分区特点 一个表可以拥有一个或者多个分区,每个分区以文件夹的形式单独存在表文件夹的目录下: 表和列名不区分大小写: 分区是以字段的形式在表结构中存在,通过describ…
windows下编程获取磁盘(分区)使用情况 windows下编程获取磁盘(分区)使用情况 GetLogicalDriveStrings函数 使用示例 获取需要的缓冲区长度示例 获取所有驱动器号示例 GetDriveType函数 使用示例 GetDiskFreeSpaceEx 函数 使用示例 linux下可以使用命令df -h来获取各个(已加载)分区的使用情况.Windows下也有很多好的工具来获取,但是我没有发现windows下的df命令. 在linux下使用df -h命令的输出如下 o@Ne…
1.hive下载安装   2.下载mysql安装   3.以root用户进入mysql命令行:mysql -uroot -p(提示输入密码)   4.创建hive的元数据库:create database metahive[元数据库名metahive]   5.创建hive用户:create user hive@'localhost' identified by 'hive'[mysql中为hive专用的user名:hive,密码为:hive]   6.赋予权限:grant all privil…
Sql查询语句获取的数据是分格式的,我们还用SqlDataReader来做,然后用IDataReader来接收读取,以下是代码: //我想查询一个用户表的信息,该用户有姓名,密码,信息三列 //1.定义一个用户类型的List数组,userInfo类的代码在下方 List<userInfo> userInfo = new List<userInfo>(); //2.我们要读取查询语句的数据,并且保存了.这里我们将使用IDataReader语句 //数据库类的实例,类的代码在下方 DB…
hive查询遇到java.io.EOFException: Unexpected end of input stream错误 原因基本上有两个: 空文件 不完整的文件 解决办法: 删除对应文件- 参考 看这里…