Hive SQL - DDL
一、Hive SQL语言:DDL建库、建表
1、 Hive SQL之数据库与建库
Hive数据模型总览
SQL中DDL语法的作用
- 数据定义语言 (Data Definition Language, DDL),是SQL语言集中对数据库内部的对象结构进行创建,删除,修改等的操作语言,这些数据库对象包括database、table等。
- DDL核心语法由CREATE、ALTER与DROP三个所组成。DDL并不涉及表内部数据的操作。
Hive中DDL语法的使用
- Hive SQL(HQL)与标准SQL的语法大同小异,基本相通;
- 基于Hive的设计、使用特点,HQL中create语法(尤其create table)将是学习掌握Hive DDL语法的重中之重。
- 建表是否成功直接影响数据文件是否映射成功,进而影响后续是否可以基于SQL分析数据。通俗点说,没有表,表没有数据,你用Hive分析什么呢?
数据库database
- 在Hive中,默认的数据库叫做default,存储数据位置位于HDFS的/user/hive/warehouse下。
- 用户自己创建的数据库存储位置是/user/hive/warehouse/database_name.db下。
create database
- create database用于创建新的数据库
COMMENT
:数据库的注释说明语句
LOCATION
:指定数据库在HDFS存储位置,默认/user/hive/warehouse/dbname.db
WITH DBPROPERTIES
:用于指定一些数据库的属性配置
CREATE (DATABASE|SCHEMA) [IF NOT EXISTS] database_name
[COMMENT database_comment]
[LOCATION hdfs_path]
[WITH DBPROPERTIES (property_name=property_value, ...)];
- 例子:创建数据库itcast
注意:如果需要使用location指定路径的时候,最好指向的是一个新创建的空文件夹。
create database if not exists itcast
comment "this is my first db"
with dbproperties ('createdBy'='Allen');
use database
- 选择特定的数据库
切换当前会话使用哪一个数据库进行操作
drop database
- 删除数据库
默认行为是RESTRICT
,这意味着仅在数据库为空时才删除它。
要删除带有表的数据库(不为空的数据库),我们可以使用CASCADE
。
DROP