...小于 1 分钟
- Java197
 - 编程8
 - 设计78
 - DevOps8
 - 数据结构和算法16
 - 数据库101
 - 网络19
 - 分布式74
 - 大数据33
 - 软件工程3
 - 工作8
 - 笔记30
 - JavaSE61
 - JavaEE15
 - 软件20
 - 工具37
 - 框架68
 - 中间件9
 - 编程范式4
 - 编程语言3
 - Python6
 - 架构31
 - 设计模式27
 - 重构7
 - DDD2
 - UML4
 - 综合22
 - 监控2
 - 线性表4
 - 树6
 - 数据库综合3
 - 数据库中间件4
 - 关系型数据库20
 - 文档数据库12
 - KV数据库19
 - 列式数据库14
 - 搜索引擎数据库25
 - 网络综合8
 - 网络协议6
 - 网络技术4
 - 操作系统13
 - 操作系统应用2
 - 分布式综合3
 - 分布式理论12
 - 分布式协同13
 - 分布式调度6
 - 分布式高可用1
 - 分布式通信31
 - 分布式存储7
 - hadoop7
 - hive8
 - spark1
 - flink9
 - 其他15
 - 人工智能1
 - 基础特性15
 - 高级特性7
 - 容器7
 - IO10
 - 并发12
 - JVM12
 - JavaWeb6
 - 服务器8
 - 构建9
 - IDE4
 - 监控诊断6
 - JavaBean2
 - 模板引擎4
 - 测试5
 - Spring61
 - ORM3
 - 安全8
 - 缓存5
 - 流量控制2
 - 微服务5
 - 解决方案8
 - Git3
 - Shardingsphere2
 - Mysql10
 - 数据库``1
 - MongoDB11
 - Redis17
 - HBase12
 - Elasticsearch16
 - Elastic8
 - Linux11
 - 命令1
 - 分布式协同综合6
 - ZooKeeper6
 - RPC8
 - MQ17
 - hdfs4
 - 效能6
 - 方法论2
 - 规范3
 - Tomcat6
 - Maven7
 - Spring综合5
 - Spring核心24
 - Spring数据10
 - SpringWeb8
 - SpringIO4
 - Spring集成4
 - Spring安全1
 - Spring其他4
 - RPC综合4
 - Dubbo2
 - MQ综合2
 - Kafka9
 - RocketMQ4
 - 其他MQ1
 
Hive 入门
简介
Hive 是一个构建在 Hadoop 之上的数据仓库,它可以将结构化的数据文件映射成表,并提供类 SQL 查询功能,用于查询的 SQL 语句会被转化为 MapReduce 作业,然后提交到 Hadoop 上运行。
特点:
- 简单、容易上手 (提供了类似 sql 的查询语言 hql),使得精通 sql 但是不了解 Java 编程的人也能很好地进行大数据分析;
 - 灵活性高,可以自定义用户函数 (UDF) 和存储格式;
 - 为超大的数据集设计的计算和存储能力,集群扩展容易;
 - 统一的元数据管理,可与 presto/impala/sparksql 等共享数据;
 - 执行延迟高,不适合做数据的实时处理,但适合做海量数据的离线处理。
 
...大约 8 分钟
Hive 分区表和分桶表
分区表
概念
Hive 中的表对应为 HDFS 上的指定目录,在查询数据时候,默认会对全表进行扫描,这样时间和性能的消耗都非常大。
分区为 HDFS 上表目录的子目录,数据按照分区存储在子目录中。如果查询的 where 子句中包含分区条件,则直接从该分区去查找,而不是扫描整个表目录,合理的分区设计可以极大提高查询速度和性能。
这里说明一下分区表并非 Hive 独有的概念,实际上这个概念非常常见。比如在我们常用的 Oracle 数据库中,当表中的数据量不断增大,查询数据的速度就会下降,这时也可以对表进行分区。表进行分区后,逻辑上表仍然是一张完整的表,只是将表中的数据存放到多个表空间(物理文件上),这样查询数据时,就不必要每次都扫描整张表,从而提升查询性能。
...大约 6 分钟
Hive 视图和索引
视图
简介
Hive 中的视图和 RDBMS 中视图的概念一致,都是一组数据的逻辑表示,本质上就是一条 SELECT 语句的结果集。视图是纯粹的逻辑对象,没有关联的存储 (Hive 3.0.0 引入的物化视图除外),当查询引用视图时,Hive 可以将视图的定义与查询结合起来,例如将查询中的过滤器推送到视图中。
创建视图
CREATE VIEW [IF NOT EXISTS] [db_name.]view_name   -- 视图名称
  [(column_name [COMMENT column_comment], ...) ]    --列名
  [COMMENT view_comment]  --视图注释
  [TBLPROPERTIES (property_name = property_value, ...)]  --额外信息
  AS SELECT ...;
...大约 5 分钟
Hive 数据查询详解
数据准备
为了演示查询操作,这里需要预先创建三张表,并加载测试数据。
数据文件 emp.txt 和 dept.txt 可以从本仓库的resources 目录下载。
员工表
 -- 建表语句
 CREATE TABLE emp(
     empno INT,     -- 员工表编号
     ename STRING,  -- 员工姓名
     job STRING,    -- 职位类型
     mgr INT,
     hiredate TIMESTAMP,  --雇佣日期
     sal DECIMAL(7,2),  --工资
     comm DECIMAL(7,2),
     deptno INT)   --部门编号
    ROW FORMAT DELIMITED FIELDS TERMINATED BY "\t";
  --加载数据
LOAD DATA LOCAL INPATH "/usr/file/emp.txt" OVERWRITE INTO TABLE emp;
...大约 8 分钟
Hive 常用 DDL 操作
Database
查看数据列表
show databases;
...大约 6 分钟
Hive 常用 DML 操作
加载文件数据到表
语法
LOAD DATA [LOCAL] INPATH 'filepath' [OVERWRITE]
INTO TABLE tablename [PARTITION (partcol1=val1, partcol2=val2 ...)]
...大约 7 分钟
Hive 运维
Hive 安装
下载并解压
下载所需版本的 Hive,这里我下载版本为 cdh5.15.2。下载地址:http://archive.cloudera.com/cdh5/cdh/5/
# 下载后进行解压
 tar -zxvf hive-1.1.0-cdh5.15.2.tar.gz
...大约 8 分钟