在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;

相关推荐
派可数据BI可视化11 小时前
商业智能BI 浅谈数据孤岛和数据分析的发展
大数据·数据库·数据仓库·信息可视化·数据挖掘·数据分析
随心............16 小时前
yarn面试题
大数据·hive·spark
Aurora_eye20 小时前
记录之Ubuntu22.4虚拟机及hadoop为分布式安装
大数据·hadoop·分布式
SirLancelot11 天前
StarRocks-基本介绍(一)基本概念、特点、适用场景
大数据·数据库·数据仓库·sql·数据分析·database·数据库架构
随心............1 天前
在开发过程中遇到问题如何解决,以及两个经典问题
hive·hadoop·spark
yumgpkpm2 天前
CMP (类ClouderaCDP7.3(404次编译) )华为鲲鹏Aarch64(ARM)信创环境 查询2100w行 hive 查询策略
数据库·数据仓库·hive·hadoop·flink·mapreduce·big data
CoookeCola2 天前
MovieNet(A holistic dataset for movie understanding) :面向电影理解的多模态综合数据集与工具链
数据仓库·人工智能·目标检测·计算机视觉·数据挖掘
K_i1343 天前
Hadoop 集群自动化运维实战
运维·hadoop·自动化
Q26433650233 天前
【有源码】基于Python与Spark的火锅店数据可视化分析系统-基于机器学习的火锅店综合竞争力评估与可视化分析-基于用户画像聚类的火锅店市场细分与可视化研究
大数据·hadoop·python·机器学习·数据分析·spark·毕业设计
想ai抽3 天前
深入starrocks-多列联合统计一致性探查与策略(YY一下)
java·数据库·数据仓库