sql基础
CREATE DATABASE IF NOT EXISTS XXX COMMENT 'STORE MY DATA'
LOCATION '/usr/hive/xxx.db' WITH DBPROPERTIES('day'='2020-12-08','creator'='syc');
#1.创建数据库,with dbproperties 用于将自定义属性指定给数据库,可以使用describe database extended xxx;
ALTER DATABASE XXX SET DBPROPERTIES('thetime'='21:23');
#2.修改元数据属性
DROP DATABASE XXX RESTRICT;
DROP DATABASE XXX CASCADE;
#3.删除数据库,默认RESTRICT,可不写,如果数据库中有数据将执行失败,CASCADE会将数据库和内部表、外部表
SHOW DATABASE LIKE 'XXX'(xxx里可以用*匹配)
#4.列出数据库
数据类型
(1)基础数据类型:数值型、日期/时间型、字符型、布尔型、二进制型。varchar类型会按定义长度自动截取不会做出警告,Sttring比varchar更有灵活性。
(2)复杂数据类型:
a.数组:声明举例:name ARRAY<"tqy","syc">
访问:name[0]
b.Map:Key-Value,Key可以用是任何类型,包括复杂数据类型
声明举例:persion MAP<'string','int'>
persion MAP<"syc",27>
访问:persion("syc")
c.结构体:相当于对象,其中含有多个字段,这些字段可以包含复杂数据类型
声明举例:persion STRUCTname:STRING,age:INT,city:STRING,role:STRING
访问:persion.age
d.联合体:可以将不同的数据类型的元素存储在同一个字段的不同行中.
声明举例:contact UNIONTYPE<int,array
访问:xxx.contact
内/外部表
(1)内部表(未被external修饰的表),数据由Hive自身管理,存储的位置是hive.metastore.warehouse.dir(默认:/user/hive/warehouse),删除内部表会直接删除元数据(metadata)及存储数据,对内部表的修改会将修改直接同步给元数据
(2)外部表(被external修饰的表),外部表数据由HDFS管理,存储位置由自己制定(如果没有LOCATION,Hive将在HDFS上的/user/hive/warehouse文件夹下以外部表的表名创建一个文件夹,并将属于这个表的数据存放在这里),删除外部表仅仅会删除元数据,HDFS上的文件并不会被删除,对外部表的表结构和分区进行修改,则需要修复(MSCK REPAIR TABLE table_name;)
此段取自:https://www.cnblogs.com/fnlingnzb-learner/p/12217162.html
建表
(1)CREATE [TEMPORARY] [EXTERNAL] TABLE [IF NOT EXISTS] [db_name.]table_name
[(col_name data_type [column_constraint_specification] [COMMENT col_comment], ... [constraint_specification])]
[COMMENT table_comment]
[PARTITIONED BY (col_name data_type [COMMENT col_comment], ...)]
[CLUSTERED BY (col_name, col_name, ...) [SORTED BY (col_name [ASC|DESC], ...)] INTO num_buckets BUCKETS]
[SKEWED BY (col_name, col_name, ...)
ON ((col_value, col_value, ...), (col_value, col_value, ...), ...)
[STORED AS DIRECTORIES]
[
[ROW FORMAT row_format]
[STORED AS file_format]
[ STORED BY 'storage.handler.class.name' [WITH SERDEPROPERTIES (...)]
]
[LOCATION hdfs_path]
[TBLPROPERTIES (property_name=property_value, ...)]
[AS select_statement]; -- (不支持外部表)
(2)CREATE [TEMPORARY] [EXTERNAL] TABLE [IF NOT EXISTS] [db_name.]table_name
LIKE existing_table_or_view_name
[LOCATION hdfs_path];
row_format
: DELIMITED [FIELDS TERMINATED BY char [ESCAPED BY char]] [COLLECTION ITEMS TERMINATED BY char]
[MAP KEYS TERMINATED BY char] [LINES TERMINATED BY char]
[NULL DEFINED AS char] -- (Note: Available in Hive 0.13 and later)
| SERDE serde_name [WITH SERDEPROPERTIES (property_name=property_value, property_name=property_value, ...)]
file_format:
: SEQUENCEFILE//序列化文件
| TEXTFILE //普通的文本文件格式
| RCFILE //行列存储相结合的文件
| ORC
| PARQUET
| AVRO
| JSONFILE //JSON文件
| INPUTFORMAT input_format_classname OUTPUTFORMAT output_format_classname //自定义文件格式
浙公网安备 33010602011771号