hive指南(一)

Hive指南
    概念
        什么是Hive
        Hive是一个基于Hadoop的数据仓库基础架构。Hadoop为在普通的硬件环境上数据的存储和处理提供了巨大的水平扩展能力和容错能力。
        Hive被设计用来更容易进行数据汇总,临时查询和分析巨大的数据。它提供一个简单的查询语言Hive QL,基于SQL使用用户熟悉的SQL做临时查询、统计和数据分析更容易。同时,Hive QL也允许传统的map/reduce程序员能够插入他们自定义的mappers和reducers做更多复杂的分析,这些功能可能HQL内置功能并不支持。
     Hive不是什么
      Hadoop是一个批处理系统,Hadoop的任务基本是高延迟,并且在任务提交和安排上有大的开销。结果--Hive的查询通常延时非常高(分钟级别),既使数据集包含的数据量非常小(只有几百MB)。As a result it cannot be compared with systems such as Oracle where analyses are conducted on a significantly smaller amount of data but the analyses proceed much more iteratively with the response times between iterations being less than a few minutes. Hive aims to provide acceptable (but not optimal) latency for interactive data browsing, queries over small data sets or test queries.
 
    Hive不是被设计作为在线事务处理和不离线实时查询及低级的更新的。它最佳的用处是超大不变数据集进行批处理工作(象web日志)
   下面的章节我们提供系统功能的指南。我们开始讲解数据类型,表和分区的概念,HQL语言功能的一些例子帮助。
          数据单位
    按粒度顺序--Hive数据组织如下:
  •     数据库:分隔表和其它数据单元避免名称冲突的特定名称空间。
  • 表:拥有相同schema均匀的数据单位。一个数据表的例子是page_views表,每行包含下面的列(schema):
              timestamp - 一个INT类型,相当于一个unix的timestamp。
                  userid - 一个BIGINT类型,当一个页被访问时代表用户的标识符。
                    page_url - STRING类型,访问时的位置
                    referer_url - STRING类型
                    IP - STRING类型
  •     分区 :每个表能有一个或多个分区键决定数据如何存储。
  • 存储桶(或集群):一个表相同列的每个分区里的数据可能基于一个hash函数的值被分隔到不同的存储桶里。
    系统类型
        基本类型
  •   类型是与表中的列相关联的,支持下列基本类型:
  • Integers
    • TINYINT - 1字节integer
    • SMALLINT - 2字节integer
    • INT - 4字节integer
    • BIGINT - 8字节integer
  • Boolean类型
    • BOOLEAN - TRUE/FLASE
  • Floating
    • FLOAT -  单精度
    • DOUBLE -  双精度
  • STRING类型
    • STRING - 指定字符集的字符序列
     复合类型
      复合类型能使用基本类型构建和其它组合类型:
  •      结构:类型元素能使用.访问。例如,一个列c的类型是结构{a INT; b INT}访问a字段的表达式为c.a
  • 映射(key-value元组):元素使用['元素名']符号访问。
  • 数组(可索引的列表):在数据里的元素有相同的类型,每个元素可以使用[n]符合访问。
   

猜你喜欢

转载自blueheart2008.iteye.com/blog/1869849