Hive(5)--Hive操作语句
数据库级别语句
展示数据库
语法:
show databases; 复制代码
案例:
show databases; database_name | --------------+ default | hive_databases| 复制代码
创建数据库
语法:
CREATE (DATABASE|SCHEMA) [IF NOT EXISTS] 数据库名称 --DATABASE|SCHEMA 是等价的 [COMMENT 数据库注释] --数据库注释 [LOCATION HDFS要存放的路径 ] --存储在 HDFS 上的位置 [WITH DBPROPERTIES (property_name=property_value, ...)]; --指定额外属性 复制代码
案例:
CREATE DATABASE IF NOT EXISTS hive_databases COMMENT 'hive数据库' WITH DBPROPERTIES ('create'='jacquesh'); 复制代码
选择数据库
语法:
use 数据库名称; 复制代码
案例:
use hive_databases; 复制代码
删除数据库
语法:
DROP (DATABASE|SCHEMA) [IF EXISTS] 数据库名称 [RESTRICT|CASCADE]; **默认行为是** RESTRICT,**如果数据库中存在表则删除失败。要想删除库及其中的表,可以使用** CASCADE **级联删除**。 复制代码
案例:
DROP DATABASE IF EXISTS hive_databases CASCADE; 复制代码
显示数据库详情
语法:
DESC DATABASE [EXTENDED] 数据库名称; --EXTENDED 表示是否显示额外属性 复制代码
案例:
DESC DATABASE EXTENDED hive_databases; db_name |comment|location |owner_name|owner_type|parameters | --------------+-------+----------------------------------------------------+----------+----------+-----------------+ hive_databases|hive???|hdfs://cluster/user/hive/warehouse/hive_databases.db|hive2 |USER |{create=jacquesh}| 复制代码
表级别操作语句
表的创建操作
内部表与外部表
语句:
CREATE [TEMPORARY] [EXTERNAL] TABLE [IF NOT EXISTS] [数据库.]表名 --表名 [(col_name data_type [COMMENT col_comment], ... [constraint_specification])] --列名 列数据类型 [COMMENT 表描述] --表描述 [PARTITIONED BY (col_name data_type [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的存储位置] -- 指定表的存储位置 [TBLPROPERTIES (property_name=property_value, ...)] --指定表的属性 [AS select_statement]; --从查询结果创建表 复制代码
内部表
CREATE TABLE temps ( ---------------字段配置开始------------------- empno INT, ename STRING, job STRING, mgr INT, hiredate TIMESTAMP, sal DECIMAL(7,2), comm DECIMAL(7,2), deptno INT ---------------字段配置结束------------------- ) ROW FORMAT DELIMITED fields terminated by "\t"; **设置字段的分隔符为 “\t” //创建表之后可以再HDFS的目录中查看到表文件(默认配置的)** 复制代码
外部表
CREATE EXTERNAL TABLE temps **外部表的创建需要加上external关键字修饰** ( ---------------字段配置开始------------------- empno INT, ename STRING, job STRING, mgr INT, hiredate TIMESTAMP, sal DECIMAL(7,2), comm DECIMAL(7,2), deptno INT ---------------字段配置结束------------------- ) ROW FORMAT DELIMITED FIELDS TERMINATED BY "\t" **设置字段的分隔符为 “\t”** LOCATION **'/hive/emp_external'; 配置数据路径 也是的hdfs 的路径**
作者:jacqueshuang
链接:https://juejin.cn/post/7034517152249937934
伪原创工具 SEO网站优化 https://www.237it.com/