hive 搭建数据仓库

Beeline连接
!connect jdbc:hive2://ip:port
用户名 hive
密码 hive

有的创建的hive数据库可能存在乱码的现象,故本次一并解决。

1.修改Mysql中的hive表相关配置

修改表字段注解和表注解

use hive;# mysql元数据库
alter table COLUMNS_V2 modify column COMMENT varchar(256) character set utf8;
alter table TABLE_PARAMS modify column PARAM_VALUE varchar(4000) character set utf8;

修改分区字段注解

alter table PARTITION_PARAMS modify column PARAM_VALUE varchar(4000) character set utf8 ;
alter table PARTITION_KEYS modify column PKEY_COMMENT varchar(4000) character set utf8;

修改索引注解

alter table INDEX_PARAMS modify column PARAM_VALUE varchar(4000) character set utf8;

2.在ambari的UI页面修改 metastore 的连接 URL

注意修改完成后要重启Hive

jdbc:mysql://ip:3306/database?createDatabaseIfNotExist=true&useUnicode=true&characterEncoding=UTF-8

3.创建数据库

CREATE SCHEMA lys_test01;

show create database lys_test01;

drop database lys_test01;

4.创建hive表结构

# hive表需要分桶,因为nifi数据接入要求分桶,并开启事务
CREATE TABLE ODS_BKS_XSJBXX (
  XH STRING COMMENT '学号',
  XM STRING COMMENT '姓名',
  SJTBCKSJ TIMESTAMP COMMENT '数据同步仓库时间'
)CLUSTERED BY (
   XH )
INTO 1 BUCKETS 
 STORED AS orc   
   TBLPROPERTIES ( 
   'transactional'='true');

# 查看表结构
desc ods_bks_xsjbxx;

5. 插入表数据

insert into table ODS_BKS_XSJBXX values
('001','张三','2020-08-01 00:00:00'),
('002','李四','2020-08-02 00:00:00');

常遇到的问题

hive表中 desc 及 show create table 查出来字段和表的中文comment全是 ?
解决方案:

1、进入CDH的元数据库mysql执行:show create database hive;  发现默认是utf8类型    
mysql> show create database hive;
+----------+---------------------------------------------------------------+
| Database | Create Database                                               |
+----------+---------------------------------------------------------------+
| hive     | CREATE DATABASE `hive` /*!40100 DEFAULT CHARACTER SET utf8 */ |
+----------+---------------------------------------------------------------+

2、更改默认编码为latin1
mysql> alter database hive default character set latin1;

3、在mysql中修改hive元数据属性
mysql> use hive;

mysql> alter table COLUMNS_V2 modify column COMMENT varchar(256) character set utf8;

mysql> alter table TABLE_PARAMS modify column PARAM_VALUE varchar(4000) character set utf8;


重新建Hive表,字段和表的中文comment正常。

猜你喜欢

转载自blog.csdn.net/liuyunshengsir/article/details/108116702