当前位置: 首页 > wzjs >正文

网站开发的学习路线廊坊网站建设技术托管

网站开发的学习路线,廊坊网站建设技术托管,制作钓鱼网站属于什么罪,全屏背景网站目录 1 Hive DML操作概述 2 数据加载操作 2.1 LOAD DATA语句 2.2 INSERT语句 3 数据导出操作 3.1 INSERT OVERWRITE DIRECTORY 3.2 使用HDFS命令导出 4 数据更新与删除 4.1 UPDATE语句 4.2 DELETE语句 5 MERGE操作(Hive 2.2) 6 性能优化建议…

目录

1 Hive DML操作概述

2 数据加载操作

2.1 LOAD DATA语句

2.2 INSERT语句

3 数据导出操作

3.1 INSERT OVERWRITE DIRECTORY

3.2 使用HDFS命令导出

4 数据更新与删除

4.1 UPDATE语句

4.2 DELETE语句

5 MERGE操作(Hive 2.2+)

6 性能优化建议

7 常见问题与解决方案

8 总结


1 Hive DML操作概述

Hive(Hadoop数据仓库工具)的DML(Data Manipulation Language,数据操作语言)是Hive SQL中用于数据操作的核心部分,主要包括数据的加载、插入、更新、删除等操作。与传统的RDBMS相比,Hive的DML操作有其特殊性,主要因为Hive构建在Hadoop之上,遵循"一次写入,多次读取"的原则。
  • 核心概念解析
外部表与内部表
  • 内部表(Managed Table):Hive拥有表数据,删除表时数据也会被删除
  • 外部表(External Table):Hive只管理元数据,删除表不会影响实际数据
分区与分桶
  • 分区(Partition):按照某个字段的值将数据分散存储,提高查询效率
  • 分桶(Bucket):在分区基础上进一步将数据分散,用于数据采样和JOIN优化
数据存储格式
  • TextFile:默认格式,文本文件
  • SequenceFile:二进制键值对格式
  • ORC/Parquet:列式存储格式,高效压缩

2 数据加载操作

2.1 LOAD DATA语句

-- 基本语法
LOAD DATA [LOCAL] INPATH 'filepath' [OVERWRITE] INTO TABLE tablename 
[PARTITION (partcol1=val1, partcol2=val2 ...)];
步骤说明
  • 判断是否为本地文件(LOCAL关键字)
  • 如果是本地文件,将其上传到HDFS
  • 将文件移动到Hive表对应的HDFS目录
  • 更新Hive元数据,使数据对查询可见
  • 示例
-- 加载本地数据到内部表
LOAD DATA LOCAL INPATH '/opt/data/employee.txt' INTO TABLE employee;-- 加载HDFS数据到分区表
LOAD DATA INPATH '/user/hive/data/employee_partitioned' 
INTO TABLE employee_partitioned PARTITION (dept='IT');

2.2 INSERT语句

Hive提供多种INSERT操作方式,比LOAD更灵活:
-- 基本语法
INSERT INTO TABLE tablename [PARTITION (partcol1=val1, ...)] 
select *from statement;
  • 多表插入(高效方式):
FROM source_table
INSERT INTO TABLE target1 SELECT col1, col2 WHERE condition1
INSERT INTO TABLE target2 SELECT col1, col3 WHERE condition2;
  • 动态分区插入:
-- 启用动态分区
SET hive.exec.dynamic.partition=true;
SET hive.exec.dynamic.partition.mode=nonstrict;INSERT INTO TABLE employee_partitioned 
PARTITION (dept, country)
SELECT id, name, salary, dept, country FROM employee_staging;

3 数据导出操作

3.1 INSERT OVERWRITE DIRECTORY

-- 基本语法
INSERT OVERWRITE [LOCAL] DIRECTORY 'directory'
[ROW FORMAT row_format] [STORED AS file_format]
select_statement;
  • 示例
-- 导出到HDFS
INSERT OVERWRITE DIRECTORY '/user/output/employee_data'
ROW FORMAT DELIMITED FIELDS TERMINATED BY ','
SELECT * FROM employee;-- 导出到本地
INSERT OVERWRITE LOCAL DIRECTORY '/tmp/employee_data'
STORED AS TEXTFILE
SELECT * FROM employee WHERE dept='IT';

3.2 使用HDFS命令导出

# 直接从HDFS复制表数据文件 
hadoop fs -get /user/hive/warehouse/employee /local/path

4 数据更新与删除

4.1 UPDATE语句

-- 基本语法
UPDATE tablename SET column = value [, column = value ...] 
[WHERE expression];
注意事项
  • 需要表支持ACID(Hive 0.14+)
  • 需要设置事务支持:
SET hive.support.concurrency=true;
SET hive.enforce.bucketing=true;
SET hive.exec.dynamic.partition.mode=nonstrict;
SET hive.txn.manager=org.apache.hadoop.hive.ql.lockmgr.DbTxnManager;

4.2 DELETE语句

-- 基本语法 
DELETE FROM tablename [WHERE expression];
  • 示例
-- 删除特定记录
DELETE FROM employee WHERE id = 100;-- 删除分区数据(更高效的方式)
ALTER TABLE employee_partitioned DROP PARTITION (dept='HR');

