Hive任务执行很慢,但是导入数据非常的快?

大数据
Hive使用Hadoop来执行查询,其查询执行速度是很慢的,但是使用load data向Hive中导入数据却非常快,这是因为Hive采取的是读时模式(Schema On Read)。

读时模式和写时模式

Hive使用Hadoop来执行查询,其查询执行速度是很慢的,但是使用load data向Hive中导入数据却非常快,这是因为Hive采取的是读时模式(Schema On Read)。

  • 读时模式:读取数据的时候,对数据的类型、格式做检查;
  • 写时模式:写入数据的时候,对数据的类型、格式等规范做检查;

将数据存到Hive的数据表时,Hive采用的是“读时模式”,意思是针对写操作不会做任何校验,只是简单的将文件复制到Hive的表对应的HDFS目录。跟“读时模式”相对应的是“写时模式”,RDBMS一般采用“写时模式”,在将数据写入到数据表的时候会检查每一条记录是否合法,如果检查不通过会直接返回失败信息。

 

[[322621]]

由于向Hive中存入数据的只是简单的文件复制和粘贴,所以导入数据速度非常的快。当读取、查询的时候,才会根据表模式来解释数据,这个时候如果遇到了不符合模式的数据,Hive会直接将数据解析成NULL。

读时模式的好处

Hive采用读时模式带来了以下几个好处:

  • 向Hive表中新增数据非常的快,通常情况下对于外来数据,采用的方法是直接用Hadoop命令将文件上传到一个HDFS目录,Hive直接读这个目录;
  • 一份数据可以被解析成多种模式,存储在Hive表中的数据跟Hive本身没有关系,数据也可以被其他工具比如Pig来处理;

导入数据

  1. hive> load data local inpath '/root/usr.data' into table usr; 

 

Hive任务执行很慢,但是导入数据非常的快?

 

 

责任编辑:未丽燕 来源: 今日头条
相关推荐

2020-08-19 12:40:10

代码项目数字代码

2010-01-10 17:56:36

Firefox 3.7Firefox

2010-01-06 09:38:12

FirefoxFirefox 3.7

2021-08-17 10:34:19

Python数据科学机器学习

2021-10-21 22:03:00

PythonNumpy函数

2018-09-18 14:43:30

HBase查询数据

2021-07-28 07:22:40

SQL顺序Hive

2023-03-07 08:34:01

2019-08-23 11:44:16

5G物联网技术

2021-09-06 07:28:31

大数据 kerberos 认证

2023-12-13 13:03:53

任务调度执行XXLJOB

2010-09-07 14:18:55

Perl

2022-10-18 10:41:44

Flowable服务任务

2020-08-22 07:30:14

微软浏览器Windows

2019-05-27 22:59:39

面试SQL语句数据库

2014-08-05 09:37:07

大数据

2019-08-28 07:45:45

数据存储层多线程

2009-07-16 08:53:03

Swing任务Swing线程

2009-05-14 13:18:50

SQL Server代理任务微软

2023-11-25 09:30:13

Android后台任务
点赞
收藏

51CTO技术栈公众号