• Hive SQL-DML-insert插入数据


    Hive SQL-DML-insert插入数据


    在这里插入图片描述
    在这里插入图片描述


    1. 插入静态数据

    在这里插入图片描述
    可以直接插入具体的值到Hive表中:

    INSERT INTO TABLE tablename (column1, column2, column3)
    VALUES (value1, value2, value3),
           (value4, value5, value6),
           ...;
    

    2. 插入查询结果

    在这里插入图片描述

    将一条查询的结果直接插入到另一个表中。这是一种很常见的操作,用于数据转移和转换:

    INSERT INTO TABLE tablename
    SELECT column1, column2, column3
    FROM othertable
    WHERE condition;
    

    3. 多重插入和静态分区插入

    在这里插入图片描述

    对于分区表,可以在插入时指定分区。这不仅可以提高查询效率,而且还能更好地管理数据:

    -- 插入到指定分区
    INSERT INTO TABLE tablename PARTITION (partition_column='partition_value')
    SELECT column1, column2, column3
    FROM othertable
    WHERE condition;
    

    在这里插入图片描述

    -- 插入不同分区的数据
    FROM from_table
    INSERT INTO TABLE tablename PARTITION (partition1)
    SELECT column1, column2 WHERE condition1
    INSERT INTO TABLE tablename PARTITION (partition2)
    SELECT column1, column2 WHERE condition2;
    

    4. 动态分区插入

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    Hive还支持在执行INSERT操作时动态创建分区。这需要设置一些配置参数,如启用动态分区:
    在这里插入图片描述

    SET hive.exec.dynamic.partition=true;
    SET hive.exec.dynamic.partition.mode=nonstrict;
    
    INSERT INTO TABLE tablename PARTITION (partition_column)
    SELECT column1, column2, partition_column
    FROM othertable;
    

    在这里插入图片描述
    在这里插入图片描述

    在这里插入图片描述

    5.导出数据

    导出数据是从 Hive 中提取数据的过程,通常用于将数据转移到本地文件系统、HDFS 或其他数据存储中。

    INSERT OVERWRITE 用于将查询结果或表数据写入到特定的输出位置。可以将数据导出到 HDFS 或本地文件系统。这个方法支持多种文件格式,如 Text、Parquet、ORC 等。

    • 导出到 HDFS:

      INSERT OVERWRITE DIRECTORY '/path/to/hdfs/directory'
      SELECT * FROM my_table;
      
    • 导出到本地文件系统:

      INSERT OVERWRITE LOCAL DIRECTORY '/path/to/local/directory'
      SELECT * FROM my_table;
      

    在这两个示例中,数据将被导出到指定的 HDFS 或本地路径。默认情况下,数据以文本格式输出,但可以通过 STORED AS 选项指定不同的文件格式。

    在这里插入图片描述
    在这里插入图片描述
    示例:
    在这里插入图片描述
    在这里插入图片描述

    6.注意事项

    • Hive中的INSERT操作本质上是对文件的写操作。特别是在HDFS中,这意味着每次INSERT都会生成新文件。这可能会影响性能,特别是在大量小批量插入时。
    • 建议在执行大批量数据插入前调优Hive配置和考虑合适的文件格式和压缩机制。
    • 在执行大数据量的插入时,需要注意Hive服务器和Hadoop集群的资源配置,以避免过载。
  • 相关阅读:
    ObjectARX打印当前图纸为PDF(亲测有效)
    vue使用websocket与springboot通信
    【Java SE】封装,面向对象三大特性之一
    【重识云原生】第六章容器6.1.7.1节——Docker核心技术cgroups综述
    多项式加法_C语言
    4.如何终止线程
    NC338 删除升序数组的重复元素
    LeetCode__无重复字符的最长子串
    在Django框架中自定义模板过滤器的方法
    31 - 认识MySQL
  • 原文地址:https://blog.csdn.net/weixin_48935611/article/details/138560351