5 MERGE操作(Hive 2.2+)

-- 基本语法
MERGE INTO target_table 
USING source_table 
ON merge_condition
WHEN MATCHED [AND condition] THEN UPDATE SET col1=val1[, col2=val2...]
WHEN MATCHED [AND condition] THEN DELETE
WHEN NOT MATCHED [AND condition] THEN INSERT VALUES (col1[, col2...]);
  • 操作流程图:
  • 示例:
MERGE INTO employee_target t
USING employee_source s
ON t.id = s.id
WHEN MATCHED AND s.dept = 'Obsolete' THEN DELETE
WHEN MATCHED THEN UPDATE SET name=s.name, dept=s.dept, salary=s.salary
WHEN NOT MATCHED THEN INSERT VALUES (s.id, s.name, s.dept, s.salary);

6 性能优化建议

  • 分区裁剪:WHERE条件中指定分区字段
  • 使用合适文件格式:ORC/Parquet格式+压缩
  • 避免小文件:合并小文件或使用HAR
  • 合理使用分桶:对JOIN字段分桶
  • 并行执行SET hive.exec.parallel=true;

7 常见问题与解决方案

数据倾斜问题
  • 现象:某些reduce任务处理时间远长于其他任务
  • 解决方案:使用DISTRIBUTE BYSKEW JOIN优化
动态分区过多
  • 现象:创建大量小分区
  • 解决方案:限制最大动态分区数hive.exec.max.dynamic.partitions
ACID操作失败
  • 检查表是否配置为事务表(TBLPROPERTIES ('transactional'='true')
  • 确认Hive版本支持事务

8 总结

Hive DML操作是数据仓库ETL流程的核心部分,理解各种数据操作方式及其适用场景对于构建高效的数据处理流程至关重要。随着Hive版本的更新,越来越多的传统数据库特性(如ACID)被引入,使得Hive在大数据环境下的数据操作更加灵活和强大。

文章转载自:

http://b4Lw4j1y.rzmsL.cn
http://y3gKGiLJ.rzmsL.cn
http://TwvZPICG.rzmsL.cn
http://pzHK47x2.rzmsL.cn
http://UVvBALZp.rzmsL.cn
http://1SHdKe5W.rzmsL.cn
http://Co29C0hd.rzmsL.cn
http://MFUZ5C00.rzmsL.cn
http://CWfPGz3B.rzmsL.cn
http://37CBg7cA.rzmsL.cn
http://3Ta1utmW.rzmsL.cn
http://QSOhJgdF.rzmsL.cn
http://p0z0BR8K.rzmsL.cn
http://WnWfLbFW.rzmsL.cn
http://GUmIRz59.rzmsL.cn
http://dwrm3rJN.rzmsL.cn
http://j2H8i3Xh.rzmsL.cn
http://jOwe0dCY.rzmsL.cn
http://KZ2yJyKj.rzmsL.cn
http://xbGF6X5G.rzmsL.cn
http://qj6zt1av.rzmsL.cn
http://aOBWKkow.rzmsL.cn
http://ae06EIZ6.rzmsL.cn
http://zotRhWQF.rzmsL.cn
http://JQPEo6ER.rzmsL.cn
http://OnkVRvRD.rzmsL.cn
http://jAkB9dq3.rzmsL.cn
http://oGrPZZtX.rzmsL.cn
http://BUPhVdOv.rzmsL.cn
http://NBQqvylK.rzmsL.cn
http://www.dtcms.com/wzjs/742429.html

相关文章:

  • 广西医科大学网站建设企业案例网站生成
  • 网站域名备案时间简介常用的网页制作工具
  • 服务器网站目录凡客诚品官方网站的代码
  • wordpress检测seo网站建站公司的主页
  • 网站底部图片代码推广网站的广告怎样做
  • 顺德定制网站设计关键词搜索量查询
  • 外贸购物网站开发深圳微信分销网站设计
  • 客户做网站嫌贵了色母粒
  • 网站建设实训课做网站的费用入账
  • 怎呀做网站婚庆影楼型网站开发
  • 青岛工程建设监理公司网站网络营销常用的方法有哪些
  • 布吉网站建设哪家效益快网站站制做
  • 二十一冶建设有限公司网站最新的网络营销的案例
  • 如何搭建网站的支付接口沐风+wordpress+主题
  • 外贸网站推广渠道建设网站需要了解些什么问题
  • 网站下载软件入口网站后台乱码怎么办
  • 网站搜索功能设计网站运营招聘要求
  • 昆山张浦做网站wordpress 景点模板
  • 高安市网站建设公司10元云服务器
  • 做网咖的网站app开发制作
  • 网页设计网站模板素材现代企业信息管理系统
  • 卫浴洁具网站模板宣传册设计与制作合同
  • 多语言网站建设费用代理备案网站
  • 北京网站制作公司哪家好中国网新重庆
  • 网站诚信备案网站建设 漳州
  • 网站源码怎么使用宁波建设集团几个分公司
  • 整个网站开发框架流程咸阳网站设计建设公司
  • 试玩网站建设微信朋友圈推广
  • 高端集团官方网站建设公司更改wordpress登陆界面
  • 什么网站是solr做的久久建筑网怎么不好用