什么是传统网站,wordpress 样式插件,重庆有几个区几个县,济南网站优化网站一、hive的基本概念
hive是一个构建在hadoop上的数据仓库工具#xff0c;可以将结构化的数据文件映射为一张数据库表并提供数据查询功能
二、hive的特点
#xff08;1#xff09;数据是存储在hdfs上
#xff08;2#xff09;底层是将sql转换为MapReduce任务进行计算
…一、hive的基本概念
hive是一个构建在hadoop上的数据仓库工具可以将结构化的数据文件映射为一张数据库表并提供数据查询功能
二、hive的特点
1数据是存储在hdfs上
2底层是将sql转换为MapReduce任务进行计算
3执行程序是运行在yarn上
三、hive表数据如何修改
1可以删除原表然后新建一个与原表的表名、表结构相同的表然后将需要修改的值更改后重新复制到新表
1 创建一个新表其结构与原表相同
CREATE TABLE tmp_table ...;2 使用INSERT语句将原表中的数据复制到新表并对需要修改的值进行更改
INSERT INTO TABLE tmp_table
SELECT col1,col2,CASE WHEN col3修改值 THEN 新值 ELSE col3 END,col4,...
FROM src_table;3 删除原表
DROP TABLE src_table;4 将新表重命名为原表的名字
ALTER TABLE tmp_table RENAME TO src_table;2也可以使用insert overwrite语句结合where条件对需要修改的值更改过后再将原表数据覆盖回去。
INSERT OVERWRITE TABLE src_table
SELECT col1,col2,col3,col4,... FROM src_table WHERE col3!修改值
UNION ALL
SELECT col1原来值,col2原来值,col3新值,col4原来值,...;四、hive分区表和桶表的区别
区别从表现形式上来看分区表是一个目录而分桶表是一个文件
从数量上来看分区表的分区个数是可以增长的而分桶表一旦指定完之后就不能增长
从依据上来看分区表需要手动添加分区分区时依据的是表外字段而分桶表是按照表内字段
从数据分布上来看分区表在根据分区字段进行分区时可能会导致数据分布不均的情况而分桶表是根据 hash值进行划分的数据分布比较均匀。
五、如何给hive表增加一个分区
增加分区通过alter修改表信息然后在表名后面通过add添加一个经过判断后不存在的分区
删除分区同上是通过drop删除一个经过判断后存在的分区
六、hive的数据倾斜
数据倾斜
hive的数据倾斜通常出现在MapReduce处理任务时在不同节点并行处理数据的过程中由于某一节点处理的数据远超其它节点的数据时会导致此节点处理数据的时间远超出其它节点的时间甚至导致任务失败
原因及解决方案
1表关联时关联字段null值过多可以将空字段与非空字段分开检索然后用union all合并查询结果也可以使用外连接关联两表然后对关联字段为的进行赋值使其不为空
2关联字段的数据类型不同把不同的数据类型转为相同的
3group by的维度过小导致reduce处理一个分区的数据远多于另一个分区的数据可以开
启Map端的聚合操作并设置groupby参数。