Hive-DDL详解(超详细)

文章目录

  • 前言
  • HiveQL的数据定义语言(DDL)
    • 1. 创建数据库
    • 2. 切换到指定数据库
    • 3. 创建表格
      • (1) 基本形式:
      • (2) 示例:
    • 4. 查看表格结构
    • 5. 删除数据库和表格
      • (1) 删除数据库:
      • (2) 删除数据表:
  • 总结


前言

本教程将介绍HiveQL的数据定义语言(DDL),帮助您了解如何在Hive中创建数据库、切换数据库、创建表格以及查看和删除表格。通过学习这些基本操作,您可以更好地组织和管理数据,并进行高效的查询和分析。


HiveQL的数据定义语言(DDL)

1. 创建数据库

创建数据库是在Hive中组织和管理表的第一步。可以使用以下语法来创建一个新的数据库:

CREATE DATABASE database_name;

例如,要创建名为"mydb"的数据库,可以执行以下命令:

CREATE DATABASE mydb;

2. 切换到指定数据库

在Hive中切换到特定的数据库非常简单。使用以下语法将当前会话切换到指定名称的数据库:

USE database_name;

例如,要将当前会话切换到名为mydb的数据库中,可以执行以下命令:

USE mydb;

3. 创建表格

在Hive中,我们可以通过DDL(数据定义语言)来定义和创建表格。下面是一个示例用于创建表格并指定列、数据类型以及其他属性。

(1) 基本形式:

CREATE TABLE table_name (column1 data_type,column2 data_type,...
)
[ROW FORMAT row_format]
[STORED AS file_format]
[TBLPROPERTIES (property_name=property_value, ...)];

ROW FORMAT row_format:该参数用于指定数据文件的行格式。常见的行格式包括:

  • DELIMITED:默认值,表示使用分隔符(如逗号、制表符等)分隔字段。
  • SERDE serde_name:指定自定义序列化/反序列化类名(SerDe),用于处理非文本数据或特殊数据类型。

STORED AS file_format:该参数用于指定存储文件的格式。常见的存储文件格式包括:

  • TEXTFILE(默认值): 表示以文本形式存储。
  • ORC: 使用ORC (Optimized Row Columnar) 格式进行高效压缩和查询。
  • PARQUET: 使用Parquet列式存储和压缩。

TBLPROPERTIES (property_name=property_value, ...):该参数允许用户为表设置附加属性,以键值对形式提供。可以根据需要添加多个属性,并且每个属性都有一个名称和相应的值。TBLPROPERTIES中设置的常见属性:

  • 'comment'='table_comment': 为表添加注释或描述信息。
  • 'created_by'='username': 记录创建此表记录者用户名信息。
  • 'external'='true/false': 指示是否外部表,默认为false;外部表的数据存储在Hive之外,删除表时不会删除数据。
  • 'location'='hdfs_path': 指定表的存储位置。默认情况下,Hive将使用默认的数据库目录。

(2) 示例:

假设我们想要在"HiveDB" 数据库下面创建一个名为 "employees” 的员工信息表,并具有姓名、年龄和职位三个字段。

首先需要确保已经选择了正确地目标库:

USE HiveDB; 

然后运行如下代码进行建表:

CREATE TABLE employees (name STRING,age INT,position STRING
)
ROW FORMAT DELIMITED FIELDS TERMINATED BY ','
STORED AS TEXTFILE;
TBLPROPERTIES ('comment'='This is a sample table', 'created_by'='John Doe');

上述示例中,“ROW FORMAT”指定行格式为逗号分隔符,“STORED AS”指定存储格式为TEXTFILE,并且通过“TBLPROPERTIES”设置了注释和创建者信息。

4. 查看表格结构

要查看已创建的表格的结构,可以使用以下命令:

DESCRIBE table_name;

例如,要查看名为"employees" 的表格结构,请执行以下命令:

DESCRIBE employees; 

5. 删除数据库和表格

如果需要删除数据库或者特定的数据表,可以使用以下语法进行操作。

(1) 删除数据库:

注意:删除一个非空的数据库将同时删除该库下所有相关联的数据和对象。

