刚刚下载了一份HIVE的最新源码。
印象最深的是HIVE将表的大小作为了元数据保存在了关系数据库中。
譬如在老版本中执行如下的语句:
from base insert overwrite table user select * ;
你会发现日志的末尾会有 “999 ROWD LOADED INTO TABLE USER” 的字样
代表有999条目记录保存在了user表中。
在而在新版本中,执行最后的日志展示了USER表的元数据,其中会有ROW_COUNT:999的字样
一看MYSQL中,999这个数据确实被保存了起来。
也就是说大家以后不必再用“select count(*) from user ”去查询user表的大小了,因为HIVE会将这个语句翻译为MR作业在HADOOP上运行,效率非常低。
新的方法是
HiveConf conf = new HiveConf(SessionState.class);
印象最深的是HIVE将表的大小作为了元数据保存在了关系数据库中。
譬如在老版本中执行如下的语句:
from base insert overwrite table user select * ;
你会发现日志的末尾会有 “999 ROWD LOADED INTO TABLE USER” 的字样
代表有999条目记录保存在了user表中。
在而在新版本中,执行最后的日志展示了USER表的元数据,其中会有ROW_COUNT:999的字样
一看MYSQL中,999这个数据确实被保存了起来。
也就是说大家以后不必再用“select count(*) from user ”去查询user表的大小了,因为HIVE会将这个语句翻译为MR作业在HADOOP上运行,效率非常低。
新的方法是