hive的概述和数据类型
一、Hive概述
1.Hive简介
Hive数据仓库软件有助于使用SQL读取、编写和管理驻留在分布式存储中的大型数据集。提供了命令行工具和JDBC驱动程序以将用户连接到Hive。
Hive可以将SQL语句自动转化为Mapreduce程序,节省了手写框架的困难。
2.Hive优缺点
优点:1)操作接口采用了SQL,避免了首先MR程序,简化开发,降低学习成本;
2)Hive依赖于HDFS做存储,是HDFS上的工具;
3)Hive虽然使用SQL,但是他能处理大规模的数据;
4)Hive支持自定义函数。
缺点:1)Hive执行延迟较高,大多适用于实时性不高的场景或用于处理历史数据;
2)Hive的SQL表达能力有限,有些复杂场景还需要MR程序;
3)hive效率低,优化较难。
二、Hive架构
Hive提供了一下了接口:hive shell、JDBC/ODBC
Hive的工作流程:
1.客户端可以通过多种接口来使用hvie,比如cli(命令行)、jdbc(java);
2.比如使用命令行select count(*) from user调用SQL
客户端回去Meta元数据中调用MySQL的数据(hive默认数据库是derby,我们可以修改指定为MySQL);
3.从Meta获取数据库数据后,命令行和数据一次传入SQL Parser解析器、Physical编译器、Query优化器、Execution执行器;
4.最后对生成的MR程序进行运算,返回结果。
三、Hive中的数据类型
Java数据类型 | Hive数据类型 | 类型长度 |
byte | tinyint | 1byte |
short | smallint | 2byte |
int | int | 4byte |
long | bigint | 8byte |
float | float | 单精度浮点数 |
double | double | 双精度浮点数 |
string | string | 字符串 |
timestamp | 时间类型 | |
binary | 字节数组 |
hive的概述和数据类型的更多相关文章
- [Hive - Tutorial] Type System 数据类型
数据类型Type System Hive supports primitive and complex data types, as described below. See Hive Data Ty ...
- hive笔记:复杂数据类型-map结构
map 结构 1. 语法:map(k1,v1,k2,v2,…) 操作类型:map ,map类型的数据可以通过'列名['key']的方式访问 案例: select deductions['Feder ...
- Redis数据库 01概述| 五大数据类型
1.NoSQL数据库简介 解决应用服务器的CPU和内存压力:解决数据库服务的IO压力: ----->>> ① session存在缓存数据库(完全在内存里),速度快且数据结构简单: 打 ...
- Hive(五)数据类型与库表操作以及中文乱码
一.数据类型 1.基本数据类型 Hive 支持关系型数据中大多数基本数据类型 类型 描述 示例 boolean true/false TRUE tinyint 1字节的有符号整数 -128~127 1 ...
- Hive 01 概述、安装配置
概述 数据仓库:是一个面向主题的.集成的.不可更新的.随时间不变化的数据集合,它用于支持企业或组织的决策分析处理. 数据仓库的结构和建立过程: 数据源 数据存储及管理 ETL Extract 提取 T ...
- Hive的基本操作和数据类型
Hive的基本操作 1.启动Hive bin/hive 2.查看数据库 hive>show databases; 3. 打开默认数据库 hive>use default; 4.显示defa ...
- hive学习笔记之-数据类型
数据类型 Hive基本的数据类型: Hive集合数据类型: 另外还有一个复合数据类型,可以综合上面的数据类型组合到一起. · union: UNIONTYPE<data_typ ...
- hive(2)数据类型和文件格式
基本的数据类型 Hive支持关系型数据中大多数基本的数据类型,同时也支持关系型数据库中很少出现的三种集合数据类型. 集合数据类型 Hive中的列支持使用struct.map.array集合数据类型,下 ...
- Hive中的集合数据类型
除了使用础的数据类型string等,Hive中的列支持使用struct, map, array集合数据类型. 数据类型 描述 语法示例 STRUCT 和C语言中的struct或者"对象&qu ...
随机推荐
- jenkins+ant+jmeter接口测试
<?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet xmlns:xsl=" ...
- 2017-12-20python全栈9期第五天第一节之昨日内容回顾和作业讲解之字母变大写
#!/user/bin/python# -*- coding:utf-8 -*-lis = [2,3,'k',['qwe',20,['k1',['tt','3','1']],89],'ab','adv ...
- 吐血记录微信小程序授权获取Unionid及linux下使用bouncycastle解密用户数据 遇到的坑
背景 公司小程序上线了,发现系统无法拿到一些用户的UniondID.但是上线前的测试一切都是正常的. 坑1 经排查,发现一些用户通过下面的接口无法得到unionid https://api.weixi ...
- 利用JS写一个计算平方的网页
<!-- 计算一个数的平方并显示出来 --> <!DOCTYPE html> <html> <head> <meta charset=" ...
- 五十七、linux 编程——UDP 编程 域名解析
57.1 介绍 57.1.1 域名解析 57.1.2 域名解析函数 gethostent 可以获取多组,gethostbyname 只可以获取一组 /etc/hosts 文件设置了域名和 IP 的绑定 ...
- 如何在Eclipse中创建web项目并使用tomcat8 运行servlet开发简单的动态网页?
今天花了一天时间.因为用eclipse没多久,不是很熟悉使用,看的教程又是使用myeclipse的,但是eclipse相对没有myeclipse灵活,所以在网上找了很多资料,最后算是可以实现了.新手可 ...
- DS博客作业02—线性表
1.思维导图及学习体会 1.1第一章绪论知识点思维导图 1.2.谈谈你对线性表的认识及学习体会. 线性表最重要的就是对指针的操作,插入删除都是看指针的指向进行操作以达到改变节点,以达到目的的.对于上学 ...
- win10 64位Python 3.6.2 + Django 环境安装
一.安装Python3.6.2 1.下载安装包 https://www.python.org/downloads/release/python-362/ 2.一直下一步,记得到了这个界面全部勾选再下一 ...
- L1-Day11
1.问问他能不能来.[我的翻译]Ask him wether he can come.[标准答案]Ask him whether/if he can come.[对比分析]天呐 whether都能拼写 ...
- HG奋斗赛A[20190428]
T1 很简单,判断这个字符串有多少个不同的字符,让后用k减一减 注意: 1.如果不同字符数大于k,不要输出负数 2.变量名别打错 上代码 #include <cstdio> #includ ...