hadoop生态系统就是为处理大数据集而产生的一个合乎成本效益的解决方案。hadoop的MapReduce可以将计算任务分割成多个处理单元然后分散到家用的或服务器级别的硬件上,降低成本并提供水平伸缩性。
问题是用户如何从一个现有的数据基础架构转移到hadoop上,而这个基础架构是基于传统关系型数据库和SQL的?
hive提供了HiveQL方言来查询存储在hadoop集群中的数据。hive可以将大多数的查询转换为MapReduce作业。 select * from tb_user;
hive最适合于数据仓库,使用数据仓库进行相关的静态数据分析,而不需要快速响应给出结果,而且数据本身不会频繁变化。
hive不是一个完整的数据库。其中最大的限制就是hive不支持记录级别的更新、插入或者删除操作。但是可以将查询生成新表或者将查询结果导入到文件中。
hive查询延时比较严重。
hive不支持事务。
HiveQL并不符合ANSI SQL标准,和Oracle、MySQL、SQL Server支持的常规SQL方言在很多方面存在差异,不过HiveQL和MySQL提供的SQL方言最接近。
Apache Hive™数据仓库软件有助于读取,编写和管理驻留在分布式存储中的大型数据集,并使用SQL语法进行查询。
Hive构建于Apache Hadoop™之上,提供以下功能:
- 通过SQL轻松访问数据的工具,从而实现数据仓库任务,如提取/转换/加载(ETL),报告和数据分析。
- 一种在各种数据格式上强加结构的机制
- 访问直接存储在Apache HDFS™或其他数据存储系统(如Apache HBase™)中的文件 hdfs dfs -ls /
- 通过Apache Tez™,Apache Spark™或MapReduce执行查询
- 使用HPL-SQL的过程语言
- 通过Hive LLAP,Apache YARN和Apache Slider进行亚秒级查询检索。
Hive提供标准的SQL功能,包括具备SQL:2003,SQL:2011和SQL:2016的分析特性。
Hive的SQL也可以通过用户定义的函数(UDF),用户定义的聚合(UDAF)和用户定义的表函数(UDTF)使用用户代码进行扩展。
Hive不适用于联机事务处理(OLTP)工作负载。它最适用于传统的数据仓库任务。
Hive旨在最大限度地提高可伸缩性(通过动态添加到Hadoop集群中的更多计算机扩展),性能,可扩展性,容错性以及与其输入格式的松耦合。
Hive的组件包括HCatalog和WebHCat。
HCatalog是Hadoop的表和存储管理层,它使具有不同数据处理工具(包括Pig和MapReduce)的用户能够更轻松地在网格上读写数据。
WebHCat提供了一种服务,可用于运行Hadoop MapReduce(或YARN),Pig,Hive作业。 您还可以使用HTTP(REST样式)接口执行Hive元数据操作。
数据仓库
数据仓库是信息(对其进行分析可做出更明智的决策)的中央存储库。通常,数据定期从事务系统、关系数据库和其他来源流入数据仓库。业务分析师、数据科学家和决策者通过商业智能 (BI) 工具、SQL 客户端和其他分析应用程序访问数据。
数据和分析已然成为各大企业保持竞争力所不可或缺的部分。他们使用报告、控制面板和分析工具从其数据中获得洞察力、监控企业绩效以及更明智地决策。这些报告、控制面板和分析工具由数据仓库提供支持;数据仓库可以高效地存储数据以便最大限度地减少 I/O,并以极快的速度同时向成千上万的用户提供查询结果。
hive给不会写mapreduce的人使用的,SQL