HiveSQL --- DML(数据操作)语句

本文详细介绍了Hive中的数据导入和导出,包括使用load数据的方式,如何追加和覆盖写入,以及通过insert语句进行数据插入。此外,还讨论了数据导出的不同格式和指定字段分隔符的方法。最后,提到了Hive第一代客户端的作用,包括作为客户端执行HQL、启动服务和执行脚本等功能。
摘要由CSDN通过智能技术生成

目录

1.数据导入之 load方式

2.数据导入之 load方式

 3.数据导出

4.hive第1代客户端的作用

总结



1.数据导入之 load方式

load data [local] inpath '源文件的路径' [overwrite] into table 表名;
解释:
1. 加local指的是本地路径, 即: Linux文件路径.  路径前缀要加 file:///  可以省略不写.
   不加local指的是HDFS路径.
2. 不写overwrite是追加写入, 如果写了(overwrite)则是覆盖写入.

代码如下(示例):

通过load方式加载数据到 stu表中.

-- 从Linux中加载数据到stu表中, 追加写入.
    load data local inpath '/export/data/hivedata/students.txt' into table stu;     
    -- 不转MR, Linux的源文件还在, 相当于拷贝一份给HDFS.

-- 从Linux中加载数据到stu表中, 覆盖写入.
    load data local inpath '/export/data/hivedata/students.txt' overwrite into table stu;    
     -- 不转MR, Linux的源文件还在, 相当于拷贝一份给HDFS.

-- 从HDFS中加载数据到stu表中. 追加写入 和 覆盖写入都一样, 就是看有没有写 overwrite单词.
    load data inpath '/wordcount/students.txt' into table stu_hdfs;      
    -- 不转MR, HDFS的源文件不在了, 相当于: 剪切.

2.数据导入之 load方式

insert [into | overwrite] table 表名 partition(分区字段=值)
         select 列1, 列2... from 表名;
细节:
      1. into是追加写入, 后续的table可以省略.
          overwrite是覆盖写入, 后续的table不能省略.
      2. 插入的时候, 要求和查询出的列的个数, 对应的数据类型必须保持一致, 至于列名, 表名无所谓.
      3. insert + select方式底层会转MR程序来执行.

代码如下(示例):

insert into table stu_insert select * from stu;   
-- 会转MR程序, into方式是 追加写入, table可以省略.

insert overwrite table stu_insert select * from stu;   
-- 会转MR程序, overwrite方式是 覆盖写入, table不可以省略.

 3.数据导出

数据导出格式
    格式
        insert overwrite [local] directory '目的地目录的路径' 
        row format delimited fields terminated by '行格式分隔符'
        select 列1, 列2... from 表名;
    细节
        1. 加local是Linux路径, 不加则是HDFS路径.
        2. 导出时, 是覆盖导出, 可以指定字段分隔符.

代码如下(示例):

将stu的表数据导出到 Linux目录中.
insert overwrite local directory '/export/data/hivedata' select * from stu;
-- 覆盖导出, 默认分隔符'\001'

insert overwrite local directory '/export/data/hivedata2'
row format delimited fields terminated by '#'
select * from stu;     -- 覆盖导出, 指定分隔符为'#'

-- 将stu的表数据导出到 HDFS目录中.
insert overwrite directory '/wordcount' 
row format delimited fields terminated by '$'
select id, name, age from stu;

4.hive第1代客户端的作用

Hive的第1代客户端指的是:  /export/server/hive/bin/hive, 它的作用有四个, 分别是:
    1. 充当客户端使用, 可以写Hive SQL
    2. 开启metastore 和 hiveserver2服务.
        nohup hive --service metastore &
        nohup hive --service hiveserver2 &
    3. 可以执行一次Hive SQL语句, 执行结束, 会自动断开会话.
        hive -e 'HQL语句;'
    4. 可以执行Hive SQL脚本.
        Hive SQL脚本解释: 可以是任意后缀名的文件, 文件中的内容必须符合HQL规范, 建议后缀名为 .sql
        hive -f 'HQL脚本'


总结

本文简单介绍了HiveSQL中的DML语句,主要是用来操作表数据的, 对表数据进行 增删改操作.

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值