【大数据】Hive 中的批量数据导入

这篇具有很好参考价值的文章主要介绍了【大数据】Hive 中的批量数据导入。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Hive 中的批量数据导入

在博客【大数据】Hive 表中插入多条数据 中,我简单介绍了几种向 Hive 表中插入数据的方法。然而更多的时候,我们并不是一条数据一条数据的插入,而是以批量导入的方式。在本文中,我将较为全面地介绍几种向 Hive 中批量导入数据的方法。

1.从本地文件系统加载(load)数据

load data [local] inpath '路径' [overwrite] into table 表名 [partition (分区字段=,)];
  • overwrite:表示覆盖表中已有数据,否则表示追加。
  • 此种加载方式是数据的复制。

(1)创建一张表。

hive (default)> create table student(id string, name string) 
                row format delimited fields terminated by '\t';

(2)加载本地文件到 Hive。

hive (default)> load data local inpath '/opt/module/datas/student.txt' 
                into table default.student;

2.从 HDFS 文件系统加载(load)数据

从 HDFS 文件系统向表中加载数据,其实就是一个移动文件的操作,需要提前将数据上传到 HDFS 文件系统。

(1)上传文件到 HDFS(Linux 本地 /opt/module/datas/student.txt 文件传到 /user/victor/hive 目录)。

hive (default)> dfs -put /opt/module/datas/student.txt /user/victor/hive;

(2)从 HDFS 文件系统向表中加载数据。

hive (default)> load data inpath '/user/victor/hive/student.txt' 
                into table default.student;

3.通过 as select 向表中插入数据

hive (default)> create table if not exists student3 as select id, name from student;

4.通过 insert into 向表中插入数据

insert into table test [partition(partcol1=val1, partcol2=val2 ...)] select id,name from student;
  • insert into:以追加数据的方式插入到表或分区,原有数据不会删除。
insert overwrite table test [partition(partcol1=val1, partcol2=val2 ...)] select id,name from student;
  • insert overwrite:覆盖表中已存在的数据。

(1)创建一张分区表。

hive (default)> create table student(id string, name string) 
				partitioned by (month string) 
				row format delimited fields terminated by '\t';

(2)基本插入数据。

hive (default)> insert into table student partition(month='201801') 
				values('1004','wangwu');

(3)基本模式插入(根据单张表查询结果)。

hive (default)> insert overwrite table student partition(month='201802') 
				select id, name from student where month='201801';

(4)多插入模式(只需要扫描一遍源表就可以生成多个不相交的输出)。

hive (default)> from student
             	insert overwrite table student partition(month='201803')
             	select id, name where month='201801'
             	insert overwrite table student partition(month='201804')
             	select id, name where month='201801';

5.通过 location 的方式

直接将数据文件上传到 location 指定的 HDFS 的目录下;

(1)创建表,并指定在 HDFS 上的位置。

hive (default)> create external table student(id int, name string)
             	row format delimited fields terminated by '\t'
             	location '/user/hive/warehouse/student';

(2)上传数据到 HDFS 上。

hive (default)> dfs -mkdir -p /user/hive/warehouse/student;
hive (default)> dfs -put /opt/module/datas/student.txt /user/hive/warehouse/student;

(3)查询数据。文章来源地址https://www.toymoban.com/news/detail-667555.html

select * from student;

