学习笔记hive——hive应用——数据库定义创建表(代码片段)

别呀 别呀     2023-01-10     299

关键词:

一、任务讲解

泰坦尼克号乘客信息存储与分析

泰坦尼克号乘客信息存储与分析:

  • 创建乘客信息表
  • 导入数据到表中
  • 统计获救与死亡情况
  • 统计舱位分布情况
  • 统计港口登船人数分布情况
  • 统计性别与生存率的关系
  • 统计客舱等级与生存率的关系
  • 统计登船港口与生存率的关系

二、数据库定义

2.1、HQL语句简介

HiveQL是一种类SQL语言,用于分析存储在HDFS中的数据。

不支持事务及更新操作。

HiveQL 语句通过解释器转换为MapReduce 作业提交到Hadoop 集群上, 延迟比较大。


2.2、数据类型

基础数据类型

复杂数据类型

2.3、Hive CLI

1、执行shell命令
用户不需要退出hive CLI就可以执行简单的bash shell命令。只要在命令前加上!并且以分号(;)结尾就可以

2、在Hive中使用Hadoop的dfs命令


2.4、创建与查看数据库


2.5、创建数据表

(中括号表示可选)

CREATE [EXTERNAL] TABLE [IF NOT EXISTS] [db_name.]table_name   #[EXTERNAL]:外表/内表     
  (col_name data_type [COMMENT col_comment], ...)
  [PARTITIONED BY (col_name data_type, ...)] #分区表 指定字段
  [CLUSTERED BY (col_name, col_name, ...) [SORTED BY (col_name [ASC|DESC], ...)]      INTO num_buckets BUCKETS] 
  [ROW FORMAT row_format]   #字段将分隔符或行间分隔符
  [STORED AS file_format]   #定义存储格式
  [LOCATION hdfs_path]    #指定表数据存放的路径


三、创建表


3.1、创建内表

在train数据库下创建表person

(在浏览器输入:master:50070可以看到)

数据内容
person.txt(我放在/opt目录下)

1,Tom,23
2,Kate,24
3,Betty,22
4,Ketty,23
5,Jhon,21

这里有种简易的方式导入到hive中就是:先上传到HDFS


3.2、创建外表

创建Hive外部表external_person,指定HDFS的路径为/user/root/external/person



数据内容
person.txt(我放在/opt目录下)

1,Tom,23
2,Kate,24
3,Betty,22
4,Ketty,23
5,Jhon,21

上传到hdfs:

*补充:内外部差别

学习了内表和外表,那么疑问来了,它们是不是就差别在能否自定义目录?其实它们的差别主要体现在删除,别急!看完下面例子你就明白了!

① 先删除内表和外表

② 查看它们在hdfs的数据文件是否被删除
内表被删除了:

外表没被删除:

总结内表删除时会把原数据及hdfs上的数据都删掉,而外表删除时只会删掉原数据不会删掉hdfs上的数据


3.3、创建泰坦尼克乘客信息表

任务实现:创建泰坦尼克乘客信息表

  • 创建一个内/外部表,指定数据的存放路径。
  • 通过HDFS命令导入数据到指定路径。

创建(内)表

数据文件
train.csv
(导入时删掉头一行)

上传到hdfs

查看:


3.4、静态分区表

  • 创建静态分区表tidanic_part,字段为:passengerid、survived、 pclass、 name
  • 分区字段为gender,按照性别字段sex分区

OK

3.5、动态分区表

  • 创建动态分区表tidanic_dynamic_part,字段为:passengerid、survived、 name
  • 分区字段为passenderclass,按照pclass值进行分区


(我们可以看出动态分区建表其实和静态分区的建表是一样的,他们不同在动态分区进行插入时要初始化)

OK

3.7、创建带数据的表

  • 创建一个tidanic的子集


3.8、创建桶表

  • 桶是比表或分区更为细粒度的数据范围划分。针对某一列进行桶的组织,对列值哈希,然后除以桶的个数求余,决定将该条记录存放到哪个桶中。

获得更高的查询处理效果
抽样调查

  • 创建桶表,按年龄将数据分到4个桶,抽取两个桶的数据创建一个新表tidannic_sample



语法TABLESAMPLE(BUCKET x OUT OF y)

X代表从哪个桶开始抽, y代表抽取桶个数为(桶数/y)个,y必须是桶数的倍数或者因子

hive编程指南_学习笔记01

第四章:HQl的数据定义1:创建数据库 createdatabasefinancials; createdatabase ifnotexistsfinancials;2:查看数据库 showdatabases;  模糊查询数据库 showdatabaseslike‘h.*‘;3:创建数据库改动数据库的默认位置 &nbs 查看详情

hive学习笔记_hive的表创建

