Hive SQL:DDL建库 建表

news2024/12/23 13:34:37

Hive SQL:DDL建库 / 建表

🐘Hive SQL数据库 建库

数据库

  • 在Hive中,默认的数据库叫做default,存储数据位置位于HDFS:/user/hive/warehouse

  • 用户自己创建的数据库存储位 :/user/hive/warehouse/database_name.db

创建数据库

CREATE (DATABASE|SCHEMA) [IF NOT EXISTS] database_name
[COMMENT database_comment]
[LOCATION hdfs_path]
[WITH DBPROPERTIES (property_name=property_value, ...)
  • COMMENT:数据库的注释说明语句

  • LOCATION:指定数据库在HDFS存储位置,默认/user/hive/warehouse/dbname.db

  • WITH DBPROPERTIES:用于指定一些数据库的属性配置

  • 创建数据库db1

    create database if not exists db1
    comment "the first db"
    with dbproperties ('createdBy'='rkun18');
    

在这里插入图片描述

使用数据库

use db1
  • 切换当前会话选择哪个数据库进行操作

删除数据库

  • 默认行为RESTRICT,仅在数据库为空时才能删除

  • 删除带表的数据可以使用CASCADE

    DROP (DATABASE|SCHEMA) [IF EXISTS] database_name [RESTRICT|CASCADE];
    

🐝Hive SQL 数据表 建表

  • 一个数据库通常包含一个或多个表。每个表由一个名字标识(例如“客户”或者“订单”)。

  • 表包含带有数据的记录(行)。

  • 语法框架

    CREATE TABLE [IF NOT EXISTS] [db_name.]table_name
    (col_name data_type [COMMENT col_comment], ... )
    [COMMENT table_comment]
    [ROW FORMAT DELIMITED …];
    
  • []中语法代表可选

数据类型

  • Hive数据类型表示表中列的字段类型
  • 分为两类:原生 、复杂
  • 常用字符串String和数字int

分隔符指定语法

[ROW FORMAT DELIMITED …]
  • 用于指定字段之间相关的分隔符

  • LazySimpleSerDe是Hive默认。包含四种子语法,用于指定字段/元素/集合/map k-v之间换行的分隔符号

    ROW FORMAT DElIMITED
        [FIELDS TERMINATED BY char] #字段
        [COLLECTION ITEMS TERMINATED BY char]#集合
        [MAP KEYS TERMINATED BY char]#map映射
        [LINE TERMINATED BY char]#行数据
    

🦦案例

分隔符

文件archer.txt记录手游《王者荣耀》射手相关信息,包括生命,防御等属性,字段之间分隔符为制表符\t,要求在Hive中建表映射该文件。

archer.txt

1	后羿	5986	1784	396	336	remotely	archer
2	马可波罗	5584	200	362	344	remotely	archer
3	鲁班七号	5989	1756	400	323	remotely	archer
4	李元芳	5725	1770	396	340	remotely	archer
5	孙尚香	6014	1756	411	346	remotely	archer
6	黄忠	5898	1784	403	319	remotely	archer
7	狄仁杰	5710	1770	376	338	remotely	archer
8	虞姬	5669	1770	407	329	remotely	archer
9	成吉思汗	5799	1742	394	329	remotely	archer
10	百里守约	5611	1784	410	329	remotely	archer	assassin

这里使用DataGrip编写

编写SQL语句:

use db1;

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 "副手"
)comment "射手信息"
row format delimited
fields terminated by "\t";

创建好之后将txt文件上传至,新建立的文件夹下

[root@node1 ~]# mkdir hivedata
[root@node1 ~]# cd hivedata/
[root@node1 hivedata]# pwd
/root/hivedata
[root@node1 hivedata]# ll
total 4
-rw-r--r-- 1 root root 480 Jun 13 13:23 archer.txt
[root@node1 hivedata]# hadoop fs -put archer.txt /user/hive/warehouse/db1.db/t_archer

在这里插入图片描述

文件team_ace_player.txt记录游戏中最受欢迎的选手信息,字段之间使用\001作为分隔符合,要求在Hive中建表并映射成功该文件。

