hive之SQL

眉间皱痕 提交于 2020-11-27 04:55:41

提示:查看学习SQL主要通过官网

输入hive.apache.org进入hive的官网。

 

点击Hive Wiki  进入一个界面选择DDL或者DML选择你需要的进行语法查询

 

一)、DDL:CREATE/DROP/ALTER/MSCK/SHOW/DESCRIBE 

CREATE (DATABASE|SCHEMA2选一) [IF NOT EXISTS可有可无] database_name(必须存在
[COMMENT database_comment]
[LOCATION hdfs_path]  )
[WITH DBPROPERTIES (property_name=property_value, ...)];

1.CREATE DATABASE hive;  创建一个database  名字叫hive

提问:hive这个库建立起来以后存在于哪里?如何查看?
答:desc database hive;  查看hive的默认目录

hdfs://hadoop001:9000/user/hive/warehouse/hive.db
hdfs://hadoop001:9000: HDFS目录

/user/hive/warehouse/:默认的hive存储在HDFS上的目录
hive.metastore.warehouse.dir hive的元数据metastorede 它的一个数据仓库warehourse指向了(dir)

Default Value: /user/hive/warehouse 一个默认目录
Added In: Hive 0.2.0
Location of default database for the warehouse.

hive.db
create database hive; hive是db的名称.db

hive> desc database hive;
OK
hive hdfs://hadoop001:9000/user/hive/warehouse/hive.db hadoop USER

hive> CREATE DATABASE hive2
> location '/d6_hive/directory';  ----自己定义hive在HDFS上的位置
OK
Time taken: 0.034 seconds
hive> desc database hive2;
OK
hive2 hdfs://hadoop001:9000/d6_hive/directory hadoop USER

 

修改hdfs://hadoop001:9000/user/hive/warehouse/hive.db 参数的方法:

修改hive参数的几种形式
1) set hive.metastore.warehouse.dir;
set key 取值
set key=value 设置值


局部 单session(当前窗口)
2)hive-site.xml
全局

hive查看默认配置的方法:

打开官网

输入hive.apache.org进入hive的官网。

 

点击Hive Wiki 进入一个界面找到以下红框的内容,hive配置属性。这个文件里能找到所有的hive的默认配置

 查看元数据的方法还有一种,hive是建立在hadoop上的数仓,mysql是存储元数据的地方。要查看hive在HDFS上上的相应目录,也可以去mysql里查看。DB_LOCATION_URI 字段对应着database的默认存储目录或者指定存储目录。NAME对应着database的名字。

select * from dbs \G;   G的作用是格式化一下。看起来更清晰。

在执行 desc database hive 出现的信息是哪里来的 ,都是执行命令以后去元数据找来的。

二、在HDFS上的的文件要想加上schema,必须知道行与行之间的分隔符和字段与字段之间的分隔符。

行与行的分隔符是回车(建表语句中不用考虑,默认回车),字段与字段之间的分隔符多种多样。

(row format/ file format
两大分隔符:行与行 字段与字段之间的分隔符
列分隔符:\001
file格式:行式 列式)

三、

DDL

create   /drop   /alter    /truncate   /show  /describe

DML

load   /insert    /update    /delete   /merge  import   /export  explain plan

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!