Hive初探

来源:互联网 发布:淘宝客如意投怎么设置 编辑:程序博客网 时间:2024/05/20 14:28
CREATE DATABASE mydb;CREATE DATABASE IF NOT EXIST mydb;SHOW DATABASES;SHOW DATABASES LIKE 'm.*';CREATE DATABASE mydb LOCATION 'my/directory';CREATE DATABASE mydb COMMENT 'hello';DESCRIBE DATABASE mydb;CREATE DATABASE mydb WITH DBPROPERTIES('creator' = 'ZQ','date' = '2016-11-19');DESCRIBE DATABASE EXTENDED mydb;USE mydb;--无法查看当前所在的是哪个数据库,可以重复使用USE,无嵌套DROP DATABASE IF EXISTS mydb;--无法删除包含表的数据库DROP DATABASE IF EXISTS mydb PESTRICT;--同上默认情况DROP DATABASE IF EXISTS mydb CASCADE;-CASCADE可以自行删除数据库中的表

修改数据库:

ALTER DATABASE mydb SET DBPROPERTIES ('edited-by'='Zqqq');CREATE TABLE IF NOT EXISTS mydb.employees (  name        STRING COMMENT 'Employee name',  salaty      FLOAT  COMMENT 'Salary')COMMENT 'Description of the table'TBLPROPERTIES('creator'='me','created_at'='2016-11-19')LOCATION '/user/hive/warehouse/mydb.db/employees';CREATE TABLE IF NOT EXISTS mybd.employees2LIKE mydb.employees;--拷贝模式,而无需拷贝数据SHOW TABLES;USE default;SHOW TABLE IN mydb;--不支持与正则表达式同时使用USE mydb;SHOW TABLES LIKE 'empl.*';DESCRIBE EXTENDED mydb.employees;--实际使用情况如下,用FORMATTED替换EXTENED,更加可读DESCRIBE FORMATTED mydb.employees;--DESCRIBE也可以描述每个字段的信息--外部表CREATE EXTERNAL TABLE IF NOT EXISTS stocks (  exchange    STRING.  symbol      STRING)ROW FORMAT DELIMITEDFIELDS TERMINATED BY ','LOCATION 'data/stocks';--分区表CREATE TABLE employees(  name      STRING,  country   STRING)PARTITIONED BY(country STRING);SHOW PARTITIONS employees;SHOW PARTITIONS employees PARTITION(country='china');--通过载入数据的方式创建分区LOAD DATA LOCAL INPATH '${env:HOME}/california-employees'INTO TABLE employees PARTITION (country='US', state='CA');--如果分区目录不存在的话,会先创建分区目录,然后再拷贝数据
LOAD DATA LOCAL INPATH '${env:HOME}/california-employees'OVERWRITE INTO TABLE employees PARTITION (country='US', state='CA');


SELECT * FROM employees
WHERE country = 'china';

--修改表
ALTER TABLE mydb RENAME TO my_db;
--增加新分区
ALTER TABLE mydb ADD IF NOT EXISTS
PARTITION (year=2016,month=11,day=1) LOACTION 'logs/2016/11/01'
PARTITION (year=2016,month=11,day=2) LOACTION 'logs/2016/11/01'
PARTITION (year=2016,month=11,day=3) LOACTION 'logs/2016/11/01'...;--修改路径ALTER TABLE mydb PARTITION(year=2016,month=11,day=2)SET LOCATION 's3n://ourbucket/logs/2016/11/02';ALTER TABLE mydb DROP IF EXISTS PARTITION (year=2016,month=11,day=1);

                                             
0 0
原创粉丝点击