hive的操作方式以及补充hive中的索引和视图

本文详细介绍Hive的多种操作方式,包括命令行、脚本、Java代码及WebGUI接口,探讨视图与索引的使用,提升Hive查询效率。深入解析视图创建、查询与删除,以及索引的创建、查询、重建和删除过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Hive操作方式

1、命令行方式cli:
A)执行SQL:
    hive> select * from psn;
    OK
    1	zhang3	["sing","tennis","running"]	{"beijing":"daxing"}	10
    2	li4	["sing","pingpong","swim"]	{"shanghai":"baoshan"}	10
    3	wang5	["read","joke","football"]	{"guangzou":"baiyun"}	10
    Time taken: 1.848 seconds, Fetched: 3 row(s)

B)执行hdfs命令:
    hive> dfs -ls /;
    Found 3 items
    drwxr-xr-x   - root supergroup          0 2019-04-24 17:03 /jars
    drwx-wx-wx   - root supergroup          0 2019-04-24 19:35 /tmp
    drwxr-xr-x   - root supergroup          0 2019-04-24 16:59 /user
    #####执行hdfs命令比直接在linux本地访问hdfs更多,因为Linux本地每次都要连接hdfs,而进入hive客户端就已经和hdfs建立了连接。

C)执行linux命令:
    hive> !pwd;
    /root
    hive> !cat /root/a.txt;
    1	zhang3	sing-tennis-running	beijing:daxing
    2	li4	sing-pingpong-swim	shanghai:baoshan
    3	wang5	read-joke-football	guangzou:baiyun


2、脚本操作方式

    查看cli命令:[root@Linux005 ~]# hive --service cli --help
    执行SQL命令:[root@Linux005 ~]# hive -e "SQL语句1;SQL语句2.。。" 
    执行SQL,结果打印到文件:[root@Linux005 ~]# hive -e "SQL语句1;SQL语句2.。。" >>a.txt
    读取文件中的命令并执行:[root@Linux005 ~]# hive -f 文件名
    静默模式:[root@Linux005 ~]# hive -S -e "sql语句"  很多乱七八糟的东西不打印
    
3、java代码
4、web GUI接口 (hwi、hue等)
    

hive View视图  

hive View视图
    和关系型数据库中的普通视图一样,hive也支持视图
特点:
    不支持物化视图
    只能查询,不能做加载数据操作
    视图的创建,只是保存一份元数据,查询视图时才执行对应的子查询
    view定义中若包含了ORDER BY/LIMIT语句,当查询视图时也进行ORDER BY/LIMIT语句操作,view当中定义的优先级更高
    view支持迭代视图,视图套视图
 
创建视图:
CREATE VIEW [IF NOT EXISTS] [db_name.]view_name 
  [(column_name [COMMENT column_comment], ...) ]
  [COMMENT view_comment]
  [TBLPROPERTIES (property_name = property_value, ...)]
  AS SELECT ... ;
查询视图:
    select colums from view;
删除视图:
    DROP VIEW [IF EXISTS] [db_name.]view_name;
 

Hive 索引

Hive 索引
    目的:优化查询以及检索性能
创建索引:
    create index t1_index on table psn2(name) 
    as 'org.apache.hadoop.hive.ql.index.compact.CompactIndexHandler' 
    with deferred rebuild [in table t1_index_table];
 
as:指定索引器;
in table:指定索引表,若不指定默认生成在default__数据表名_索引名__表中
#####创建索引后其实索表是空的,要重建索引才行。
 
查询索引
show index on psn2;
 
重建索引(建立索引之后必须重建索引才能生效)
ALTER INDEX t1_index ON psn2 REBUILD;
#####每次更新数据后都需要重建索引。
 
删除索引
DROP INDEX IF EXISTS t1_index ON psn2;
 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

二百四十九先森

你的打赏是我努力的最大动力~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值