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

SQL表一共有几种写入方式

SQL表一共有几种写入方式

    • **1. `INSERT OVERWRITE TABLE`(覆盖写入)**
    • **2. `INSERT INTO TABLE`(追加写入)**
    • **3. `INSERT OVERWRITE DIRECTORY`(导出数据到文件)**
    • **4. `CREATE TABLE AS SELECT`(CTAS,建表并写入)**
    • **总结对比**
    • **如何选择?**

Hive SQL(以及 Spark SQL)中,数据写入表的方式主要有 4 种,具体如下:


1. INSERT OVERWRITE TABLE(覆盖写入)

特点

  • 先删除目标表的全部数据(或指定分区的数据),再写入新数据
  • 适用于全量数据刷新(如每日全量更新)。
  • 如果表是分区表,可以指定分区覆盖

语法

-- 覆盖全表
INSERT OVERWRITE TABLE table_name
SELECT ... FROM ...;-- 覆盖指定分区(动态分区)
INSERT OVERWRITE TABLE table_name PARTITION(dt='20250905')
SELECT ... FROM ...;

适用场景

  • 每日全量数据更新(如用户画像表)。
  • 临时表数据刷新(如 adhoctemp 表)。

2. INSERT INTO TABLE(追加写入)

特点

  • 不删除旧数据,新数据直接追加到表末尾
  • 适用于增量数据写入(如日志表、流水表)。
  • 可以指定分区追加数据

语法

-- 追加数据到全表
INSERT INTO TABLE table_name
SELECT ... FROM ...;-- 追加数据到指定分区
INSERT INTO TABLE table_name PARTITION(dt='20250905')
SELECT ... FROM ...;

适用场景

  • 日志表(如用户行为日志)。
  • 增量数据存储(如订单流水表)。

3. INSERT OVERWRITE DIRECTORY(导出数据到文件)

特点

  • 将查询结果写入 HDFS 或云存储(如 S3、OSS)的指定目录
  • 不会影响表数据,仅用于数据导出
  • 支持多种文件格式(如 CSV、Parquet、ORC)

语法

-- 导出数据到 HDFS 目录(默认格式为 TEXT)
INSERT OVERWRITE DIRECTORY '/path/to/output'
SELECT ... FROM ...;-- 导出为 Parquet 格式
INSERT OVERWRITE DIRECTORY '/path/to/output'
STORED AS PARQUET
SELECT ... FROM ...;

适用场景

  • 数据导出到外部系统(如数据分析、机器学习)。
  • 备份数据到文件系统。

4. CREATE TABLE AS SELECT(CTAS,建表并写入)

特点

  • 直接创建新表并写入数据(无需提前建表)。
  • 适用于临时分析表或数据转换
  • 可以指定存储格式(如 Parquet、ORC)

语法

-- 创建新表并写入数据
CREATE TABLE new_table
STORED AS PARQUET
AS
SELECT ... FROM ...;

适用场景

  • 临时分析表(如 adhoctemp 表)。
  • 数据转换(如 ETL 中间表)。

总结对比

写入方式特点适用场景
INSERT OVERWRITE TABLE覆盖旧数据全量数据更新(如每日快照)
INSERT INTO TABLE追加新数据增量数据(如日志、流水)
INSERT OVERWRITE DIRECTORY导出到文件数据备份、外部使用
CREATE TABLE AS SELECT (CTAS)建表并写入临时表、ETL 中间表

如何选择?

  • 需要全量替换数据?INSERT OVERWRITE TABLE
  • 需要增量追加数据?INSERT INTO TABLE
  • 需要导出数据到文件?INSERT OVERWRITE DIRECTORY
  • 需要快速创建临时表?CREATE TABLE AS SELECT

在你的例子中,如果 tmp_z00943176_20250905_nbcb_ana_sample_did 是临时分析表,通常更适合用 INSERT OVERWRITE TABLE(全量刷新)CREATE TABLE AS SELECT(直接建表)


文章转载自:

