Hive------基本语句

hive基本语句

创建库:
craete database if not exists online;
显示库:
show databases;
切换库:
use databasename;
删除表:
drop table if exists u1;
删除空库:
drop database if exists name;
强制删除库:
drop database if exists name cascade;
查看数据库:
desc database name;
创建表:

create table  if not exists  u4(
​    id bigint comment 'this userId',
​    name String,
​    sex tinyint
)
comment 'this is table of user'
row format delimited fields terminated by '\t'
lines terminated by '\n'
stored as textfile
;

创建外部表:(external关键字)

create external table if not exists log(
​    id String,
​    phone  bigint,
​    upflow  int,
​    downflow int
)
comment 'this is table of user'
row format delimited fields terminated by '\t'
lines terminated by '\n'
stored as textfile
;

加载数据:

//从本机加载数据


load data local inpath '/home/hadoop/u1' into table u1;

//从hdfs加载数据

load data inpath '/u1' into table u3;

//从另一个表中查询插入

insert into u2 select id,name,sex from u1; 

查看表描述:

desc u1;
desc extended u1;
desc formatted u1;
show create table u1;

创建表的本质:在hdfs中对应的库下面创建目录,在源数据表中添加对应信息。

修改表

alter table:修改列,添加列,删除列,内部表转成外部表。
改变表名 - ALTER TABLE 旧表名 RENAME TO 新表名
增加一列 - ALTER TABLE 表名 ADD COLUMN 列名 数据类型
删除列-alter table t2 drop column c;

//hive的外部表和内部表

创建:默认创建内部,创建外部表需要关键字external
删除:删除内部表会删除元数据和数据内容;
删除外部表只删除元数据,不删除数据内容(只删除数据库中的 表,不删除hdfs上的文件)。

//适用场景:

内部表:多用于临时表、中间表
外部表:多用于数据源

//查询

1.左链接

left join,left semi join,left outer join

//查询jones的mgr

select e1.ename
from emp e left join emp e1
on e.mgr = e1.empno
where e.name = "JONES";

2.右连接

right join,right outer join

//hive 不支持right semi join

上述二者都是以右表为准,匹配坐标,坐标匹配不存在用null来代替。

3.内连接

多表用“,”分开,join,inner join

hive的on只支持等值连接,不支持 > < >= != …

4.//设置map端join

hive.auto.convert.join=true

//如果文件大于这个值则不会默认转换成map端join。hive.mapjoin.smalltable.filesize=25000000 23.8M

group by 语句

通常和having 搭配使用,通常和聚合函数搭配使用having:对分组玩之后的结果集进行过滤。
带group by的语句,select后面的字段要么在group by后面出现,要不在聚合函数中。

select a,sum(b) 
from table1 s 
group by a    
order by s.a desc;

排序

sort by:局部排序,只是一个reducer中的数据排序。

order by:全局排序。整个job中的所有reducer中的数据都会排序。(通常使用一个)

   当reducer数量为1时候,两者都一样。
   通常和desc、asc搭配使用,默认是asc
   //设置  set mapreduce.job.reduces=3;

distribute by: 分到多个reducer

​ 它和sort同时存在,并且在sort by 前面

​	select a,b
​	from table
​	distribute by a
​	sort by b asc;

cluster by:

​ 兼有distribute by 和 sort by 的功能,但是sort by 需要时升序。

 	select a,b
​	from table
​	distribute by a
​	cluster by b asc;

合并

union:、union all: 都是将多个结果合并

union:去重并排序

union all:不去重不排序,只是合并

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Hive是一个基于Hadoop的数据仓库工具,它允许用户使用SQL-like语言来进行大数据处理。Hive-2.3.3是Hive的一个版本,它提供了一种新的JDBC驱动程序,这个驱动程序支持新的JDBC4.2 API,提供更完整的JDBC支持。与之前的版本不同,这个新的JDBC驱动程序提供了更好的性能和更高的可伸缩性。它还支持Kerberos身份验证和SSL加密,可以更加安全地访问Hadoop数据仓库。 使用Hive-2.3.3的JDBC驱动程序,用户可以使用Java编程语言来连接和操作Hive数据仓库。它可以帮助用户编写更加灵活、可靠的Hive应用程序,实现更高效的数据分析和处理。此外,这个驱动程序还可以作为其他应用程序的数据源,如BI应用程序和ETL工具。 对于企业级应用程序,这个JDBC驱动程序提供了更好的弹性和可伸缩性,以应对大量数据的处理需求。用户可以使用它进行数据抽取、转换和加载,从而更好地实现数据集成。 总的来说,Hive-2.3.3的JDBC驱动程序是一个非常有用的工具,它提供了更好的性能、更高的可靠性和更大的可伸缩性,使用户可以更好地处理和分析大数据。 ### 回答2: Hive是一款基于Hadoop的数据仓库系统,可以用于大规模数据存储和分析。而Hive-2.3.3版本的JDBC驱动程序则是提供给Java程序访问和操作Hive数据库的一种工具。 JDBC是Java数据库连接的缩写,是Java语言访问关系型数据库的标准接口。Hive JDBC驱动程序是基于这个接口实现的,通过JDBC接口实现了Hive数据仓库的连接与操作,使得开发者可以使用Java程序对Hive表进行查询、插入、更新、删除等操作。 Hive-2.3.3版本的JDBC驱动程序具有一些新的特性,比如支持Kerberos安全认证、支持HiveServer2协议、支持连接池等。这些新增特性使得Hive-2.3.3 JDBC驱动程序更加易用、安全可靠,并能更好地满足各种应用场景的需求。 总之,Hive-2.3.3 JDBC驱动程序是连接Java程序与Hive数据库的一条桥梁,具有重要的作用。通过这个驱动程序,用户可以在Java应用程序中访问和操作Hive数据库,便于数据分析和挖掘,是大数据应用中必不可少的工具。 ### 回答3: Hive-2.3.3 JDBC驱动程序是一个用于连接Apache Hive数据库的Java编程语言接口,它使得程序员能够在Java应用程序中访问Hive数据库。JDBC驱动程序是一种遵循Java Database Connectivity(JDBC)标准的软件组件,它提供了一个标准接口来访问关系型数据库。 Hive是一个基于Hadoop的数据仓库,它允许用户使用类SQL的语言查询和分析存储在Hadoop文件系统中的大规模数据集。Hive可以将结构化数据映射到Hadoop的分布式文件系统中,并提供了类SQL的查询语言HiveQL,允许用户使用HiveQL查询大型数据集。 使用Hive-2.3.3 JDBC驱动程序,程序员能够在Java应用程序中轻松地访问Hive数据库。它提供了一个稳定、高性能的连接对象来管理与Hive的通信,该对象对数据库的基本操作(例如查询和更新)提供支持。此外,JDBC驱动程序还提供了一组API,使得程序员可以自由地构建和执行查询语句,从而进行数据查询和分析。 总之,Hive-2.3.3 JDBC驱动程序是一个重要的工具,它使得Java程序员能够轻松地访问和查询Hive数据库。它提供了一组标准接口,使得程序员可以更轻松地进行数据分析和处理,为企业和组织提供了更快、更有效的数据处理解决方案。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值