返回顶部
首页 > 资讯 > 精选 >HIVE外部表为什么比内部表要慢
  • 562
分享到

HIVE外部表为什么比内部表要慢

2023-06-03 03:06:29 562人浏览 安东尼
摘要

这篇文章主要为大家展示了“Hive外部表为什么比内部表要慢”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“HIVE外部表为什么比内部表要慢”这篇文章吧。 以HBase为例,如果把HIVE

这篇文章主要为大家展示了“Hive外部表为什么比内部表要慢”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“HIVE外部表为什么比内部表要慢”这篇文章吧。

 以HBase为例,如果把HIVE作为一个HBASE客户端的查询工具,语句转义之后发到HBASE,HBASE返回数据,按理不至于慢很多,毕竟只多做了一层sql到HBASE的语句的转义。 既然事实却是慢,那么我们就可以认为HIVE外部表不能这么理解,应该还有其他的东西在阻碍HIVE外部表的性能,毕竟HIVE是走mapReduce

hbase(main):003:0> count 't_device_fault_statistics'
557 row(s) in 0.2890 seconds

=> 557

这里用一个只有557条数据的HBASE表来测试,看看HIVE外部表到底和HBASE本身的客户端有哪些区别。 准别工作如下:

1. 打开HBASE UI,  Http://hostname:60010/table.jsp?name=t_device_fault_statistics   这里有一个指标是requests(起初,我觉得这个是请求次数,测试之后我认为这是查询请求最后获得的行数, 因为你随便查询一个不存在的数字,你会发现这个数字是不会增长的,但是如果你查询输出10条数据,这个数字就会增长10)

2. 写一个JAVA程序,或者通过HBASE客户端也行

3. 建立HBASE的HIVE外部表

完成以上工作就开始测试,整个猜想是, 比较通过HIVE外部表访问之后requests增长和通过Hbase本身的api或者客户端访问的requests增长的区别。

当前requests: 74555

以下是程序访问,通过匹配ROWKEY的前缀,看看requests增长:

      val scan = new Scan()
      scan.setCaching(100)
      scan.setRowPrefixFilter(Bytes.toBytes("i517T5100"))

访问之后的requests为:74559 ,  增长了4, 返回结果也为4, 那么我可以这么理解,通过i517T5100这个ROWKEY前缀访问,获取4条记录,requests也增长了4

以上程序我可以改写为SQL: select count(*) from t_device_fault_statistics where id like 'i517T5100%' 

访问之后,返回结果为4, 我们来看看requests问为多少:75216,  75216-74559=657 ( 我测试很多次,表的实际行是557,但是每次这里增长657,我不确定为什么不是557,而是657)

这里暂时不管为什么不是557,而是实际的657, 总之可以看到,通过访问ROWKEY前缀,HBASE客户端只有4个requests增长,但是HIVE外部表有657。 能否这么理解,HIVE通过SQL查询是把
数据全部查询出来,然后通过HIVE本身来过滤,而HBASE查询是在服务器上过滤的,所以HIVE查询之后requests增长为表的行数. 


经过测试,除了SQL条件采用 等于 rowkey的方式,requests增长会和Hbase客户端一样,其他的一定是全表扫描。 

从上面的测试,HIVE外部表除了使用等于ROWKEY方式不慢,其他的查询应该是从HBASE加载全部数据,然后通过HIVE本身来过滤。奇怪的是等于ROWKEY方式为什么HIVE就可以通过HBASE过滤,而不是依靠HIVE自己本身呢?  说明等于ROWKEY的方式,HIVE可以直接转义成HBASE执行语句,定位一条数据,而其他方式HIVE无能为力,只能全表。

以上是“HIVE外部表为什么比内部表要慢”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注编程网精选频道!

--结束END--

本文标题: HIVE外部表为什么比内部表要慢