DROP DATABASE database_name [RESTRICT|CASCADE];
  • RESTRICT:如果指定了 RESTRICT 参数,并且在执行 DROP DATABASE 之前发现有其他依赖项存在(比如该数据库下还有表),则会抛出一个错误并终止删除。

  • CASCADE:如果指定了 CASCADE 参数,在执行 DROP DATABASE 之前会先检查是否存在与该数据库关联或属于它子集合内部结构(例如表、视图等)。然后 Hive 将逐个级连地移除这些关系,并最终成功完成 DROP 操作。

例如:

DROP DATABASE mydb CASCADE;

(2) 删除数据表:

DROP TABLE table_name;     

例如:

DROP TABLE employees;     

总结

在本教程中,我们学习了一些重要的HiveQL DDL命令。首先,我们了解到如何使用CREATE DATABASE命令来创建新的数据库,并使用USE命令切换到指定的数据库。然后,我们探讨了如何使用DDL语句来定义并创建表格,在此过程中涵盖了行格式、存储格式以及其他属性设置等内容。

接下来,我们介绍了如何通过DESCRIBE table_name; 命令查看已创建表格的结构信息。最后,在删除方面,我们提供了删除数据库和数据表两种操作方式。

希望本教程对您有所帮助!如有任何疑问或问题,请随时在评论区留言。感谢阅读!

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

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

相关文章

Elasticsearch 查询命令执行时,如何通过词项索引、词项字典、倒排表定位文档逻辑介绍

