Hive数据模型总览
用户通过数据库访问Hive后,首先选择哪个数据库,然后在库的下面选择的是一张张表,表是管理数据的的最基本的所在,在表中的一行行记录,在现实中就是一条条数据,里面有我们的字段字段类型和它的顺序。
表Table
一个数据库通常包含一个或多个表。每个表由一个名字标识(例如“客户”或者“订单”)。
表包含带有数据的记录(行)。
建表语法树(基础)
(1)数据类型
Hive数据类型指的是表中列的字符类型,整体分为两类:原生数据类型(primitive data type)和复杂数据类型(complex data type)。最常用的数据类型是字符串String和数字类型Int。
(2)分隔符指定语法
ROW FORMAT DELIMITED语法用于指定字段之间等相关的分隔符,这样Hive才能正确的读取解析数据。
或者说只有分隔符指定正确,解析数据成功,我们才能在表中看到数据。
LazySimpleSerDe是Hive默认的,包含4种子语法,分别用于指定字段之间、集合元素之间、map映射 kv之间、 换行的分隔符号。
在建表的时候可以根据数据的特点灵活搭配使用。
Hive建表基础语法练习
1、数据类型
2、分隔符指定
3、默认分隔符
一、数据类型、分隔符练习
文件archer.txt中记录了手游《王者荣耀》射手的相关信息,包括生命、物防、物攻等属性信息,其中 字段之间分隔符为制表符\t,要求在Hive中建表映射成功该文件。
(1/3)数据文件
字段含义:id、name(英雄名称)、hp_max(最大生命)、mp_max(最大法力)、attack_m(最高物攻) 、defense_max(最大物防)、attack_range(攻击范围)、role_main(主要定位)、role_assist(次要定位) 。
分析一下:字段都是基本类型,字段的顺序需要注意一下。
字段之间的分隔符是制表符,需要使用row format语法进行指定。
使用DataGrip 创建一个工程![](https://img-blog.csdnimg.cn/057279aed51f4d1baffed340b428b2e2.png)
首先new一个project
project Hive-Darcy 在当前窗口打开
在桌面上创建一个文件夹 Hive-Darcy后面需要关联本地目录到工程中
连接成功后显示
创建一个新的文件
创建完成后需要配置连接到Hive
更换驱动,点击Dirver (若没有自己的驱动请谨慎删除系统的驱动)
接着会出现下方页面,先点击箭头1,在点击箭头2进行删除
接着点击+号,选择自己的驱动
在自己的目录下找到hive3的驱动点击OK。
如果箭头1所指的地方未变红,则成功,接着点击箭头2所指的箭头。返回继续配置。
先修改名称,再写服务地址node1.itcast.cn,再写用户名,然后再点击Test Connection进行测试,如果没有问题就点击Apply,OK就配置好了。
右键新建一个文件
创建 1.creat文件
这里注意 笔者在第一次创建的时候,写代码总是报错,后来发现是右上方的配置未配置好
选择 Apach Hive
输入下列内容
--1,创建一张表 ,将射手结构化数据文件在Hive中映射成功 --表名 --字段 名称 类型 顺序 -- 字段之间的分割符需要指定 create table t_archer ( id int comment "Id编号", name string comment "英雄名称", hp_max int comment"最大生命力", mp_max int comment "最大法力", attack_max int comment"最高物攻", defense_max int comment"最大物防", attack_range string comment"攻击范围", role_main string comment "主要定位", role_assist string comment "次要定位" ) --指定分割符 row format delimited fields terminated by "\t";--字段黄之间的分割符就是tab键 制表符
选择会话
选择创建在哪个库下
选中,接着进行运行。
点开右方的datebase可以查看建表是否成功 。
建表成功后还需要将文件上传到表对应的目录下
接着使用 select* from 查看表 t_archer
至此 将一个结构化的表映射为一张表。