本文链接: https://lsjlt.com/news/232392.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • HIVE外部表为什么比内部表要慢
    这篇文章主要为大家展示了“HIVE外部表为什么比内部表要慢”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“HIVE外部表为什么比内部表要慢”这篇文章吧。 以HBASE为例,如果把HIVE...
    99+
    2023-06-03
  • Hive内部表和外部表有什么区别
    这篇文章主要讲解了“Hive内部表和外部表有什么区别”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Hive内部表和外部表有什么区别”吧!内部表数据由Hive...
    99+
    2024-04-02
  • hive内部表和外部表的区别详解
    Hive内部表:默认创建的表是内部表。hive完全管理表(元数据和数据)的声明周期,类似于RDBMS的表。当删除表时,他会删除源数据以及表的元数据。 Hive外部表:外部表的数据不是Hive拥有或者管理的,只管理元数据的...
    99+
    2023-04-26
    hive内部表和外部表区别 hive内部表 hive外部表
  • hive的内部表和外部表有哪些区别
    小编给大家分享一下hive的内部表和外部表有哪些区别,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!1 内部表    1.1 创建表默...
    99+
    2023-06-02
  • Hive-内部表&外部表&分区表&扩展命令
    先看下如何创建数据表 create [external] table if not exists 表名 (列名数据类型 [comment 本列注释],...) [comment 表注释] [partitioned by (列名数据...
    99+
    2017-05-20
    Hive-内部表&外部表&分区表&扩展命令
  • hive如何创建外部分区表
    这篇文章主要为大家展示了“hive如何创建外部分区表”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“hive如何创建外部分区表”这篇文章吧。drop table ...
    99+
    2024-04-02
  • gphdfs外部表和hive怎么结合使用
    这篇文章主要介绍了gphdfs外部表和hive怎么结合使用,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。一、在所有节点上安装java1.6或以上版本二、在segment上安装...
    99+
    2023-06-03
  • 什么是Oracle外部表
    本篇内容介绍了“什么是Oracle外部表”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!概要Oracle外部...
    99+
    2024-04-02
  • 如何使用Hive外部表导入HBase
    这篇文章将为大家详细讲解有关如何使用Hive外部表导入HBase,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。Hive 外部表创建hbase表(1) 建立一个表格clas...
    99+
    2024-04-02
  • 如何在Hive中加载外部表格
    在Hive中加载外部表格,你需要执行以下步骤: 创建外部表格:首先,你需要使用CREATE EXTERNAL TABLE语句在Hi...
    99+
    2024-04-02
  • java内部类,为什么需要内部类?
    为什么需要内部类? 解决了多继承的问题,继承具体或抽象类。 一般来说,内部类继承自某个类或实现某个接口,内部类的代码操作创建它的外围类的对象。所以可以认为内部类提供了某种进入其外围类的窗口。 内部...
    99+
    2024-04-02
  • PostgreSQL使用MySQL作为外部表(mysql_fdw)
    目录下载安装使用示例配置参数PostgreSQL 提供了一种访问和操作外部数据源的机制,称为外部数据包装器(Foreign Data Wrapper)。利用这种外部数据管理机制,我们可以在 PostgreSQL 中访问各...
    99+
    2024-04-02
  • Java中为什么需要内部类
    这篇文章给大家分享的是有关Java中为什么需要内部类的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。内部类:定义在类的内部的类为什么需要内部类?典型的情况是,内部类继承自某个类或实现某个接口,内部类的代码操作创建其...
    99+
    2023-06-17
  • DM7外部表怎么指定
    本篇内容主要讲解“DM7外部表怎么指定”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“DM7外部表怎么指定”吧!DM7 外部表需指定如下信息:1. 表名、表所属的...
    99+
    2024-04-02
  • HTML外部样式表什么时候使用
    这篇“HTML外部样式表什么时候使用”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“HTML...
    99+
    2024-04-02
  • 外部css样式表的作用是什么
    本篇内容主要讲解“外部css样式表的作用是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“外部css样式表的作用是什么”吧! 外部...
    99+
    2024-04-02
  • oracle中怎么创建外部表
    本篇文章为大家展示了oracle中怎么创建外部表,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。oracle db允许以只读的形式查询外部表。外部表可以存储在任何or...
    99+
    2024-04-02
  • css外部样式表怎么写
    这篇文章主要介绍“css外部样式表怎么写”,在日常操作中,相信很多人在css外部样式表怎么写问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”css外部样式表怎么写”的疑惑有所帮...
    99+
    2024-04-02
  • 什么时候使用HTML内部样式表
    这篇文章主要介绍“什么时候使用HTML内部样式表”,在日常操作中,相信很多人在什么时候使用HTML内部样式表问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”什么时候使用HTML...
    99+
    2024-04-02
  • 正则表达式内部机理是什么
    这篇文章主要介绍正则表达式内部机理是什么,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!9. 单词边界 元字符<<\b>>也是一种对位置进行匹配的“锚”。这种匹配是0长度匹配。有4种位置被认为是...
    99+
    2023-06-17
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作