创建hive表注意事项一、表分隔符必须与读取的数据文件一致,比如例子的分隔符为 ‘ ‘(制表符),hive下默认分隔符是制表符。二、最好指定分区作为数据之间的区分。三、创建完表可以desc+表明进行查看,字段名称(fiel... 查看详情

学习笔记hive——hive应用——hive导入及导出数据(代码片段)

四、Hive导入及导出数据通过HDFS直接导入导出通过Hive命令导入导出4.1、Hive导入数据的语法LOADDATA[LOCAL]INPATH'filepath'[OVERWRITE]INTOTABLEtablename[PARTITION(partcol1=val1,partcol2=val2...)]LOCAL:导入语句带有LOCALÿ 查看详情

学习笔记hive——查询优化(代码片段)

一、视图1.1、Hive的视图视图是基于数据库的基本表进行创建的一种伪表,数据库中储存视图的定义,不存数据项,数据项仍然存在基本表中它可作为一个抽象层,将数据发布给下游用户。目前Hive版本支持逻辑视... 查看详情

学习笔记hive——hive开发应用(代码片段)

一、任务1.1、商品零售购物篮分析现代商品种类繁多,顾客往往会由于需要购买的商品众多而变得疲于选择,且顾客并不会因为商品选择丰富而选择购买更多的商品。繁杂的选购过程往往会给顾客疲惫的购物体验。1.2、... 查看详情

hive学习笔记

摘要:  Hive 是建立在 Hadoop 上的数据仓库基础构架。它提供了一系列的工具,可以用来进行数据提取转化加载(ETL),这是一种可以存储、查询和分析存储在 Hadoop 中的大规模数据的机制。Hive 定义了简... 查看详情

hive自定义函数的学习笔记

 前言:   hive本身提供了丰富的函数集,有普通函数(求平方sqrt),聚合函数(求和sum),以及表生成函数(explode,json_tuple)等等.但不是所有的业务需求都能涉及和覆盖到,因此hive提供了自定义函数的接口,方便用户扩展.   自己好像... 查看详情

学习笔记hive——自定义函数(代码片段)

一、自定义函数简介1.1、函数类型UDF:用户定义函数UDF操作作用于单个数据行,并且产生一个数据行作为输出。大多数函数都属于这一类(比如数学函数和字符串函数)UDAF:用户定义聚集函数UDAF接受多个输入... 查看详情

hive系统性学习笔记

1.基础1.1DDLHive分桶Bucket1.2DML1.3函数Hive如何实现自定义函数UDFHive日期相关函数Hive如何使用GroupingSets1.4服务Hive元数据服务MetaStore2.原理3.调优HiveCountDistinct优化HiveJoin优化之MapJoin4.实战Hive安装与配置在Zeppelin中如何使用Hive 查看详情

hive系统性学习笔记

1.基础1.1DDLHive分桶Bucket1.2DML1.3函数Hive如何实现自定义函数UDFHive日期相关函数Hive如何使用GroupingSets1.4服务Hive元数据服务MetaStore2.原理3.调优HiveCountDistinct优化HiveJoin优化之MapJoin4.实战Hive安装与配置在Zeppelin中如何使用Hive 查看详情

hive学习笔记(代码片段)

...文件cphive-env.sh.templatehive-env.shHiveMetastore配置将自带的derby数据库替换为mysql数据库参考文章https://my.oschina.net/u/4292373/blog/3497563登录mysql创建新用户授权刷新权限新增hive-site.xml文件记坑hive-default.xml.template的开头就写明了WARNING!!!对... 查看详情

hive学习笔记(启动方式,内置服务)

一、Hive介绍  Hive是基于Hadoop的一个数据仓库,Hive能够将SQL语句转化为MapReduce任务进行运行。  Hive架构图分为以下四部分。     1、用户接口   Hive有三个用户接口:命令行接口(CLI):以命令行的形式输入SQL语... 查看详情

hive学习笔记---用中文创建表名和字段(代码片段)

...可以使用关键字创建表名字段。(SQL语法,各个数据库通用)如下图: 查看详情

hive学习笔记(代码片段)

...文件cphive-env.sh.templatehive-env.shHiveMetastore配置将自带的derby数据库替换为mysql数据库参考文章https://my.oschina.net/u/4292373/blog/3497563登录mysql创 查看详情

hive学习第三课创建数据库和删除数据库

Hive是一种数据库技术,可以定义数据库和表来分析结构化数据。主题结构化数据分析是以表方式存储数据,并通过查询来分析。本章介绍如何创建Hive数据库。配置单元包含一个名为default默认的数据库。CREATEDATABASE语句创... 查看详情

学习笔记hive——hive简介

一、Hive设计思想(了解)Facebook用户社交数据存储与处理Facebook是美国的一个社交网站,于2004年2月4日上线。主要创始人为美国人马克·扎克伯格。Facebook是世界排名领先的照片分享站点。根据Comscore咨询公司的数据显... 查看详情

学习笔记hive——hive简介

一、Hive设计思想(了解)Facebook用户社交数据存储与处理Facebook是美国的一个社交网站,于2004年2月4日上线。主要创始人为美国人马克·扎克伯格。Facebook是世界排名领先的照片分享站点。根据Comscore咨询公司的数据显... 查看详情

hive学习笔记-表操作

Hive数据类型基本数据类型tinyint,smallint,int,biging,float,double,decimal,char,varchar,string,binary,boolean,timestamp,date,引用数据类型Array:同样数据类型组合的数组,使用array[1]訪问MAP:Key-value键值对,通过键进行訪问,使用map[‘key‘]訪问STRUCT:... 查看详情