team_ace_player.txt

1成都AG超玩会一诺
2重庆QGhappyHurt
3DYG久诚
4上海EDG.M浪浪
5武汉eStarProCat
6RNG.M暴风锐
7RW侠渡劫
8TES滔搏迷神
9杭州LGD大鹅伪装
10南京Hero久竞清融

  • 字段:id,team_name,ace_player_name
  • 字段之间分隔符\001,建表时可省略row format,因为hive默认分割符号\001
use db1;

create table t_team_ace_play(
    id int,
    team_name string,
    ace_player_name string
);

建表成功后,将文件上传的对应表文件夹下

[root@node1 ~]# ls
hivedata  nohup.out
[root@node1 ~]#
[root@node1 ~]# cd hivedata/
[root@node1 hivedata]# ls
archer.txt
[root@node1 hivedata]# ls
archer.txt  team_ace_player.txt
[root@node1 hivedata]# hadoop fs -put team_ace_player.txt /user/hive/warehouse/db1.db/t_team_ace_play

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/648940.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

linux文件的增量备份 Shell命令脚本

简单的增量备份脚本,自己用到了之后把部分择出来记录一下,方便日后查阅 # 昨天对应的月份 n_mon$(date -d -1day %Y%m) # 组合文件夹路径 path/home/admin/"$n_mon" # 昨天的0点作为增量备份起始时间,今日0点作为截止时间 s_date$…

web3带大家简单建立区块链概念

上文 Web3.0概念我们简单说了说 web3的概念 可能很多人还是会感觉 太概念了 然后 这一篇 我们再了解一下区块链 因为 web3.0的一个构建基础 就是 区块链 有了区块链 才衍生出了后面的很多东西 去中心化的身份 去中心化的应用 dapp 其实最终的目的 也是带着大家去构建起自己的 …

RK3588 MPP解码句柄泄露问题记录

1. 问题背景 最近在用瑞芯微3588开发板做一个视频处理的项目,前两天拷机发生了闪退,弹出的问题是“打开文件过多”,经过初步排查定位到是MPP硬解码部分出的问题。 我的MPP解码部分主要用来读取网络相机rtsp流,主要参考了一个git…

智能应急照明及疏散指示系统在实际项目中的应用和其实际意义 安科瑞 许敏

摘要:近年来,随着照明技术的迅速发展,高大而复杂的智能建筑日益增多,消防应急照明法规和标准不断健全和完善,消防应急灯具产品品种不断增多,性能不断改进,技术水平有很大提高,得到了…

这就是艺术,优雅的二维码生成器「GitHub 热点速览」

作者:HelloGitHub-小鱼干 平时如果没有需要一般那团黑乎乎的二维码,估计路过的人看见第一眼就不会再看第二眼。但是假若,它是个帅哥靓妹,估计就不同了,更别提像是艺术画一样,将编码图案融入到画里的二维码生…

CEETRON如何赋能航空航天领域打造WEB CAE后处理系统?

CAE(计算机辅助工程)在航空航天领域具有广泛的应用,它在航空航天器的设计、性能评估和安全分析等方面开发坚持重要的作用。 本文主要探讨Ceetron集合CAE在航空航天领域中的应用价值,以及对CAE在航空航天领域应用的更详细描述&…

【粉笔刷题】第二回

在JavaScript中下面选项,关于this描述正确的是() A在使用new实例化对象时, this指向这个实例对象 B当对象调用函数或者方法时,this指向这个对象。 C在函数定义时,this指向全局变量 D在浏览器下的全局范围内,this指向全局对象this表…

Django高级扩展之中间件

中间件是Django请求/响应处理的钩子框架。它是一个轻量级的、低级的“插件”系统,用于全局改变Django的输入或输出。每个中间件组件负责实现一些特定的功能。例如,Django包含一个中间件组件AuthenticationMiddleware,它使用会话将…

光伏电池局部遮阴下三种不同的工况对比MATLAB仿真模型

