hive由facebook开源的

基于hadoop的数据仓库工具

将结构化文件(HDFS)映射为一张数据库的表,并且提供HQL功能,底层数据存储在HDFS上。

Hive本质

将HQL翻译成MR,进行运行,使部署需MR的用户,可以快速进行数据分析。

问题: 不能直接基于HDFS写sql呀
MR数据源—-HDFS (不支持)【map(),reduce()】
Hive数据源—-HDFS (hql)【给hdfs添加了字段说明】

为什么使用Hive?

  1. 数据分析方便
  2. Hive开箱即用【配置比较简单】
  3. 更好的扩展性

    Hive : 自定义函数(java程序自定函数)
    补充:mysql 支持自定义函数
    【python - 加分项】
    java自定义内置函数:局限性 —— 一个函数只能处理一个字段
    大数据工作:会python
    Hive - Python 整合
    Python:对HDFS Block块的所有的字段进行统一处理(处理所有字段)

    高级特性

    存储数据可以压缩,序列化机制(网络传输)

不支持记录级别的删除和修改

[2.x版本支持记录级别随机插入(文件追加),没人用]

不支持事务

离线分析,不能做和用户交互

  • 离线(工作流:Run)

延时时间才能看到结果:离线批处理

  • 实时【*】(实时数仓、实时推荐、实时ETL …)【薪资最高】

    ( 原理 —- 技术使用【整合】 )
    秒级别、分钟级别
    梳理的数据当前的数据(和时间基本是同步的)

    数据仓库特点

    面向主题

数据库数据表一定联系的,具有一定相似性

  • 主题:mysql数据库

    数据集成的

    数据来源:
    MySql数据库:工作人员手动录入
    数据仓库:数据库中的数据 ,网页浏览(用户行为日志),nosql ;数据仓库中的数据源具有广泛性

    相对稳定的

    数据仓库不会删除、更改数据

  • 为什么不去更改数据仓库的数据:不破坏数据的真实性

    反应历史变化的

    数据仓库数据随着时间流逝,对数据进行累计,一般不会进行删除

支持管理决策的

image.png