Hive 字段中文注释乱码

Hive 字段中文乱码,如执行 show create table xxx 时,表级别注释、字段级别注释发现有乱码现象(都是????), 一般都是由 hive 元数据库的配置不当造成的。 此时可按如下步骤进行配置调整: 登录 hive 的元数据库 mysql 中: 1、设置 hive 元数据库字符集 show create database hive; 查看为 utf8,需变更为 latin1 _alter database hive character set latin1; 2、更改如下表字段为字符集编码为 utf8 ①修改表字段注解和表注解 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; ...

2022年8月7日 · 1 分钟

Hive 数仓建表该选用 ORC 还是 Parquet,压缩选 LZO 还是 Snappy

在数仓中,建议大家除了接口表(从其他数据库导入或者是最后要导出到其他数据库的表),其余表的存储格式与压缩格式保持一致。 在数仓中,建议大家除了接口表(从其他数据库导入或者是最后要导出到其他数据库的表),其余表的存储格式与压缩格式保持一致。 我们先来说一下目前 Hive 表主流的存储格式与压缩方式 从 Hive 官网得知,Apache Hive 支持 Apache Hadoop 中使用的几种熟悉的文件格式,如 TextFile(文本格式),RCFile(行列式文件),SequenceFile(二进制序列化文件),AVRO,ORC(优化的行列式文件)和Parquet 格式,而这其中我们目前使用最多的是TextFile,SequenceFile,ORC和Parquet。 下面来详细了解下这 2 种行列式存储。 1、ORC 1.1 ORC 的存储结构 我们先从官网上拿到 ORC 的存储模型图 看起来略微有点复杂,那我们稍微简化一下,我画了一个简单的图来说明一下 但是由于索引的高成本,在**「目前的 Hive3.X 中,已经废除了索引」**,当然也早就引入了列式存储。 列式存储的存储方式,是按照一列一列存储的,如上图中的右图,这样的话如果查询一个字段的数据,就等于是索引查询,效率高。但是如果需要查全表,它因为需要分别取所有的列最后汇总,反而更占用资源。于是 ORC 行列式存储出现了。 在需要全表扫描时,可以按照行组读取 如果需要取列数据,在行组的基础上,读取指定的列,而不需要所有行组内所有行的数据和一行内所有字段的数据。 了解了 ORC 存储的基本逻辑后,我们再来看看它的存储模型图。 同时我也把详细的文字也附在下面,大家可以对照着看看: 条带 (stripe):ORC 文件存储数据的地方,每个 stripe 一般为 HDFS 的块大小。(包含以下 3 部分) index data:保存了所在条带的一些统计信息,以及数据在 stripe中的位置索引信息。 rows data:数据存储的地方,由多个行组构成,每10000行构成一个行组,数据以流( stream)的形式进行存储。 stripe footer:保存数据所在的文件目录 文件脚注 (file footer):包含了文件中 sipe 的列表, 每个 stripe 的行数, 以及每个列的数据类型。它还包含每个列的最小值、最大值、行计数、求和等聚合信息。 postscript:含有压缩参数和压缩大小相关的信息 所以其实发现,ORC 提供了 3 级索引,文件级、条带级、行组级,所以在查询的时候,利用这些索引可以规避大部分不满足查询条件的文件和数据块。 ...

2022年7月24日 · 3 分钟

beeline导出数据

beeline -n chutianyu -p chutianyu –showHeader=false –outputformat=csv2 -e “select * from smp.india_imp_json_test2mongo ;” > india_imp_test1.json

2022年5月1日 · 1 分钟

取消HDP hive默认开启ACID配置

问题描述 原因排查 HDP 的 hive 使用的版本较高为3.1.0 ,默认建表都是使用 ACID 的事务表。而 HDP的spark版本较低为2.3 目前还不支持 hive 的 ACID 功能,因此无法读取 ACID 表的数据,准确来说是内表的数据。 官方资料 spark issues 地址: SPARK-15348 Hive ACID 解决方案 修改hive以下配置,重启hive hive.strict.managed.tables =false hive.create.as.insert.only =false metastore.create.as.acid =false 其他资料 Hive 中支持的表类型和 ACID 特性 表类型 ACID 文件格式 插入 更新 / 删除 托管表:CRUD 事务 是 ORC 是 是 托管表:仅插入式事务 是 任意格式 是 没有 托管表:临时 没有 任意格式 是 没有 外部表 没有 任意格式 是 没有 查看表的属性,指令:desc formatted tb_name ...

2022年3月20日 · 2 分钟