这里不涉及到源码,只是根据网上的一些文章总结一下,目前不需要细究,只需要知道大概就好,除非你的工作是二次开发ES 一、​Term Index(词项索引)1、FSM(Finite State Machine)有限状态机2、FSA(F…

SDKMAN的安装与卸载

[官方网站](Installation - SDKMAN! the Software Development Kit Manager) Installing SDKMAN! on UNIX-like platforms is as easy as ever. SDKMAN! installs smoothly on Mac OSX, Linux, WLS, Cygwin, Solaris and FreeBSD. We also support Bash and ZSH shells. Simpl…

力扣刷题记录(20)LeetCode:198、213、337

198. 打家劫舍 我们从第一个开始分析: dp[i]:i表示索引,dp表示当前索引可以拿到的最高金额 索引为0时,可以拿到的最高金额为1; 索引为1时,可以拿到的最高金额就是在索引[0,1]之间取,为2 索引为2时&…

雷军的最后一战,就这?

作者 | 魏启扬 来源 | 洞见新研社 2021年3月30日,小米官宣进军电动汽车赛道后的1003天,小米汽车亮相了。 由于是雷军“人生中最后一次重大的创业项目”,押上了雷军“人生所有积累的战绩和声誉”,小米对于造车极为重视&#xff…

性能手机新标杆,一加 Ace 3 发布会定档 1 月 4 日

12 月 27 日,一加宣布将于 1 月 4 日发布新品一加 Ace 3。一加 Ace 系列秉持「产品力优先」理念,从一加 Ace 2、一加 Ace 2V 到一加 Ace 2 Pro,款款都是现象级爆品,得到了广大用户的认可与支持。作为一加 2024 开年之作&#xff0…

【没有哪个港口是永远的停留~论文解读】Both Style and Fog Matter

Both Style and Fog Matter 原文:https://arxiv.org/pdf/2112.00484.pdf 解决问题:大雾、下雨、下雪天模糊场景 其他人做法: 1-去雾算法,人工干扰 2-合成的雾图像,不像真实的雾图像那样真实,也会扩大清…

C++ 151. 反转字符串中的单词

给你一个字符串 s ,请你反转字符串中 单词 的顺序。 单词 是由非空格字符组成的字符串。s 中使用至少一个空格将字符串中的 单词 分隔开。 返回 单词 顺序颠倒且 单词 之间用单个空格连接的结果字符串。 注意:输入字符串 s中可能会存在前导空格、尾随…

12.27_黑马数据结构与算法笔记Java(补1)

目录 266 活动选择问题 分析 267 活动选择问题 贪心 268 分数背包问题 贪心 269 0-1 背包问题 贪心 270 斐波那契 动态规划 271 斐波那契 动态规划 降维 272 Bellman Ford 动态规划 分析 273 Bellman Ford 动态规划 实现1 274 Bellman Ford 动态规划 实现2 275 Leetco…

Android APP耗电量采集数据模板

测试设备:平板 测试版本:设备型号测试版本 安卓版本:10 应用包名:com.android.XXX 测试时长:30mins 测试结论:针对xxx功能测试什么内容,分为什么场景,统计耗电量时长数据等 测试数据…

(12)Linux 常见的三种进程状态

💭 前言:本章我们专门讲解进程的状态。我们先学习具体的 Linux 系统状态,再去介绍 OS 学科面对的概念如何理解 —— 运行态、终止态、阻塞态以及挂起态。 进程状态(Process Status) 什么是进程状态? 进程…

C语言—每日选择题—Day64

前言 两天没更新了,作者在复习期末考试,更新一波,祝大家都能顺利通过期末考试!!! 指针相关博客 打响指针的第一枪:指针家族-CSDN博客 深入理解:指针变量的解引用 与 加法运算-CSDN博…

存储:双磁盘RAID0磁盘阵列搭建

磁盘介绍 固态磁盘分为SATA口和PCIE口,SATA单盘实测最高550MB/s, PCIE 4.0单盘写入实测最高2.2GB/s。以上均为缓内速度。 SATA口和PCIE口速度对比 准备工作 准备同型号的两个固态磁盘(不同型号的磁盘组raid会以较低的速度和空间的raid为主…

JavaWeb——监听器Listener 过滤器Filter——韩顺平学习笔记

文章目录 JavaWeb 三大组件之监听器 ListenerListenerJavaWeb 的监听器ServletContextListener 监听器ServletContextAttributeListener 监听器其它监听器-使用较少HttpSessionListener 监听器HttpSessionAttributeListener 监听器ServletRequestListener 监听器ServletRequest…

idea中终端Terminal页面输入命令git log后如何退出

1、idea中Terminal输入命令git log后如何退出? 2、解决 输入q键会自动退出git log命令

除自身以外数组的乘积(LeetCode 238)

文章目录 1.问题描述2.难度等级3.热门指数4.解题思路4.1 暴力4.2 左右乘积列表4.3 空间复杂度 O(1) 的方法 参考文献 1.问题描述 给你一个整数数组 nums,返回数组 answer ,其中 answer[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积 。 题目数据保证…

反转链表算法及优化(leetcode第206题)

题目描述: 给你单链表的头节点 head ,请你反转链表,并返回反转后的链表。示例 1: 输入:head [1,2,3,4,5] 输出:[5,4,3,2,1] 示例 2: 输入:head [1,2] 输出:[2,1] 示例…

Python 爬虫 小案例 之 快手下载视频

前言 大家早好、午好、晚好吖 ❤ ~欢迎光临本文章 如果有什么疑惑/资料需要的可以点击文章末尾名片领取源码 知识点: 动态数据抓包 requests发送请求开发环境: python 3.8 运行代码 pycharm 2022.3 辅助敲代码 requests pip insta…

vue3-富文本编辑器(vue-quill)

官网&#xff1a;VueQuill | Rich Text Editor Component for Vue 3 安装 pnpm add vueup/vue-quilllatest 使用 局部使用 先导包 import { QuillEditor } from vueup/vue-quill import vueup/vue-quill/dist/vue-quill.snow.css; 再使用 <QuillEditor theme"snow…

最新AI系统ChatGPT网站H5系统源码,支持Midjourney绘画,GPT语音对话+ChatFile文档对话总结+DALL-E3文生图

一、前言 SparkAi创作系统是基于ChatGPT进行开发的Ai智能问答系统和Midjourney绘画系统&#xff0c;支持OpenAI-GPT全模型国内AI全模型。本期针对源码系统整体测试下来非常完美&#xff0c;可以说SparkAi是目前国内一款的ChatGPT对接OpenAI软件系统。那么如何搭建部署AI创作Ch…

2023年湘潭大学软件工程考试总结

选择 选择是全部单选&#xff0c;没有把多选题改成单选题出&#xff0c;我还是太年轻了&#xff0c;出题肯定是怎么简单轻松怎么来。 判断 判断题也确实是完全来自头歌的原题 选择判断总共30分&#xff0c;确定能拿到的分数是22分&#xff0c;其他的确实是原题但是自己没有…