IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> Hive数据定义及表的创建 -> 正文阅读

[大数据]Hive数据定义及表的创建

(一)Hive数据定义

Hive中数据库的概念本质上仅仅是表的一个目录或者命名空间。这样做可以避免表命名冲突。如果用户没有显示指定数据库,那么会使用默认的数据库“default”

1.查看Hive中所包含的所有数据库

show databases;

2.切换到xx数据库

use databases xx

3.创建数据库

create database database_name

4.查看数据库信息

describe database xx

5.删除数据库

drop database xx

默认情况下,Hive不允许删除一个里面有表存在的数据库,如果像删除数据库,那么先将数据库中的表全部删除,要么可以使用cascade关键字,使用该关键字后,hive会将自己数据库下的表全部删除。restrict 关键字就是默认情况,即如果有表存在则不允许删除数据库。

6.查看数据库的存储位置

$ hadoop fs -ls -R /user/hive/warehouse

7.在指定位置创建数据库

create database mytest2
location 'hdfs://centos01:9000/user/hive/warehouse/mytest3.db'

(二)Hive中表的创建

Hive中表分为内部表(MANAGED_TABLE)和外部表(EXTERNAL_TABLE)

1.内部表

? ? ? ? (1)内部表在drop时,会删除HDFS上的数据

? ? ? ? (2)内部表通常作为Hive的中间表、结果表,一般不需要从外部(如:本地文件、HDFS)加载数据

2.外部表

? ? ? ? (1)外部表在drop时,不会删除HDFS上的数据

? ? ? ? (2)外部表通常作为源数据表,需要定期将外部数据映射到表中

创建外部表:

create external table xx

查询表的信息:

describe xx

查询表的详细信息:

describe extended xx

创建表时的参数和关键字含义:

EXTERNAL

表示该表为外部表,如果不指定,则表示内部表;

COMMENT

为表和列添加注释;

PARTITIONED?BY

表示该表为分区表,并指定分区字段和类型;

ROW?FORMAT?DELIMITED

指定表分隔符,通常与以下关键字连用:

FIELDS?TERMINATED?BY??????????????????????????????//?指定每行中字段分隔符

LINES?TERMINATED?BY????????????????????????????????//?指定行分隔符

COLLECTION?ITEMS?TERMINATED?BY?????//?指定集合中元素之间的分隔符

MAP?KEYS?TERMINATED?BY???????????????????????//?指定数据中Map类型的Key与Value之间的分隔符

STORED?AS

指定表的文件存储格式,可选文件存储格式有:

TEXTFILE(文本,默认值);

SEQUENCEFILE?(?二进制序列文件);

RCFILE?(列式存储格式文件?Hive0.6开始支持)

LOCATION

指定表在HDFS上的存储位置;

3.复制表-使用like关键字

对于管理表,还可以对一张存在的表进行表结构复制,但是不会复制数据:

【例】复制person3为person4

create external table person4 like person3

4.分区表

Hive中数据分区可分为:

(1)单值分区

? ? ? ? 《1》静态分区:导入数据时需要手动指定分区

? ? ? ? 《2》动态分区:导入数据时,由系统动态判断目标分区

(2)范围分区

? ? ? ? 单值分区每个分区对应分区键的一个取值,而每个范围分区则对应分区键的一个区间,只要落在指定区间内的记录都被存储在对应分区下。

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2022-04-30 08:47:05  更:2022-04-30 08:47:46 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 0:47:28-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码