1. 实例说明Hive数据模型

Hive数据模型:
  • Tables
    所有数据存储在HDFS中的一个目录
    Primitives: numeric, boolean, string and timestamps
    Complex: Arrays, maps and structs
  • Partitions
    表可以按照某个字段的值划分分区
    对表格进行分区处理(Partition),便于局部数据的查询操作,如按时间分区、按地域分区等,将具有相同性质的数据存储到同一磁盘块上,从而加快查询效率。
  • Buckets
    分区数据可以进一步分成桶,进一步提升查询效率,且使数据抽样更有效。
实例说明

可以将一个城市中所有的百货大楼看做数据库,每个不同的百货大楼构成不同的表(Tables),大楼内部不同的楼层通常出售的商品也不同,可以分成比如美食区,服装区等等,不同的分区对应着Hive数据模型的Partitions,不同的分区中又出售不同的品牌,比如服装区可分为Adidas,Nike等,不同的品牌则对应Hive数据模型中的Buckets。

hive 中 not like 和 not in 效率 hive nosql_hive

2. NoSQL数据库类型与特点

类型

  • 键值数据库
    以key-value的形式存储,键作为唯一的标识符,值可以是任意类型的数据
  • 列族数据库
    数据按列存储,同一列族的数据存在一起便于压缩,每行数据通过行键定位
  • 文档数据库
    文档是数据库处理信息的一个最基本的单位,支持全文检索
  • 图形数据库
    以图作为数据模型存储数据,有丰富的关系表示

特点

  • 灵活的数据模型,能处理非结构化/半结构化的大数据
  • 很好的容灾能力,数据能够被划分和备份(无单点故障问题,故障节点很容易被替换)
  • 优良的可扩展性,容易通过添加新节点来简单的扩展
  • 低廉的成本,大多数是开源且容易实现
  • 读写性能高,支持高并发的写操作性能和快数据访问

3. MapReduce计算架构与计算过程

计算架构

  • 输入 ( Input )
  • 拆分 ( Split )
  • 迭代 ( iteration )
  • 映射 ( Map )
  • 洗牌 ( Shuffer )
  • 归并( Reduce )
  • 迭代

计算过程

计算过程可描述如图

hive 中 not like 和 not in 效率 hive nosql_大数据_02