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);
本站文章为和通数据库网友分享或者投稿,欢迎任何形式的转载,但请务必注明出处.
同时文章内容如有侵犯了您的权益,请联系QQ:970679559,我们会在尽快处理。