上节我们讲了如何利用MapReduce 快速的来查询数据:https://cloud.tencent.com/developer/article/1878432
尽管使用MapReduce 快速的来查询数据,但是还是有他不方便的地方,你需要写一堆的MapReduce代码,
执行起来也不是很方便,查询数据也不方便,
有的时候你就是想简单的查询一下数据,没有一个方便的方法,肯定是比较麻烦的,
那有没有一种更方便的方法来查询数据呢?
上面分别介绍了大数据的存储以及计算,但随着实践的进一步深入,工程师又发现用map reduce或者spark的方法,还是需要写大量的工程代码去实现,有的情况可能仅仅是需要做数据的查询或者简单的聚合,最好像执行SQL一样去做这件事情(执行SQL要比执行一大片代码要简单直接很多)。于是Hive就出来了,可以理解为Hive就是在大数据背景下诞生的MySQL,有表的概念,同时也通过一种叫HQL的代码去进行各种增删改查的操作,底层基于HDFS存储,HQL和SQL的语法是几乎一摸一样的。
这里利用Hive去查询数据,可以直接写SQL一样去查询,会比较方便。
Apache Hive™ 数据仓库软件有助于读取,写入和 Management 驻留在分布式存储中并使用 SQL 语法查询的大型数据集。
Hive 构建在 Apache Hadoop™ 之上,提供以下功能:
Hive 提供标准的 SQL 功能,包括后来的SQL:2003,SQL:2011和SQL:2016的许多分析功能。
Hive 的 SQL 也可以通过用户定义的函数(UDF),用户定义的集合(UDAF)和用户定义的表函数(UDTF)扩展为用户代码。
又随着技术实践的深入,大家对Hive的查询性能也不满足了,希望它查的更快性能更好,并发能更高。于是Impala就诞生了。
Impala是用于处理存储在Hadoop集群中的大量数据的MPP(大规模并行处理)sql查询引擎。 它是一个用C ++和Java编写的开源软件。 与其他Hadoop的SQL引擎相比,它提供了高性能和低延迟。
换句话说,Impala是性能最高的SQL引擎(提供类似RDBMS的体验),它提供了访问存储在Hadoop分布式文件系统中的数据的最快方法。
Impala通过使用标准组件(如HDFS,Hbase,Metastore,YARN和Sentry)将传统分析数据库的SQL支持和多用户性能与Apache Hadoop的可扩展性和灵活性相结合。
Impala将相同的元数据,SQL语法(Hive SQL),ODBC驱动程序和用户界面(Hue Beeswax)用作Apache Hive,为面向批量或实时查询提供熟悉且统一的平台。
与Apache Hive不同,Impala不基于MapReduce算法。 它实现了一个基于守护进程的分布式架构,它负责在同一台机器上运行的查询执行的所有方面。
因此,它减少了使用MapReduce的延迟,这使Impala比Apache Hive快。
以下是Cloudera Impala的一些值得注意的优点的列表。
这里具体的细节就不展开了,大家可以查看Impala的中文手册:
http://www.dba.cn/book/impala/
这里尽管腾讯云没有相应云上的系统,为了完整性还是介绍了相关的技术。
接下来会讲 如何做到 高并发的实时计算。实时计算部分,主要是用于分钟级别大数据的处理方法
see you !
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。