在Hive中,将数据从一个表查询并插入到另一个表

1. 确认目标表结构

确保目标表已存在且结构与查询结果匹配。若不存在,需先创建:

CREATE TABLE target_table (

id INT,

name STRING

)

PARTITIONED BY (dt STRING)

STORED AS ORC;

2. 选择插入方式

  • 覆盖插入(替换现有数据):

INSERT OVERWRITE TABLE target_table PARTITION (dt)

SELECT id, name, dt FROM source_table;

  • 追加插入(保留现有数据):

INSERT INTO TABLE target_table PARTITION (dt)

SELECT id, name, dt FROM source_table;

3. 处理动态分区

若目标表有动态分区,需启用配置:

SET hive.exec.dynamic.partition = true;

SET hive.exec.dynamic.partition.mode = nonstrict;

确保SELECT语句中分区字段(如dt)位于最后。

4. 字段映射与转换

若字段名或类型不同,需在查询时转换:

INSERT OVERWRITE TABLE target_table PARTITION (dt)

SELECT old_id AS id, old_name AS name, dt FROM source_table;

5. 执行并验证

运行插入语句后,检查数据量和分区是否正确:

SELECT COUNT(*) FROM target_table;

SHOW PARTITIONS target_table;

完整

-- 启用动态分区(如需)

SET hive.exec.dynamic.partition=true;

SET hive.exec.dynamic.partition.mode=nonstrict;

-- 覆盖插入数据

INSERT OVERWRITE TABLE target_table PARTITION (dt)

SELECT

id,

name,

dt -- 分区字段必须放在最后

FROM source_table;

相关推荐
IT成长日记4 小时前
【Hive入门】Hive安全管理与权限控制:基于SQL标准的授权GRANT REVOKE深度解析
hive·sql·安全·grant·revoke
weixin_3077791317 小时前
金融信贷公司所需的技术和风控体系及其带来的价值
数据仓库·金融·etl
AIGC方案21 小时前
基于Hive + Spark离线数仓大数据实战项目(视频+课件+代码+资料+笔记)
大数据·hive·spark
IT成长日记1 天前
【Hive入门】Hive与Spark SQL集成:混合计算实践指南
hive·sql·spark·混合计算
IT成长日记1 天前
【Hive入门】Hive与Spark SQL深度集成:Metastore与Catalog兼容性全景解析
hive·sql·spark·catalog·metastore
£菜鸟也有梦1 天前
Hive进阶之路
大数据·数据仓库·hive·hadoop
Microsoft Word1 天前
Servlet
hive·hadoop·servlet
weixin_307779131 天前
使用Python和Pandas实现的Amazon Redshift权限检查与SQL生成用于IT审计
数据仓库·金融·云计算·etl·aws
IT成长日记1 天前
【Hive入门】Hive与Spark SQL深度集成:执行引擎性能全面对比与调优分析
hive·sql·spark·性能分析·spark sql·执行引擎
逆袭的小学生1 天前
Hadoop 1.x设计理念解析
大数据·hadoop·分布式