From 85390c093d59cad21a473f40dc69439ab2405f86 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E7=BD=97=E7=A5=A5?= <1366971433@qq.com>
Date: Tue, 23 Apr 2019 17:51:52 +0800
Subject: [PATCH] =?UTF-8?q?hive=E6=95=B0=E6=8D=AE=E7=B1=BB=E5=9E=8B?=
=?UTF-8?q?=E5=92=8C=E6=96=87=E4=BB=B6=E6=A0=BC=E5=BC=8F?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
README.md | 7 ++
notes/Hive数据类型和文件格式.md | 94 +++++++++++++++++++
notes/Storm三种打包方式对比分析.md | 5 +
pictures/hive-data-type.png | Bin 0 -> 9682 bytes
4 files changed, 106 insertions(+)
create mode 100644 notes/Hive数据类型和文件格式.md
create mode 100644 pictures/hive-data-type.png
diff --git a/README.md b/README.md
index 468e780..2b14c53 100644
--- a/README.md
+++ b/README.md
@@ -54,11 +54,18 @@
3. [集群资源管理器——YARN](https://github.com/heibaiying/BigData-Notes/blob/master/notes/Hadoop-YARN.md)
4. [Hadoop单机伪集群环境搭建](https://github.com/heibaiying/BigData-Notes/blob/master/notes/installation/hadoop%E5%8D%95%E6%9C%BA%E7%89%88%E6%9C%AC%E7%8E%AF%E5%A2%83%E6%90%AD%E5%BB%BA.md)
5. [HDFS常用Shell命令](https://github.com/heibaiying/BigData-Notes/blob/master/notes/HDFS常用Shell命令.md)
+6. HDFS Java API详解
## 二、Hive
1. [数据仓库Hive](https://github.com/heibaiying/BigData-Notes/blob/master/notes/Hive.md)
2. [Linux环境下Hive的安装部署](https://github.com/heibaiying/BigData-Notes/blob/master/notes/installation/Linux%E7%8E%AF%E5%A2%83%E4%B8%8BHive%E7%9A%84%E5%AE%89%E8%A3%85%E9%83%A8%E7%BD%B2.md)
+3. Hive shell基本使用
+4. Hive 数据类型和文件格式
+5. Hive 常用 DDL操作
+6. Hive 数据查询
+7. Hive 视图和索引
+8. Hive 模式设计
## 三、Spark
diff --git a/notes/Hive数据类型和文件格式.md b/notes/Hive数据类型和文件格式.md
new file mode 100644
index 0000000..2dc7272
--- /dev/null
+++ b/notes/Hive数据类型和文件格式.md
@@ -0,0 +1,94 @@
+# Hive数据类型和文件格式
+
+
+
+
+## 一、数据类型
+
+### 1.1 基本数据类型
+
+Hive表中的列支持以下基本数据类型:
+
+- **Integers(整型)**
+ - TINYINT—1字节的有符号整数
+ - SMALLINT—2字节的有符号整数
+ - INT—4字节的有符号整数
+ - BIGINT—8字节的有符号整数
+- **Boolean(布尔型)**
+ - BOOLEAN—TRUE/FALSE
+- **Floating point numbers(浮点型)**
+ - FLOAT— 单精度浮点型
+ - DOUBLE—双精度浮点型
+- **Fixed point numbers(定点数)**
+ - DECIMAL—用户自定义精度定点数,比如2.4,3.68
+- **String types(字符串)**
+ - STRING—指定字符集的字符序列
+ - VARCHAR—具有最大长度限制的字符序列
+ - CHAR—固定长度的字符序列
+- **Date and time types(日期时间类型)**
+ - TIMESTAMP — 时间戳
+ - TIMESTAMP WITH LOCAL TIME ZONE — 时间戳,纳秒精度
+ - DATE—日期类型
+- **Binary types(二进制类型)**
+ - BINARY—字节序列
+
+>TIMESTAMP 和 TIMESTAMP WITH LOCAL TIME ZONE 的区别:
+>
+>TIMESTAMP WITH LOCAL TIME ZONE:用户提交时间给数据库时,该类型会转换成数据库的时区来保存。查询时则按照查询客户端的不同,转换为查询客户端所在的时区的时间。
+>
+>TIMESTAMP :提交什么时间就保存什么时间,查询时也不做任何转换。
+
+### 1.2 隐式转换
+
+Hive中基本数据类型遵循以下的层次结构,按照这个层次结构,子类型到祖先类型允许隐式转换。例如INT类型的数据允许隐式转换为BIGINT类型。额外注意的是:按照类型层次结构允许将STRING类型隐式转换为DOUBLE类型。
+
+
+
+
+
+### 1.3 复杂类型
+
+| 类型 | 描述 | 示例 |
+| ------ | ------------------------------------------------------------ | -------------------------------------- |
+| STRUCT | 类似于对象,是字段的集合,字段的类型可以不同,可以使用 `名称.字段名`方式进行访问 | STRUCT ('xiaoming', 12 , '2018-12-12') |
+| MAP | 键值对的集合,可以使用`名称[key]`的方式访问对应的值 | map('a', 1, 'b', 2) |
+| ARRAY | 数组是一组具有相同类型和名称的变量的集合,可以使用`名称[index]`访问对应的值 | ARRAY('a', 'b', 'c', 'd') |
+
+
+
+### 1.4 示例
+
+如下给出一个基本数据类型和复杂数据类型的使用示例:
+
+```sql
+CREATE TABLE students(
+ name STRING, -- 姓名
+ age INT, -- 年龄
+ subject ARRAY, --学科
+ score MAP, --各个学科考试成绩
+ address STRUCT --家庭居住地址
+) ROW FORMAT DELIMITED FIELDS TERMINATED BY "\t";
+```
+
+
+
+## 二、文件格式
+
+当数据存储在文本文件中,必须按照一定格式区别行和列,比如使用逗号作为分隔符的CSV文件(Comma-Separated Values)或者使用制表符作为分隔值的TSV文件(Tab-Separated Values)。但是使用这些字符作为分隔符的时候存在一个缺点,就是正常的文件内容中也可能出现逗号或者制表符。
+
+所以Hive默认使用了几个平时很少出现的字符,这些字符一般不会作为内容出现在文件中。Hive默认的行和列分隔符如下表所示。
+
+| 分隔符 | 描述 |
+| ----------- | ------------------------------------------------------------ |
+| \n | 对于文本文件来说,每行是一条记录,所以可以使用换行符来分割记录 |
+| ^A (Ctrl+A) | 分割字段(列),在CREATE TABLE语句中也可以使用八进制编码 `\001` 来表示 |
+| ^B | 用于分割 ARRAY 或者 STRUCT 中的元素,或者用于 MAP 中键值对之间的分割,
在CREATE TABLE语句中也可以使用八进制编码`\002` 表示 |
+| ^C | 用于 MAP 中键和值之间的分割,在CREATE TABLE语句中也可以使用八进制编码`\003` 表示 |
+
+
+
+## 三、存储格式
\ No newline at end of file
diff --git a/notes/Storm三种打包方式对比分析.md b/notes/Storm三种打包方式对比分析.md
index 3d2d4e1..a865371 100644
--- a/notes/Storm三种打包方式对比分析.md
+++ b/notes/Storm三种打包方式对比分析.md
@@ -328,3 +328,8 @@ jar:file:/usr/appjar/storm-hdfs-integration-1.0.jar!/defaults.yaml]
+
+
+## 参考资料
+
+关于maven-shade-plugin的更多配置可以参考: [maven-shade-plugin 入门指南](https://www.jianshu.com/p/7a0e20b30401)
\ No newline at end of file
diff --git a/pictures/hive-data-type.png b/pictures/hive-data-type.png
new file mode 100644
index 0000000000000000000000000000000000000000..aa2db292d63cd3248db66fcf9f49ac9665fee16f
GIT binary patch
literal 9682
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
literal 0
HcmV?d00001