`
guoyunsky
  • 浏览: 858981 次
  • 性别: Icon_minigender_1
  • 来自: 上海
博客专栏
3d3a22a0-f00f-3227-8d03-d2bbe672af75
Heritrix源码分析
浏览量:207189
Group-logo
SQL的MapReduce...
浏览量:0
社区版块
存档分类
最新评论

HiveQL(Hive SQL)跟普通SQL最大区别

 
阅读更多

      微博:http://weibo.com/guoyunwb

 

      一直使用PIG,而今也需要兼顾HIVE。网上搜了点资料,感觉挺有用,这里翻译过来。翻译估计不太准确,待自己熟悉HIVE后再慢慢总结。

 

 * No true date/time data types, no interval types, and many missing UDFs for manipulating dates (e.g. ADD_MONTH)

* Strict type matching without support for automatic coercion or typed literals (e.g. CASE <bigint expr> WHEN 1 THEN ... END)

* All queries must reference a table (no 'dual' or table-less queries)

* No session-scoped temp tables

* No 'IN' predicate

* No 'FIND' string search function for producing the offset to a match

* No find/replace string functions for plain strings (i.e. not regex)

* XPATH UDFs cannot return a string representing an entire subtree in the DOM, which prevents composition.

* Few mechanisms for collapsing arrays to scalar types (e.g. 'join' complement of string 'split'; aggregations other than 'size' for numeric arrays; etc.)

粗略的翻译:

1.HiveQL没有真正的日期/时间类型,自增类型,以及操作日期和时间的一些函数如(ADD_MONTH)

2.HiveQL有着非常严格的类型匹配,不支持类型自动转换(如不支持: CASE big_int_number WHEN 1 THEN ... END),我的理解是big int类型不可以自动帮你转换为int

3.HiveQL只能对表进行查询,普通的SQL可以对结果集查询,如一般的嵌套查询)

4.HiveQL没有临时表的概念

5.HiveQL没有IN操作

6.HiveQL对于字符串没有FIND和REPLACE函数

7.HiveQL中的XPATH UDF不能够返回一个代表子DOM树的字符串实体,为了阻止composition.

8.Few mechanisms for collapsing arrays to scalar types (e.g. 'join' complement of string 'split'; aggregations other than 'size' for numeric arrays; etc.)

===========================================================================================================================================================

 

1.No windowing functions.  IE, SUM(sales) OVER (PARTITION BY date).  Its difficult to do a lot things common to warehousing, like a running sum, without having to write custom mappers/reducers or a UDF.

2.No regular UNION, INTERSECT, or MINUS operators.

3.Null values are treated differently than empty string, and are exported differently.  IE, empty strings are exported as '\n' and nulls are exported as nulls.  I know this isn't unique to Hive but still annoying when exporting data from Hive into another system.

4.No hierarchical/self referencing querying.  I know most distributed computing solutions can't do this, but it can be very handy.

5.No Update or Delete statements.

6.Haven't been able to find any kind of cost-based explain plans.  Running explain plans generally just shows the path of accessing data.  Useful to some degree but it would be great if it was more advanced in that it could help the user understand which steps are causing the biggest slowdowns.

=======================================================================================================================================================================

 

1. For row format delimiter for line termination, it only supports '\n'.

2. Hive does not support the ability to run a query that select from tables in more than one database.

3. Hive does not support sub-queries such as those connected by IN/EXISTS in the WHERE clause.

4. Hive does not support the truncation of data from a table.

===========================================================================================================================================================

 

 更多技术文章、感悟、分享、勾搭,请用微信扫描:

分享到:
评论

相关推荐

    Hive SQL 编译过程详解

    它允许用户使用SQL-like语言(HiveQL)对分布式存储的数据进行查询和分析。本文将深入探讨Hive SQL如何被编译成MapReduce任务,以及在这个过程中涉及到的关键原理。 1. MapReduce实现基本SQL操作的原理: - **...

    HIVE-SQL开发规范.docx

    它允许用户通过类似于SQL的查询语言(HiveQL)来操作分布式存储的数据,简化了MapReduce编程模型。本规范旨在指导开发者遵循最佳实践,确保代码的稳定性和效率。 1. 简述 Hive的设计目标是为非专业程序员提供一种...

    hive sql详解 经典

    在大数据处理领域,Hive是一个基于Hadoop的数据仓库工具,它允许用户使用SQL(称为HiveQL)查询存储在Hadoop分布式文件系统(HDFS)中的大型数据集。这篇博客深入探讨了Hive SQL的使用,帮助用户理解和掌握其核心概念...

    部分普通sql查询在hive中的实现方式

    由于Hive的设计初衷是让用户能够使用类SQL的查询语言“HiveQL”来处理数据,它与传统的SQL数据库存在一定的差异。以下是一些常见的SQL查询在Hive中的实现方式: #### 1. 在查询中不能同时出现多条`COUNT(DISTINCT)`...

    HiveSQL详细和优化

    HiveSQL详细和优化,以及部分个人点评 This is a brief tutorial that provides an introduction on how to use Apache Hive HiveQL with Hadoop Distributed File System. This tutorial can be your first step ...

    Hive sql系统学习教程

    Hive提供了类似SQL的查询语言——HiveQL,使得用户能够以熟悉的SQL语法对Hadoop集群上的数据进行操作,而无需深入理解底层的MapReduce机制。 **Hive SQL的主要功能** 1. **建表语句**: 在Hive中创建表格,定义列名...

    Hive-SQLforHadoop

    Hive使得用户能够利用类似SQL的查询语言(称为HiveQL)来读取、写入以及管理存储在Hadoop分布式文件系统(HDFS)中的大规模数据集。通过这种方式,Hive大大降低了开发人员和数据分析师在Hadoop上进行数据处理的门槛...

    二万字讲解HiveSQL技术原理、优化与面试.pdf

    ### HiveSQL技术原理详解 #### 一、HiveSQL技术概览 HiveSQL作为大数据处理框架中的一个重要组成部分,主要用于处理存储在Hadoop文件系统(HDFS)中的大规模数据集。它通过提供一种类似SQL的查询语言(HiveQL),...

    Hortonworks.CheatSheet.SQLtoHive.pdf

    Hive允许用户通过SQL-like语言HiveQL(HQL)查询存储在Hadoop分布式文件系统(HDFS)中的数据。这对于已经熟悉SQL的用户而言,与Hadoop交互变得相对容易。 知识点一:Hadoop基础 Hadoop是一个开源框架,它通过简单...

    Hive学习总结及应用.pdf

    Hive学习总结及应用.pdf ...HiveQL是一种类似SQL的语言,它与大部分的SQL语法兼容,但是并不完全支持SQL标准。HiveQL提供了多种常用操作,包括SELECT、FROM、WHERE、GROUP BY、HAVING、JOIN等。

    hive编程指南中文版

    通过本书,读者可以很快学会如何使用Hive的SQL方言——HiveQL来汇总、查询和分析存储在Hadoop分布式文件系统上的大型数据集。 本书以实际案例为主线,详细介绍如何在用户环境下安装和配置Hive,并对Hadoop和...

    Hive体系架构、安装与HiveQL

    HiveQL是Hive使用的类SQL语言,用来查询和管理大数据。HiveQL语句在执行之前会被Hive编译器转化为一系列的MapReduce任务或其他执行引擎可以理解的任务。HiveQL的基本操作包括: 1. 数据定义语言(DDL):包括创建和...

    设计开发 Hive 编程指南 完整版

    4. **HiveQL (Hive Query Language)**:Hive 提供的 SQL-like 语言,允许用户创建表、加载数据、执行查询和数据分析。HQL 支持 SELECT、FROM、WHERE、GROUP BY、JOIN 等基本操作,同时也支持一些大数据特有的功能,...

    hive编程指南中文

    《Hive编程指南》是一本Apache Hive的编程指南 旨在介绍如何使用Hive的SQL方法 HiveQL来汇总 查询和分析存储在Hadoop分布式文件系统上的大数据集合 全书通过大量的实例 首先介绍如何在用户环境下安装和配置Hive 并对...

    Hive元数据库操作

    下面将对 Hive 元数据库操作的常用 SQL 语句进行逐一解释。 查看表名及其对应的路径 查看表名及其对应的路径可以使用以下 SQL 语句: ```sql drop view v_table_path; create view v_table_path as select c....

    hive-jdbc.zip

    这个过程包括解析SQL语句,将其转换成HiveQL(Hive的SQL方言),然后通过网络发送到Hive服务器执行。执行结果再被转换回JDBC格式,返回给客户端。 使用Hive JDBC,开发人员可以将Hive集成到任何支持JDBC的应用中,...

    Hive_JDBC.zip_hive java_hive jdbc_hive jdbc pom_java hive_maven连

    在大数据处理领域,Apache Hive是一个基于Hadoop的数据仓库工具,它允许用户使用SQL(HQL,Hive Query Language)查询存储在Hadoop集群中的大型数据集。Hive JDBC(Java Database Connectivity)是Hive提供的一种...

    hive

    Hive 是一个基于 Hadoop 的数据仓库工具,它允许用户使用 SQL 类似的查询语言(称为 HiveQL)来处理和分析存储在 Hadoop 分布式文件系统(HDFS)中的大数据集。Hive 提供了一个数据层,使得非编程背景的用户也能方便...

Global site tag (gtag.js) - Google Analytics