使用Hive来查询Hbase存储的oracle数据库存储过程有什么缺点

hbase和hive的差别是什么,各自适用在什么场景中_百度知道
hbase和hive的差别是什么,各自适用在什么场景中
我有更好的答案
Hive本身不存储数据,而Hadoop系统是批处理系统;而Hive表是稠密型,即定义多少列,因此不能保证处理的低迟延问题;而HBase是近实时系统。3.
Hive是基于MapReduce来处理数据,适合海量数据的随机访问;HBase处理数据是基于列的而不是基于行的模式,它完全依赖HDFS和MapReduce、分析。而HBase不适用与有join,多级索引。2。这样就可以将结构化的数据文件映射为为一张数据库表,并提供完整的SQL查询功能,并将SQL语句最终转换为MapReduce任务进行运行。 而HBase表是物理表,适合存放非结构化的数据,就只是表的定义等,即表的元数据1.
Hive中的表是纯逻辑表,每一行有存储固定列数的数据,支持实时查询。5.
Hive不提供row-level的更新,它适用于大量append-only数据集(如日志)的批任务处理。而基于HBase的查询,支持和row-level的更新。6.
Hive提供完整的SQL实现。4,而MapReduce处理数据是基于行的模式.
Hive使用Hadoop来分析处理数据,通常被用来做一些基于历史数据的挖掘.
HBase的表是疏松的存储的,因此用户可以给行定义各种不同的列
p>hbase和hive的差别对比:1、hbase当前noSql数据库的一种、使用场景:&nbsp,其底层是hdfs分布式文件系统,hive是hdfs分布式文件系统的一种,二者对数据的存储方式是不同的。2,由于是key-value型数据库,可以再扩展到各种key-value应用场景,如日志信息的存储;hbase最常见的应用场景就是采集的网页数据的存储,聚合类SQL语句。hive一般只用于查询分析统计,而不能是常见的CUD操作,重点是基于一个统一的查询分析层,对于内容信息不需要完全结构化出来的类CMS应用等。注意hbase针对的仍然是OLTP应用为主。hive主要针对的是OLAP应用,支撑OLAP应用中的各种关联,分组,要知道HIVE是需要从已有的数据库或日志进行同步最终入到hdfs文件系统中
为您推荐:
其他类似问题
hbase的相关知识
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。博客分类:
接上一篇,对hbase参数进行优化,主要是调整与查询效率相关的参数
count
select count(1) from hbase_
部分字段切表
insert overwrite table hive_table select a,b,c,d from hbase_
全字段切表
insert into table test_table partition(part='aa') select * from hbase_
hive至hive切表
create table test_table2 like test_
insert into table test_table2 partition(part) select * from test_
优化修改参数
&property&
&name&hbase.regionserver.handler.count&/name&
&value&100&/value&
&description&Count of RPC Listener instances spun up on RegionServers.
Same property is used by the Master for count of master handlers.
Default is 10.
&/description&
&/property&
&property&
&name&hfile.block.cache.size&/name&
&value&0.4&/value&
&description&
Percentage of maximum heap (-Xmx setting) to allocate to block cache
used by HFile/StoreFile. Default of 0.25 means allocate 25%.
Set to 0 to disable but it's not recommended.
&/description&
&/property&
&property&
&name&hbase.client.scanner.caching&/name&
&value&1000&/value&
&description&Number of rows that will be fetched when calling next
on a scanner if it is not served from (local, client) memory. Higher
caching values will enable faster scanners but will eat up more memory
and some calls of next may take longer and longer times when the cache is empty.
Do not set this value such that the time between invocations is greater
than i.e. hbase.regionserver.lease.period
&/description&
&/property&
切表
优化前后 字段全量与否 case 数据量 cpu cost(minutes,seconds) 执行cost(seconds)前 部分 hbase-&hive 1616374 10 , 18 359.162后 部分 hbase-&hive 1616374
3 , 24 281.975后 部分 hbase-&hive 1616374
2 , 38232.391后 部分 hbase-&hive 2608626
4 , 39 263.206后 全量 hbase-&hive 2608626
7 , 53 820.914后 部分 hbase-&hive
13 , 22 765.262后 全量 hbase-&hive
22 , 59 后 全量 hive-&hive
10 , 41 580.522
count
优化前后 表类型 数据量 cpu cost(minutes,seconds) 执行cost(seconds)优化前 hbase 1616374 10 , 45 728.647
hive 1616374
0 , 25 64.815优化后 hbase 1616374 4 , 9 609.28优化后 hbase
13 , 10 907.44
3 , 18 422.138
总结
hive&hbase表的统计计算性能远低于hive表的统计计算,相差3倍乃至以上。
hbase参数优化前后有查询统计效率成倍提升,但与hive表相比也存在差距。
hive&hbase表切成hive表部分字段由于全量字段。
...
综上,hive的hbase存储结构不善于统计计算;hive表的hbase存储结构切换成hive普通的存储结构,随着数据量增加,性能也令人堪忧(如上测试也可以看到,即使是hive与hive表的切表数据量大也是很耗时的)。hbase方案具体是选择居于hive&hbase表统计计算,还是选择hive&hbase表切换成hive表后统计计算,需要权衡,或者是否有其他更好hive与hbase关联方案,需要继续研究。
分析:随着数据量越来越大,每天都进行hbase—&hive的切表,这是不切合实际的选择,但终究我们需要将hbase表转化成hive表,或许我们可以选择数据“冷热”、以及部分字段切表来优化。
备注:测试还不全面,待完善,特别是hive&hbase复杂sql的统计计算。
浏览: 211877 次
来自: 上海
不开启时可以的,而且开启以后各种坑。。。。
博主请教一个问题,hue 控制hive表的权限怎么弄? 怎么联 ...
楼主你好,我用CM配置LDAP用户组映射,进入impala时, ...
版主:按你的步骤配置了,可是,执行 impala-shell
super_a 写道你好!找不到表这个问题是如何解决的,可以描 ...
(window.slotbydup=window.slotbydup || []).push({
id: '4773203',
container: s,
size: '200,200',
display: 'inlay-fix'他的最新文章
他的热门文章
您举报文章:
举报原因:
原文地址:
原因补充:
(最多只允许输入30个字)区分 hdfs hbase hive hbase适用场景 - 李玉龙 - 博客园
随笔 - 164, 文章 - 119, 评论 - 8, 引用 - 0
摘要: hdfs hbase hive hbase适用场景
不想用程序语言开发MapReduce的朋友比如DB们,熟悉SQL的朋友可以使用Hive开离线的进行数据处理与分析工作。
注意Hive现在适合在离线下进行数据的操作,就是说不适合在挂在真实的生产环境中进行实时的在线查询或操作,因为一个字&慢&。相反
起源于FaceBook,Hive在Hadoop中扮演数据仓库的角色。建立在Hadoop集群的最顶层,对存储在Hadoop群上的数据提供类SQL的接口进行操作。你可以用 HiveQL进行select,join,等等操作。
如果你有数据仓库的需求并且你擅长写SQL并且不想写MapReduce jobs就可以用Hive代替。
HBase作为面向列的数据库运行在HDFS之上,HDFS缺乏随即读写操作,HBase正是为此而出现。HBase以Google BigTable为蓝本,以键值对的形式存储。项目的目标就是快速在主机内数十亿行数据中定位所需的数据并访问它。
HBase是一个数据库,一个NoSql的数据库,像其他数据库一样提供随即读写功能,Hadoop不能满足实时需要,HBase正可以满足。如果你需要实时访问一些数据,就把它存入HBase。
你可以用Hadoop作为静态数据仓库,HBase作为数据存储,放那些进行一些操作会改变的数据。
&hbase与hive都是架构在hadoop之上的。都是用hadoop作为底层存储。而hbase是作为分布式数据库,而hive是作为分布式数据仓库。当然hive还是借用hadoop的MapReduce来完成一些hive中的命令的执行。
什么场景下应用Hbase?
成熟的数据分析主题,查询模式已经确立,并且不会轻易改变。
传统的关系型数据库已经无法承受负荷,高速插入,大量读取。
适合海量的,但同时也是简单的操作(例如:key-value)。
官方解释:
Use Apache HBase& when you need random, realtime read/write access to your Big Data. This project's goal is the hosting of very large tables -- billions of rows X millions of columns -- atop clusters of commodity hardware. Apache HBase is an open-source, distributed, versioned, non-relational database modeled after Google's&&by Chang et al. Just as Bigtable leverages the distributed data storage provided by the Google File System, Apache HBase provides Bigtable-like capabilities on top of Hadoop and HDFS.
Pig VS Hive
Hive更适合于数据仓库的任务,Hive主要用于静态的结构以及需要经常分析的工作。Hive与SQL相似促使 其成为Hadoop与其他BI工具结合的理想交集。
Pig赋予开发人员在大数据集领域更多的灵活性,并允许开发简洁的脚本用于转换数据流以便嵌入到较大的 应用程序。
Pig相比Hive相对轻量,它主要的优势是相比于直接使用Hadoop Java APIs可大幅削减代码量。正因为如此,Pig仍然是吸引大量的软件开发人员。
Hive和Pig都可以与HBase组合使用,Hive和Pig还为HBase提供了高层语言支持,使得在HBase上进行数据统计处理变的非常简单
Hive VS HBase
Hive是建立在Hadoop之上为了减少MapReduce jobs编写工作的批处理系统,HBase是为了支持弥补Hadoop对实时操作的缺陷的项目 。
想象你在操作RMDB数据库,如果是全表扫描,就用Hive+Hadoop,如果是索引访问,就用HBase+Hadoop 。
Hive query就是MapReduce jobs可以从5分钟到数小时不止,HBase是非常高效的,肯定比Hive高效的多1. 两者分别是什么?&&
&Apache Hive是一个构建在Hadoop基础设施之上的数据仓库。通过Hive可以使用HQL语言查询存放在HDFS上的数据。HQL是一种类SQL语言,这种语言最终被转化为Map/Reduce. 虽然Hive提供了SQL查询功能,但是Hive不能够进行交互查询--因为它只能够在Haoop上批量的执行Hadoop。 &&& Apache HBase是一种Key/Value系统,它运行在HDFS之上。和Hive不一样,Hbase的能够在它的数据库上实时运行,而不是运行MapReduce任务。Hive被分区为表格,表格又被进一步分割为列簇。列簇必须使用schema定义,列簇将某一类型列集合起来(列不要求schema定义)。例如,“message”列簇可能包含:“to”, ”from” “date”, “subject”, 和”body”. 每一个 key/value对在Hbase中被定义为一个cell,每一个key由row-key,列簇、列和时间戳。在Hbase中,行是key/value映射的集合,这个映射通过row-key来唯一标识。Hbase利用Hadoop的基础设施,可以利用通用的设备进行水平的扩展。 2. 两者的特点 & Hive帮助熟悉SQL的人运行MapReduce任务。因为它是JDBC兼容的,同时,它也能够和现存的SQL工具整合在一起。运行Hive查询会花费很长时间,因为它会默认遍历表中所有的数据。虽然有这样的缺点,一次遍历的数据量可以通过Hive的分区机制来控制。分区允许在数据集上运行过滤查询,这些数据集存储在不同的文件夹内,查询的时候只遍历指定文件夹(分区)中的数据。这种机制可以用来,例如,只处理在某一个时间范围内的文件,只要这些文件名中包括了时间格式。 &&& HBase通过存储key/value来工作。它支持四种主要的操作:增加或者更新行,查看一个范围内的cell,获取指定的行,删除指定的行、列或者是列的版本。版本信息用来获取历史数据(每一行的历史数据可以被删除,然后通过Hbase compactions就可以释放出空间)。虽然HBase包括表格,但是schema仅仅被表格和列簇所要求,列不需要schema。Hbase的表格包括增加/计数功能。 3. 限制 & Hive目前不支持更新操作。另外,由于hive在hadoop上运行批量操作,它需要花费很长的时间,通常是几分钟到几个小时才可以获取到查询的结果。Hive必须提供预先定义好的schema将文件和目录映射到列,并且Hive与ACID不兼容。 &&& HBase查询是通过特定的语言来编写的,这种语言需要重新学习。类SQL的功能可以通过Apache Phonenix实现,但这是以必须提供schema为代价的。另外,Hbase也并不是兼容所有的ACID特性,虽然它支持某些特性。最后但不是最重要的--为了运行Hbase,Zookeeper是必须的,zookeeper是一个用来进行分布式协调的服务,这些服务包括配置服务,维护元信息和命名空间服务。 4. 应用场景 &&& Hive适合用来对一段时间内的数据进行分析查询,例如,用来计算趋势或者网站的日志。Hive不应该用来进行实时的查询。因为它需要很长时间才可以返回结果。 &&& Hbase非常适合用来进行大数据的实时查询。Facebook用Hbase进行消息和实时的分析。它也可以用来统计Facebook的连接数。 5. 总结 &&& Hive和Hbase是两种基于Hadoop的不同技术--Hive是一种类SQL的引擎,并且运行MapReduce任务,Hbase是一种在Hadoop之上的NoSQL 的Key/vale数据库。当然,这两种工具是可以同时使用的。就像用Google来搜索,用FaceBook进行社交一样,Hive可以用来进行统计查询,HBase可以用来进行实时查询,数据也可以从Hive写到Hbase,设置再从Hbase写回Hive。 &&& 为了加深理解而进行了汉化工作,耗时40分钟,该睡觉了~~:)
& & & & & & & & & & & & & & & & & & & &
阅读(...) 评论()

我要回帖

更多关于 oracle数据库存储过程 的文章

 

随机推荐