hadoop之hive在数据检索中的用法 (2)

上面提到的创建表的hive_table中涉及几个问题需要先说明一下


hive表。


1. 普通表 
    普通表的创建,一个表,就对应一个表名对应的文件。

2. 外部表
    EXTERNAL 关键字可以让用户创建一个外部表,在建表的同时指定一个指向实际数据的路径(LOCATION),Hive 创建内部表时,会将数据移动到数据仓库指向的路径;若创建外部表,仅记录数据所在的路径,不对数据的位置做任何改变。在删除表的时候,内部表的元数据和数据会被一起删除,而外部表只删除元数据,不删除数据。

3. 分区表
    有分区的表可以在创建的时候使用 PARTITIONED BY 语句。一个表可以拥有一个或者多个分区,每一个分区单独存在一个目录下。而且,表和分区都可以对某个列进行 CLUSTERED BY 操作,将若干个列放入一个桶(bucket)中。也可以利用SORT BY 对数据进行排序。这样可以为特定应用提高性能。


因为基本的数据入到表库中,所以可以直接hive命令来查看了,

开始写了一个,后来看网上这个说的清楚些:如下,从标红的这个SQL 可以看出,确实只要会sql就可以操作查看库表,



未开启行转列功能之前:

  1. hive>
  2. >
  3. > select * from example_table where dt='2012-03-31-02' limit 2;
  4. OK
  5. 1333133185 0cf49387a23d9cec25da3d76d6988546 3CD5E9A1721861AE6688260ED26206C2 guanwang 1.1 3d3b0a5eca816ba47fc270967953f881 192.168.1.2.13331317500.0 NA 031/Mar/2012:02:46:44 +080 222.71.121.111 2012-03-31-02
  6. 1333133632 0cf49387a23d9cec25da3d76d6988546 3CD5E9A1721861AE6688260ED26206C2 10002 1.1 e4eec776b973366be21518b709486f3c 110.6.100.57.1332909301867.6 NA 0 31/Mar/2012:02:54:16 +080 110.6.74.219 2012-03-31-02
  7. Time taken: 0.62 seconds

开启行转列功能之后:

  1. set hive.cli.print.header=true; // 打印列名
  2. set hive.cli.print.row.to.vertical=true; // 开启行转列功能, 前提必须开启打印列名功能
  3. set hive.cli.print.row.to.vertical.num=1; // 设置每行显示的列数
  4. > select * from example_table where pt='2012-03-31-02' limit 2;
  5. OK
  6. datetime col_1 col_2 channel version pcs cookie trac new time ip
  7. datetime=1333133185
  8. col_1=0cf49387a23d9cec25da3d76d6988546
  9. clo_2=3CD5E9A1721861AE6688260ED26206C2
  10. channel=test_name1
  11. version=1.1
  12. pcs=3d3b0a5eca816ba47fc270967953f881
  13. cookie=192.168.1.2.13331317500.0
  14. trac=NA
  15. new=0
  16. time=31/Mar/2012:02:46:44 +080
  17. ip=222.71.121.111
  18. -------------------------Gorgeous-split-line-----------------------
  19. datetime=1333133632
  20. col_1=0cf49387a23d9cec25da3d76d6988546
  21. col_2=3CD5E9A1721861AE6688260ED26206C2
  22. channel=test_name2
  23. version=1.1
  24. pcs=e4eec776b973366be21518b709486f3c
  25. cookie=110.6.100.57.1332909301867.6
  26. trac=NA
  27. new=0
  28. time=31/Mar/2012:02:54:16 +080
  29. ip=110.6.74.219
  30. --------------------------Gorgeous-split-line-----------------------
  31. Time taken: 0.799 seconds

开启行转列功能后, 每一行都已列显示, 值前面都加上列名, 方便问题查找!



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值