Hive初探

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.employees2
LIKE 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 DELIMITED
FIELDS 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);




你可能感兴趣的:(hadoop)