Hive与传统数据库的区别

1.传统数据库对表数据的验证是 schema on write(写时模式),而Hive在load时是不检查数据是否符合schema的,Hive遵循的是schema on read(读时模式),只有在读的时候hive才检查、解析具体的数据字段、schema。读时模式的优势是load data非常迅速,因为它不需要读取数据进行解析,仅仅进行文件的复制或者移动。写时模式的优势是提升了查询性能,因为预先解析之后可以对列建立索引,并压缩,但这样也会花费更多的加载时间。即使为内部表在数据加载时也不解析数据格式,如果数据和模式不匹配,只能在查询时出现null才知道有不匹配的行。

  2.hive具有复杂数据结构(数组、映射、结构体)。

  3.hive不支持实时数据处理,对索引的支持较弱。

  4.hive不支持行级的插入。

  5.延迟高,数据量大,多存储在hdfs上。
 
  6.执行为mapreduce。
 
  7.1.0之前hive不支持行级操作也不支持事务。

转载于:https://my.oschina.net/u/4085644/blog/3020173

Hive是一个建立在Hadoop上的数据仓库工具,它可以用来进行数据摘要、查询和分析。它提供了一种类SQL语言——HiveQL,通过这个语言可以将SQL语句转换成MapReduce任务来运行。Hive适用于处理大规模数据集,并且可以很好地与Hadoop生态系统中的其他工具配合使用。与传统的关系型数据库(如MySQL、Oracle等)相比,Hive有一些显著的区别: 1. 数据存储:传统数据库通常使用结构化的数据存储格式(如行和列的表格形式),支持事务和行级锁等复杂操作,而Hive主要存储在HDFS上,采用列式存储和分桶等技术,适合存储大量静态数据。 2. 查询语言:传统数据库使用标准SQL或特定数据库支持的SQL方言进行数据操作,Hive则提供了一个兼容SQL的查询语言HiveQL,但它在执行效率和一些SQL功能上可能有限制。 3. 性能优化:传统数据库对查询进行即时优化并执行,Hive则通过转换查询为MapReduce作业来延迟执行,这可能会导致在小数据集上性能不如传统数据库。 4. 数据处理能力:传统数据库适合进行OLTP(在线事务处理),强调快速、实时的事务处理,Hive则更适合OLAP(在线分析处理),擅长处理批量数据查询和分析。 5. 可伸缩性:传统数据库一般有固定的存储和计算能力,扩展性有限,而Hive可以与Hadoop集群的规模一起扩展,支持数据量的线性增长。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值