Hive基本操作日记

以前自建部署的hive on hdfs数据仓库21年早已下线,本文档为当时简单做的日记,偶然整理文档发现,弃之可惜, 本文章留作未来可能参考使用。

自建hive维护成本太高,HDFS又太重,中小公司的趋势还是适合采用低成本的云厂商方案EMR+COS 存储数据; 且目前更流行湖仓一体+存算分离解决方案,比如京东将StarRocks当做一个请求客户端,通过创建各种数据源(Paimon、Hbase、ElasticSearch)的catalog,统一采用SQL处理数据,这样对于数据分析人员或者开发人员只需要连接对应的数据源编写SQL,降低了学习成本;对公司来说也确实达到了降本增效的目的。

废话不说了,

创建表语法结构

复制代码
CREATE [EXTERNAL] TABLE [IF NOT EXISTS] table_name [(col_name data_type
[COMMENT col_comment], ...)] [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]
[ROW FORMAT row_format]
[STORED AS file_format]
[LOCATION hdfs_path]

修改hive元数据表的编码方式

创建表前需要修改hive对应元数据库编码格式,否则会中文乱码

查看Hive元数据库的编码方式

show create database hive;

修改元数据的元数据表的编码格式

创建表前需要修改hive对应元数据库编码格式,否则会中文乱码。

查看hive元数据库的编码方式

show create database hive;

修改元数据的元数据表的编码格式
修改表字段注解和表注解

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;

修改 metastore 的连接 URL

<property>

<name>javax.jdo.option.ConnectionURL</name>

<value>jdbc:mysql://IP:3306/db_name? createDatabaseIfNotExist=true&useUnicode=true&characterEncoding=UTF-8</value>

<description>JDBC connect string for a JDBC metastore</description>

</property>

表操作

创建外部分区表,与内部表相比,外部表仅由Hive 管理元数据,数据文件可以存储到HDFS的任何地方;而内部表由Hive全权管理数据和元数据。

当执行删除表的操作时,外部表只是删除了表结构的元数据,真正的数据仍在;

而内部表做删除操作时,会把表结构和数据一起删除。

添加字段

alter table ods_chat_msg add columns(offline string comment '离线');
alter table ods_chat_msg add columns

(

order_source string comment '订单来源',

mid string comment '新会员id',

bank_name string comment '银行行名'

);

修改注释

alter table ods_chat_msg change column bank_name bank_name string comment '分行/支行名称'

添加分区

alter table ods_chat_msg add if not exists partition(date_time='2088-08-18',type='liaozhongmin');

删除分区

alter table ods_chat_msg drop if exists partition(d='2015-01_24');

查看分区

show partitions ods_chat_msg ;

本地数据文件装载到数据表

load data local inpath '/root/a.txt' into table trade_detail;

HDFS 数据文件装载到数据表

load data inpath '/target.txt' into table trade_detail;

装载数据到指定分区表

load data local inpath '/home/a/part-00000' overwrite into table ods_chat_msg partition (resultDate='2010-08-22');

导出数据到本地文件

用HUE不好吗,谁用这玩意啊

hive -e "use chat;select * from ods_chat_msg where resultdate='2018-11-01' limit 1" > /var/lib/hadoop-hdfs/output.txt

相关推荐
B站计算机毕业设计超人3 天前
计算机毕业设计Django+Vue.js高考推荐系统 高考可视化 大数据毕业设计(源码+LW文档+PPT+详细讲解)
大数据·vue.js·hadoop·django·毕业设计·课程设计·推荐算法
B站计算机毕业设计超人3 天前
计算机毕业设计Django+Vue.js音乐推荐系统 音乐可视化 大数据毕业设计 (源码+文档+PPT+讲解)
大数据·vue.js·hadoop·python·spark·django·课程设计
十月南城3 天前
数据湖技术对比——Iceberg、Hudi、Delta的表格格式与维护策略
大数据·数据库·数据仓库·hive·hadoop·spark
王九思3 天前
Hive Thrift Server 介绍
数据仓库·hive·hadoop
土拨鼠烧电路3 天前
笔记11:数据中台:不是数据仓库,是业务能力复用的引擎
数据仓库·笔记
Asher05093 天前
Hive核心知识:从基础到实战全解析
数据仓库·hive·hadoop
xhaoDream3 天前
Hive3.1.3 配置 Tez 引擎
大数据·hive·tez
yumgpkpm3 天前
AI视频生成:Wan 2.2(阿里通义万相)在华为昇腾下的部署?
人工智能·hadoop·elasticsearch·zookeeper·flink·kafka·cloudera
Asher05093 天前
Hadoop核心技术与实战指南
大数据·hadoop·分布式