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

相关推荐
知识分享小能手5 小时前
Hadoop学习教程,从入门到精通, MapReduce分布式计算框架 — 完整知识点与代码案例(4)
hadoop·学习·mapreduce
白日与明月7 小时前
Hive子查询中的ORDER BY陷阱:为什么排序“消失”了?
数据仓库·hive·hadoop
段一凡-华北理工大学9 小时前
工业领域的Hadoop架构学习~系列文章24:adoop工业应用总结与展望 - 技术路线图与最佳实践
大数据·人工智能·hadoop·分布式·学习·架构·高炉炼铁
段一凡-华北理工大学9 小时前
工业领域的Hadoop架构学习~系列文章23:物流行业Hadoop应用实践 - 智能物流的数字化引擎
大数据·人工智能·hadoop·分布式·学习·架构·高炉炼铁
奇点爆破XC1 天前
Hadoop大数据生态(Ambari管理)组件服务详解
大数据·hadoop·ambari
isNotNullX1 天前
企业数据中台建设,ETL工具选错了会踩哪些坑?
数据仓库·etl·原型模式
SelectDB技术团队1 天前
预约发布会|核心产品力首发,如何构建面向 Agent 时代的企业级数据引擎
数据库·数据仓库·人工智能·数据分析·可观测·apache doris·selectdb
段一凡-华北理工大学1 天前
工业领域的Hadoop架构学习~系列文章22:Hadoop生态展望 - 面向未来的技术演进
大数据·人工智能·hadoop·分布式·学习·架构·高炉炼铁
Nefu_lyh1 天前
【Hive】六、Hive 运算逻辑:数学 / 逻辑 / 条件 / 日期 / 字符串函数
数据仓库·hive·hadoop
ChaITSimpleLove1 天前
Etl.Net 2.2.0 项目深度分析
数据仓库·.net·etl·大数据处理·数据管道·数据处理引擎