http://DkGBNTcw.jqjnx.cn
http://LVpWHEi7.jqjnx.cn
http://2Hv061bd.jqjnx.cn
http://rXLd2xx8.jqjnx.cn
http://F3AGtiMT.jqjnx.cn
http://R2rh8JzE.jqjnx.cn
http://sCitYeiJ.jqjnx.cn
http://yeDQVUu6.jqjnx.cn
http://1KyQVlKx.jqjnx.cn
http://Hp9UDEsX.jqjnx.cn
http://WvyXbZwN.jqjnx.cn
http://aszFYLux.jqjnx.cn
http://KhtxUIms.jqjnx.cn
http://PuC8xSZL.jqjnx.cn
http://KPnc4ikR.jqjnx.cn
http://CUdLpG41.jqjnx.cn
http://fXm2S5tr.jqjnx.cn
http://VZ7GjF6D.jqjnx.cn
http://zXFyUwOG.jqjnx.cn
http://ir7xpLQa.jqjnx.cn
http://oZ1ssLuj.jqjnx.cn
http://8CxFSSyo.jqjnx.cn
http://1IQyWDkX.jqjnx.cn
http://uaihlzlW.jqjnx.cn
http://UT44vAu4.jqjnx.cn
http://S9AxJ8kC.jqjnx.cn
http://DJeVicmu.jqjnx.cn
http://O9vy8hTV.jqjnx.cn
http://0K1genDz.jqjnx.cn
http://Ol5cwv8f.jqjnx.cn
http://www.dtcms.com/a/369059.html

相关文章:

  • Vue3源码reactivity响应式篇之ReactiveEffect类
  • C++中的Reactor和Proactor模型进行系统性解析
  • 调试技巧:Chrome DevTools 与 Node.js Inspector
  • 双碳目标下的24小时分时综合能源系统低碳优化调度:基于 Matlab/YALMIP/CPLEX的方法与仿真
  • 告别 “无效阅读”!2025 开学季超赞科技书单,带孩子解锁 AI、编程新技能
  • 鸿蒙Next的UI国际化与无障碍适老化实践:构建全球包容的数字世界
  • react 全屏页面自适应操作,注意问题
  • 计算机毕设选题:基于Python数据挖掘的高考志愿推荐系统
  • PCL中的特征提取
  • 2025年TOP8最佳GNSS位移监测设备权威推荐榜单
  • 告别研发内耗!这款免费项目管理工具,让团队效率实现 3 倍跃升
  • 【智慧城市】2025年中国地质大学(武汉)暑期实训优秀作品(3):基于Mapbox GL JS 构建的城市三维可视化系统
  • 图像处理:实现多图点重叠效果
  • 在Kingbase数据库中指定用户模式并查看拥有的数据库模式
  • 【TXT】用 Python 实现超漂亮的 HTML 两栏文本对比工具(支持行内差异高亮)
  • VOGUE二十周年女演员群像封面
  • 使用pytorch创建/训练/推理OCR模型
  • 从音频到文本实现高精度离线语音识别
  • 安防芯片ISP白平衡统计数据如何提升场景适应性?
  • Spring如何解决循环依赖:深入理解三级缓存机制
  • 当服务器出现网卡故障时如何检测网卡硬件故障并解决?
  • 【算法--链表】83.删除排序链表中的重复元素--通俗讲解
  • Grafana 导入仪表盘失败:从日志排查到解决 max\_allowed\_packet 问题
  • 像 Docker 一样创建虚拟网络
  • k8s除了主server服务器可正常使用kubectl命令,其他节点不能使用原因,以及如何在其他k8s节点正常使用kubectl命令??
  • xwiki sql注入漏洞复现(CVE-2025-32969)
  • MySQL】从零开始了解数据库开发 --- 表的操作
  • 「数据获取」《中国劳动统计年鉴》(1991-2024)
  • 手把手教你用Vue3+TypeScript+Vite搭建后台管理系统
  • oracle 使用CONNECT BY PRIOR 提示ORA-01436