光伏电池局部遮阴下三种不同的工况对比MATLAB仿真模型及程序资源-CSDN文库https://download.csdn.net/download/weixin_56691527/87910311 模型简介: 建议使用MATLAB21b及以上版本打开! 光伏阵列表面被局部遮挡时会产生热斑效应。为了防止太阳电池因热…

如何在Microsoft Excel中使用TRUNC函数

Excel 中有多种删除小数点和缩短数值的方法。在本文中,我们将解释如何使用 TRUNC 函数,以及它与其他技术的不同之处。 TRUNC函数 什么是 TRUNC 功能如何使用 TRUNC 函数从日期时间戳中删除时间什么是 TRUNC 功能 TRUNC 函数将数字截断为指定的小数位数。使 TRUNC 不同于其他…

windows编译ffmpeg,并开启png的编解码器

废话不多说了,先上下载链接 ffmpeg官方网站:http://ffmpeg.org/download.html ffmpeg源码下载链接:https://ffmpeg.org/releases/ffmpeg-3.4.13.tar.gz 如果需要其他版本,修改版本号即可,适用于3.4全系列,如https:/…

Vue中如何进行网页截图与截屏?

Vue中如何进行网页截图与截屏? 在Web开发中,有时候需要对网页进行截图或截屏。Vue作为一个流行的JavaScript框架,提供了一些工具和库,可以方便地实现网页截图和截屏功能。本文将介绍如何在Vue中进行网页截图和截屏。 网页截图 网…

2023年CPSM-3中级项目管理专业人员认证有啥用?

CPSM-3中级项目管理专业人员认证,是中国标准化协会(全国项目管理标准化技术委员会秘书处)联合中国国际人才交流基金会,面向社会开展项目管理专业人员能力的等级证书。旨在构建多层次从业人员培养培训体系,建立健全人才…

Linux操作系统学习——启动

概要 Linux操作系统内核是服务端学习的根基,也是提高编程能力、源码阅读能力和进阶知识学习能力的重要部分,本文开始将记录Linux操作系统中的各个部分源码学习历程。 1. 理解代码的组织结构 以Linux源码举例,首先你得知道操作系统分为哪几个部…

电脑怎么录屏?推荐2款录制电脑屏幕的软件!

案例:我经常需要把电脑上的内容分享给别人,一般通过手机拍摄的方式。这就导致视频十分模糊,给人的观感不太好,有没有什么方法可以实现在电脑上直接录屏? 【我想录制我的电脑屏幕上的内容分享给别人,但是我…

常用JVM命令

top 展示 进程运行的完整命令行的话可以用 top -c ,当命令行较长无法分辨是哪个程序,可使用键盘右键将窗口不断滑动至右侧查看。 uptime jps 查看当前正在运行的java进程 执行结果: pid 运行文件 [roottest1 ~]# jps 24001 rs-medical-rp…

第六期:链表回文旋转的秘密

文章目录 1. 反转链表2. 回文链表代码1. 反转链表2. 回文链表 PS:每道题解题方法不唯一,欢迎讨论!每道题后都有解析帮助你分析做题,答案在最下面,关注博主每天持续更新。 1. 反转链表 题目描述: 给你单链表…

九、会话控制——cookie、session、token

文章目录 前言一、cookie1.1 cookie 是什么1.2 cookie 的特点1.3 cookie 的运行流程1.4 express 框架中设置cookie1.5 express 框架中删除cookie1.6 express 框架中获取cookie 二、session2.1 session 是什么2.2 session 的作用2.3 session 的运行流程2.4 session 和 cookie 的…

vue框架一

目录 友情提醒第一章、vue框架是前端js框架1.1)介绍vue1.2)vue设计思想1.3)vue引入 第二章、实现的步骤2.1)创建步骤2.2)基本语法2.3) 第三章、遇到的问题3.1)3.2)3.3) 第…

python grpc状态码用法

测试代码 新建demo.proto文件定义协议缓冲区,写入以下内容: syntax "proto3"; package server;service Demo {rpc ping(Request) returns (Response) {} }message Request {string msg 1;} message Response {string msg 1;}使用gRPC的工…