到了这里,关于【大数据】Hive 中的批量数据导入的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 大数据:hive数据库的操作语法,数据表,内部表,external外部表,数据导入导出load,insert

    2022找工作是学历、能力和运气的超强结合体,遇到寒冬,大厂不招人,可能很多算法学生都得去找开发,测开 测开的话,你就得学数据库,sql,oracle,尤其sql要学,当然,像很多金融企业、安全机构啥的,他们必须要用oracle数据库 这oracle比sql安全,强大多了,所以你需要学

    2024年02月08日
    浏览(69)
  • 处理大数据的基础架构,OLTP和OLAP的区别,数据库与Hadoop、Spark、Hive和Flink大数据技术

    2022找工作是学历、能力和运气的超强结合体,遇到寒冬,大厂不招人,可能很多算法学生都得去找开发,测开 测开的话,你就得学数据库,sql,oracle,尤其sql要学,当然,像很多金融企业、安全机构啥的,他们必须要用oracle数据库 这oracle比sql安全,强大多了,所以你需要学

    2024年02月08日
    浏览(54)
  • hive使用文件方式批量导入数据

    1. 创建表,确定分隔符,换行符: 2. 编写数据文件: 3. 查看此表所在路径:describe extended 表名; 4. 将本地生成好的数据上传至服务器 5. 将生成的txt文件put进HDFS集群 /hive/warehouse/mdp_uat.db/test : 集群路径,第三部查询到的表路径(提前使用 hadoop fs -ls 查看下路径,确认路径正确

    2024年02月13日
    浏览(35)
  • Hive数据库系列--Hive文件格式/Hive存储格式/Hive压缩格式

    本篇主要讲解一下Hive的文件格式,官方文档见《 https://cwiki.apache.org/confluence/display/Hive/FileFormats》、《 https://cwiki.apache.org/confluence/display/Hive/LanguageManual+DDL#LanguageManualDDL-StorageFormatsStorageFormatsRowFormat,StorageFormat,andSerDe》 HIve的文件存储格式常见的有四种:textfile 、sequencefile、or

    2024年01月22日
    浏览(38)
  • 【数据库学习】hive

    Hadoop 的数据仓库处理工具,数据存储在Hadoop 兼容的文件系统(例如,Amazon S3、HDFS)中。hive 在加载数据过程中不会对数据进行任何的修改,只是将数据移动到HDFS 中hive 设定的目录下。 hive 的最佳使用场合是大数据集的批处理作业,例如,网络日志分析。 只允许查,不允许修

    2024年01月15日
    浏览(45)
  • sqoop把hive中的数据导入mysql

    记录简单案例 首先开启集群: 在hive中建库建表,并插入一条数据来为自己做实验: 验证一下,是否插入成功: 在mysql中建表,并且要与hive中传过来的数据字段相对应: 建表后为空: 用sqoop将hive中的数据传到mysql中: export 导出数据, –connect 连接数据库的参数, –userna

    2024年02月07日
    浏览(75)
  • hive数据库操作,hive函数,FineBI可视化操作

    1.1、创建数据库 1.2、查看数据库详细信息 数据库本质上就是在HDFS之上的文件夹。 默认数据库的存放路径是HDFS的:/user/hive/warehouse内 1.3、创建数据库并指定hdfs存储位置 使用location,可以指定数据库在HDFS的存储路径。 1.4、删除数据库 删除一个空数据库,如果数据库下

    2024年02月04日
    浏览(38)
  • 【大数据笔记】java jdbc连接hive数据库;java hive连接kerberos

    1、pom.xml配置         dependency             groupIdorg.apache.hive/groupId             artifactIdhive-jdbc/artifactId             scope2.1.1/scope         /dependency 2、驱动 org.apache.hive.jdbc.HiveDriver 3、用传统改的Class.forName,然后DriverManager去拿。 二、java hive连接kerberos

    2024年01月19日
    浏览(38)
  • Hive 表 DML 操作 第1关:将文件中的数据导入(Load)到 Hive 表中

    相关知识 之前系列实训中我们接触过导入本地文件到 Hive 表中,本关就进行导入的详细讲解。 为了完成本关任务,你需要掌握:1.导入命令语法,2.如何将本地 txt 文件导入到分区表中。 导入命令语法 Load 操作执行 copy/move 命令把数据文件 copy/move 到 Hive 表位于 HDFS 上的目录位

    2024年02月01日
    浏览(40)
  • [Hive的基本概念之---数据库 ]

    目录 前言:  Hive的一些基本概念: 数据库(Database) 服务器创建hive数据库指令: Spring Boot中集成Hive数据库 在application.properties或application.yml文件中配置Hive JDBC连接属性,例如: 在application.properties或application.yml文件中配置MyBatis属性,例如: 创建Mapper接口和映射文件,例如:

    2024年02月13日
    浏览(41)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包