NightPxy 个人技术博客

Hive Database

Posted on By NightPxy

Database 相关语法

Create Database

CREATE (DATABASE|SCHEMA) [IF NOT EXISTS] database_name
[COMMENT database_comment] --数据库描述
[LOCATION hdfs_path] --数据库SourceData存储路径
[WITH DBPROPERTIES (property_name=property_value,...)]  --其它数据库设置

Drop Database

DROP (DATABASE|SCHEMA) [IF EXISTS] database_name [RESTRICT|CASCADE];
-- RESTRICT   默认使用 
-- CASCADE    删除带表的数据库

Alter Database

ALTER (DATABASE|SCHEMA) database_name SET DBPROPERTIES (property_name=property_value, ...)

ALTER (DATABASE|SCHEMA) database_name SET OWNER [USER|ROLE] user_or_role; 

ALTER (DATABASE|SCHEMA) database_name SET LOCATION hdfs_path;

Database 的MetaStore 字符编码集

使用MySQL作为Hive MetaStore时,如果Meta信息使用了中文,将可能因为字符编码问题而导致中文乱码
这时不能强行将MySQL的编码集直接调整为utf-8.(MetaStore 必须保留编码集为latin1,否则会有问题)

此时必须:

  • 传输阶段的编码集调整为utf8mb4
    这时只能将MetaStore的中文字段单独调整为 utf8mb4 具体如下:
    mysql://127.0.0.1:3306/homework?serverTimezone=UTC&characterEncoding=UTF-8&useSSL=false
    
  • 单独修改MetaStore中需要用到中文的字段编码集
    --表字段注解和表注解
    alter table COLUMNS_V2 modify column COMMENT varchar(256) character set utf8mb4 ;
    alter table TABLE_PARAMS modify column PARAM_VALUE varchar(4000) character set utf8mb4 ;
    --分区字段注解
    alter table PARTITION_PARAMS modify column PARAM_VALUE varchar(4000) character set utf8mb4 ;
    alter table PARTITION_KEYS modify column PKEY_COMMENT varchar(4000) character set utf8mb4 ;
    --索引注解
    alter table INDEX_PARAMS modify column PARAM_VALUE varchar(4000) character set utf8mb4 ;