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

相关推荐
yumgpkpm2 小时前
在AI语言大模型时代 Cloudera CDP(华为CMP 鲲鹏版)对自有知识的保护
人工智能·hadoop·华为·zookeeper·spark·kafka
计算机毕业编程指导师2 小时前
【Python大数据选题】基于Hadoop+Spark奥运会金牌榜可视化分析系统源码 毕业设计 选题推荐 毕设选题 数据分析 机器学习 数据挖掘
大数据·hadoop·python·计算机·spark·毕业设计·奥运会金牌
TTBIGDATA2 小时前
【Hue】Hue 访问 Hadoop 权限问题出现 403 的解决办法
大数据·hadoop·分布式·ambari·hdp·hue·bigtop
叮铃铃上课了15 小时前
Hive实战:精准拆分中英文混合字符串(含重音/空格场景)
数据仓库·hive·hadoop
走遍西兰花.jpg20 小时前
hive怎么实现连续登录
数据仓库·hive·hadoop
a努力。1 天前
中国邮政Java面试被问:MySQL的ICP(索引条件下推)优化原理
java·开发语言·数据仓库·面试·职场和发展·重构·maven
像豆芽一样优秀1 天前
深入理解与应用SQL递归CTE处理层级数据
大数据·hive·sql
【赫兹威客】浩哥1 天前
【赫兹威客】伪分布式Hadoop测试教程
大数据·hadoop·分布式
Hello.Reader1 天前
Flink on Hadoop YARN 从 0 到可上线的 Session / Application 部署指南
大数据·hadoop·flink