Hive——DDL(Data Definition Language)数据定义语句用法详解

这篇具有很好参考价值的文章主要介绍了Hive——DDL(Data Definition Language)数据定义语句用法详解。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1.数据库操作

1.1创建数据库

CREATE DATABASE [IF NOT EXISTS] database_name
[COMMENT database_comment]
[LOCATION hdfs_path]
[WITH DBPROPERTIES (property_name=property_value, ...)];
  • IF NOT EXISTS:可选参数,表示如果数据库已经存在,则不会创建,避免出现重复创建的情况。
  • COMMENT:可选参数,用于添加数据库的注释
  • LOCATION:可选参数,指定数据库的存储路径

Hive——DDL(Data Definition Language)数据定义语句用法详解,Hive,hive,hadoop,数据仓库

  • WITH DBPROPERTIES:可选参数,用于设置数据库的额外属性

示例:

CREATE DATABASE IF NOT EXISTS mydatabase
COMMENT 'This is my database'
LOCATION '/user/hive/warehouse/mydatabase.db'
WITH DBPROPERTIES ('owner'='yushifu', 'created_date'='2024-04-23');

Hive——DDL(Data Definition Language)数据定义语句用法详解,Hive,hive,hadoop,数据仓库

Hive——DDL(Data Definition Language)数据定义语句用法详解,Hive,hive,hadoop,数据仓库

  • 创建一个名为"mydatabase"的数据库,如果该数据库已存在则不会重新创建。
  • 指定了注释为"This is my database",并将其存储路径设置为"/user/hive/warehouse/mydatabase.db"
  • 设置了额外属性"owner"为"yushifu",“created_date"为"2024-04-23”。

1.2 查询数据库

在Hive中,可以使用以下语句来列出所有的数据库,或者使用通配符来匹配数据库名:

SHOW DATABASES [LIKE 'identifier_with_wildcards'];
  • LIKE 'identifier_with_wildcards':可选参数,用于指定要匹配的数据库名

Hive——DDL(Data Definition Language)数据定义语句用法详解,Hive,hive,hadoop,数据仓库


示例:

- (1)列出所有数据库:

SHOW DATABASES;

Hive——DDL(Data Definition Language)数据定义语句用法详解,Hive,hive,hadoop,数据仓库
Hive——DDL(Data Definition Language)数据定义语句用法详解,Hive,hive,hadoop,数据仓库

- (2)列出以my开头的数据库:

show databases like 'my*';

Hive——DDL(Data Definition Language)数据定义语句用法详解,Hive,hive,hadoop,数据仓库
Hive——DDL(Data Definition Language)数据定义语句用法详解,Hive,hive,hadoop,数据仓库

- (3)列出以d开头或者m开头的数据库

show databases like 'd*|m* ';

Hive——DDL(Data Definition Language)数据定义语句用法详解,Hive,hive,hadoop,数据仓库


1.3 查看数据库信息

DESCRIBE DATABASE [EXTENDED] db_name;

在Hive中,DESCRIBE DATABASE EXTENDED命令提供了比普通DESCRIBE DATABASE更详细的数据库信息,包括一些额外的属性和元数据。

使用DESCRIBE DATABASE EXTENDED命令可以获取以下额外的信息:

1. 数据库的所有者(Owner):显示数据库的所有者信息。
2. 创建时间(Create Time):显示数据库创建的时间戳。
3. 位置(Location):显示数据库在Hadoop文件系统中的存储位置。
4. 参数(Parameters):显示数据库的配置参数,如属性、描述等。


示例:

- (1)查看数据库mydatabase的基本信息:

Hive——DDL(Data Definition Language)数据定义语句用法详解,Hive,hive,hadoop,数据仓库

Hive——DDL(Data Definition Language)数据定义语句用法详解,Hive,hive,hadoop,数据仓库


- (2)查看数据库mydatabase的详细信息:

Hive——DDL(Data Definition Language)数据定义语句用法详解,Hive,hive,hadoop,数据仓库

Hive——DDL(Data Definition Language)数据定义语句用法详解,Hive,hive,hadoop,数据仓库


1.4 修改数据库

  • 用户可以使用alter database命令修改数据库某些信息,其中能够修改的信息包括dbpropertieslocationowner user
  • 需要注意的是:修改数据库location,不会改变当前已有表的路径信息!! 而只是改变后续创建的新表的默认的父目录。
  1. 修改数据库的所有者
ALTER DATABASE db_name SET OWNER [USER|ROLE] owner_name;
  1. 修改数据库的位置
ALTER DATABASE db_name SET LOCATION 'new_location';

这将会修改数据库的存储位置。

  1. 修改数据库的属性
ALTER DATABASE db_name SET DBPROPERTIES (property_name=property_value, ...);

示例:

-- 修改数据库的所有者为 'new_owner'
ALTER DATABASE mydatabase SET OWNER USER new_owner;

-- 修改数据库的存储位置为 '/new_location'
ALTER DATABASE mydatabase SET LOCATION '/new_location';

-- 修改数据库的属性,例如添加或者修改描述
ALTER DATABASE mydatabase SET DBPROPERTIES ('description' = 'New description for my database');


1.5 删除数据库

DROP DATABASE [IF EXISTS] database_name [RESTRICT|CASCADE];

  • RESTRICT:严格模式,若数据库不为空,则会删除失败,默认为该模式
  • CASCADE:级联模式,若数据库不为空,则会将库中的表一并删除

1.6切换数据库

USE database_name


2.数据表操作

2.1 创建表

2.1.1 普通建表

CREATE [TEMPORARY] [EXTERNAL] TABLE [IF NOT EXISTS] [db_name.]table_name   
(
    col_name data_type [COMMENT col_comment],
    ...
)
[COMMENT table_comment]
[PARTITIONED BY (col_name data_type [COMMENT col_comment], ...)]
[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]
[TBLPROPERTIES (property_name=property_value, ...)];
  • CREATE: 指定了创建表的操作。

  • TEMPORARY: 可选的关键字,用于创建临时表,该表在当前会话结束时将被删除

  • EXTERNAL: 可选的关键字,用于创建外部表,该表的数据存储在外部位置,Hive只管理元数据,不管理数据文件。外部表,与之相对应的是内部表(管理表)。管理表意味着Hive会完全接管该表,包括元数据和HDFS中的数据。而外部表则意味着Hive只接管元数据,而不完全接管HDFS中的数据

  • IF NOT EXISTS: 可选的关键字,如果表已经存在,则不报错,直接忽略该操作。

  • db_name: 可选的数据库名称,指定了创建表所属的数据库,如果不指定,默认在当前数据库建表

  • table_name: 要创建的表的名称。

  • col_name data_type [COMMENT col_comment]: 表的列定义,包括列名、数据类型,以及可选的列注释。

  • COMMENT table_comment: 可选的表注释,描述整个表的含义。

  • PARTITIONED BY: 可选的子句,用于指定分区列,表将根据这些列的值进行分区存储。(创建分区表)

  • CLUSTERED BY: 可选的子句,用于指定表的分桶列,将表数据分桶存储(创建分桶表)

  • SORTED BY: 可选的子句,用于指定分桶内的数据排序方式

  • ROW FORMAT: 可选的子句,用于指定表中数据的行格式。
    Hive——DDL(Data Definition Language)数据定义语句用法详解,Hive,hive,hadoop,数据仓库

  • STORED AS: 可选的子句,用于指定表数据的存储格式。
    常用的文件格式有,textfile(默认值),sequence file,orc file、parquet file等等。

  • LOCATION: 可选的子句,用于指定表数据存储的位置,仅在创建外部表时使用。
    在这里插入图片描述
    Hive——DDL(Data Definition Language)数据定义语句用法详解,Hive,hive,hadoop,数据仓库

  • TBLPROPERTIES: 可选的子句,用于指定表的属性,例如压缩方式、存储格式等。

示例:

Hive——DDL(Data Definition Language)数据定义语句用法详解,Hive,hive,hadoop,数据仓库

-- 创建名为 "t1" 的表,如果该表不存在则执行创建操作
CREATE TABLE IF NOT EXISTS default.t1
(
    -- 学生ID,整数类型,用于唯一标识学生
    id INT COMMENT 'student\'s id',
    
    -- 学生姓名,字符串类型,存储学生的姓名信息
    name STRING COMMENT 'student\'s name',
    
    -- 学生地址,字符串类型,存储学生的地址信息
    addr STRING COMMENT 'student\'s addr'
)
-- 表的注释,描述该表存储的是学生信息
COMMENT 'student\'s information'
-- 指定行格式为逗号分隔的文本文件
ROW FORMAT DELIMITED FIELDS TERMINATED BY ','
-- 指定表数据的存储格式为文本文件
STORED AS TEXTFILE
-- 指定表的属性,包括作者和创建时间
TBLPROPERTIES ('author'='yushifu', 'create_time'='2024-04-23');

Hive——DDL(Data Definition Language)数据定义语句用法详解,Hive,hive,hadoop,数据仓库

Hive——DDL(Data Definition Language)数据定义语句用法详解,Hive,hive,hadoop,数据仓库

-- 如果不存在,创建名为 "t2" 的表
CREATE TABLE IF NOT EXISTS default.t2
(
    -- 学生ID,整数类型,用于唯一标识学生
    id INT COMMENT 'student\'s id',
    
    -- 学生姓名,字符串类型,存储学生的姓名信息
    name STRING COMMENT 'student\'s name',
    
    -- 学生地址,字符串类型,存储学生的地址信息
    addr STRING COMMENT 'student\'s addr'
)
-- 表的注释,描述该表存储的是学生信息
COMMENT 'student\'s information'
-- 指定行格式为逗号分隔的文本文件
ROW FORMAT DELIMITED FIELDS TERMINATED BY ','

STORED AS TEXTFILE

-- 指定表数据的存储位置为 '/t2'
LOCATION '/t2'
-- 指定表的属性,包括作者和创建时间
TBLPROPERTIES ('author'='yushifu', 'create_time'='2024-04-23');

Hive——DDL(Data Definition Language)数据定义语句用法详解,Hive,hive,hadoop,数据仓库


2.1.2 Create Table As Select(CTAS)建表

CREATE TABLE new_table_name
[ROW FORMAT row_format]
[STORED AS file_format]
[LOCATION 'hdfs_path']
[TBLPROPERTIES (property_name = property_value, ...)]
AS
SELECT column1, column2, ...
FROM existing_table_name
[WHERE condition];
  • new_table_name: 新表的名称。
  • ROW FORMAT row_format: 可选项,用于指定新表的行格式。
  • STORED AS file_format: 可选项,用于指定新表的存储文件格式。
  • LOCATION 'hdfs_path': 可选项,指定新表的存储位置。
  • TBLPROPERTIES (property_name = property_value, ...): 可选项,用于指定表级别的属性。
  • AS: 关键字,表示创建表并将其填充为SELECT查询的结果。
  • SELECT column1, column2, ...: SELECT子句用于指定要从现有表中选择的列。
  • FROM existing_table_name: 指定要从中获取数据的现有表。
  • [WHERE condition]: 可选项,用于过滤要选择的行。

示例:
Hive——DDL(Data Definition Language)数据定义语句用法详解,Hive,hive,hadoop,数据仓库

Hive——DDL(Data Definition Language)数据定义语句用法详解,Hive,hive,hadoop,数据仓库
Hive——DDL(Data Definition Language)数据定义语句用法详解,Hive,hive,hadoop,数据仓库
Hive——DDL(Data Definition Language)数据定义语句用法详解,Hive,hive,hadoop,数据仓库
Hive——DDL(Data Definition Language)数据定义语句用法详解,Hive,hive,hadoop,数据仓库
Hive——DDL(Data Definition Language)数据定义语句用法详解,Hive,hive,hadoop,数据仓库
Hive——DDL(Data Definition Language)数据定义语句用法详解,Hive,hive,hadoop,数据仓库
Hive——DDL(Data Definition Language)数据定义语句用法详解,Hive,hive,hadoop,数据仓库


2.1.3 Create Table Like语法

该语法允许用户复刻一张已经存在的表结构,与上述的CTAS语法不同,该语法创建出来的表中不包含数据。

Hive——DDL(Data Definition Language)数据定义语句用法详解,Hive,hive,hadoop,数据仓库
Hive——DDL(Data Definition Language)数据定义语句用法详解,Hive,hive,hadoop,数据仓库
Hive——DDL(Data Definition Language)数据定义语句用法详解,Hive,hive,hadoop,数据仓库

2.1.4 内部表与外部表

内部表:

  • Hive中默认创建的表都是的内部表,有时也被称为管理表
  • 对于内部表,Hive会完全管理表的元数据和数据文件
    Hive——DDL(Data Definition Language)数据定义语句用法详解,Hive,hive,hadoop,数据仓库
    desc formatted student;查看详细表信息可知表类型。
    Hive——DDL(Data Definition Language)数据定义语句用法详解,Hive,hive,hadoop,数据仓库
    Hive——DDL(Data Definition Language)数据定义语句用法详解,Hive,hive,hadoop,数据仓库

删除内部表之后 HDFS的也会删除,因为对于内部表,Hive会完全管理表的元数据和数据文件。
Hive——DDL(Data Definition Language)数据定义语句用法详解,Hive,hive,hadoop,数据仓库
删除内部表后,HDFS中的文件也会随之删除!
Hive——DDL(Data Definition Language)数据定义语句用法详解,Hive,hive,hadoop,数据仓库

Hive——DDL(Data Definition Language)数据定义语句用法详解,Hive,hive,hadoop,数据仓库


外部表:

  • 外部表通常可用于处理其他工具上传的数据文件。
  • 于外部表,Hive只负责管理元数据,不负责管理HDFS中的数据文件
    Hive——DDL(Data Definition Language)数据定义语句用法详解,Hive,hive,hadoop,数据仓库
    Hive——DDL(Data Definition Language)数据定义语句用法详解,Hive,hive,hadoop,数据仓库
    Hive——DDL(Data Definition Language)数据定义语句用法详解,Hive,hive,hadoop,数据仓库Hive——DDL(Data Definition Language)数据定义语句用法详解,Hive,hive,hadoop,数据仓库

2.1.5 SERDE和复杂数据类型

Hive——DDL(Data Definition Language)数据定义语句用法详解,Hive,hive,hadoop,数据仓库
Hive——DDL(Data Definition Language)数据定义语句用法详解,Hive,hive,hadoop,数据仓库

若现有如下格式的JSON文件需要由Hive进行分析处理,请考虑如何设计表?

{
  "name": "yushifu",
  "age": 18,
  "hobbies": ["singing", "jumping", "rapping","basketball"],
  "address": {
    "street": "123 Main Street",
    "city": "弗洛里达",
    "country": "USA"
  }
}

Hive——DDL(Data Definition Language)数据定义语句用法详解,Hive,hive,hadoop,数据仓库

  • 可以考虑使用专门负责JSON文件的JSON Serde。
  • 设计表字段时,表的字段与JSON字符串中的一级字段保持一致。
  • 对于具有嵌套结构的JSON字符串,考虑使用合适复杂数据类型保存其内容。
create table stu
(
    name     string,
    age		 int,
    hobbies	 map<string,int>,
    address  struct<city:string,street:string,postal_code:int>
)
row format serde 'org.apache.hadoop.hive.serde2.JsonSerDe'
location '/user/hive/warehouse/teacher';


2.2 查看表

2.2.1 展示表

SHOW TABLES [IN database_name] LIKE ['identifier_with_wildcards'];
  • like通配表达式说明:*表示任意个任意字符,|表示或的关系

show tables like ‘stu*’;
Hive——DDL(Data Definition Language)数据定义语句用法详解,Hive,hive,hadoop,数据仓库


2.1.5 查看表信息

(1)查看基本信息

desc table;

Hive——DDL(Data Definition Language)数据定义语句用法详解,Hive,hive,hadoop,数据仓库

(2) 查看详细信息

desc formatted table;

Hive——DDL(Data Definition Language)数据定义语句用法详解,Hive,hive,hadoop,数据仓库


2.3 修改表

在Apache Hive中,要修改表的属性或结构,你可以使用ALTER TABLE语句。以下是一些常见的用法:

1.修改表名称:

ALTER TABLE old_table_name RENAME TO new_table_name;
Hive——DDL(Data Definition Language)数据定义语句用法详解,Hive,hive,hadoop,数据仓库
Hive——DDL(Data Definition Language)数据定义语句用法详解,Hive,hive,hadoop,数据仓库

2.添加列:
该语句允许用户增加新的列,新增列的位置位于末尾。
ALTER TABLE table_name ADD COLUMNS (col_name data_type [COMMENT col_comment], ...);

Hive——DDL(Data Definition Language)数据定义语句用法详解,Hive,hive,hadoop,数据仓库
Hive——DDL(Data Definition Language)数据定义语句用法详解,Hive,hive,hadoop,数据仓库

3.修改列名称和类型(更新列):
该语句允许用户修改指定列的列名、数据类型、注释信息以及在表中的位置
ALTER TABLE table_name CHANGE [COLUMN] col_old_name col_new_name column_type [COMMENT col_comment] [FIRST|AFTER column_name]
Hive——DDL(Data Definition Language)数据定义语句用法详解,Hive,hive,hadoop,数据仓库

4.替换列:
该语句允许用户用新的列集替换表中原有的全部列。
ALTER TABLE table_name REPLACE COLUMNS (col_name data_type [COMMENT col_comment], ...)
Hive——DDL(Data Definition Language)数据定义语句用法详解,Hive,hive,hadoop,数据仓库
Hive——DDL(Data Definition Language)数据定义语句用法详解,Hive,hive,hadoop,数据仓库

2.4 删除表

DROP TABLE [IF EXISTS] table_name;

2.5 清空表

清空表数据内容。

TRUNCATE [TABLE] table_name

Hive——DDL(Data Definition Language)数据定义语句用法详解,Hive,hive,hadoop,数据仓库
Hive——DDL(Data Definition Language)数据定义语句用法详解,Hive,hive,hadoop,数据仓库

  • truncate只能清空管理表,不能删除外部表中数据。
  • 因为Hive只能管理内部表的数据文件,外部表无权限处理。
    Hive——DDL(Data Definition Language)数据定义语句用法详解,Hive,hive,hadoop,数据仓库

整理不易!一键三连呀各位~🤣🤣🤣文章来源地址https://www.toymoban.com/news/detail-859866.html

到了这里,关于Hive——DDL(Data Definition Language)数据定义语句用法详解的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 5、Hive:DDL数据定义及操作

    目录 1、DDL数据定义 1.1 创建数据库 1.2 查询数据库 1.3 修改数据库 1.4 删除数据库 1.5 创建表 1.5.1 管理表(内部表) 1.5.2 外部表 1.5.3 管理表与外部表的互相转换 1.6 修改表 1.6.1 重命名表 1.6.2 增加、修改和删除表分区 1.6.3 增加/修改/替换列信息 1.7 删除表 2 DML数据操作 2.1 数据导

    2024年02月05日
    浏览(45)
  • 3.Hive SQL数据定义语言(DDL)

    1.1 常见的开发方式 (1) Hive CLI、Beeline CLI Hive自带的命令行客户端 优点:不需要额外安装 缺点:编写SQL环境恶劣,无有效提示,无语法高亮,误操作率高 (2) 文本编辑器 Sublime、Emacs、EditPlus等 有些不支持作为客户端连接Hive服务,但支持SQL语法环境,那就在编辑器中开发

    2024年02月12日
    浏览(47)
  • Oracle、达梦:☆获取数据库对象、获取对象的DDL定义语句(达梦)

    以下方式在达梦DM数据库中都能跑通,Oracle未测试所有的方式。 数据库所有对象表:包括 表、视图、物化视图、函数、存储过程……等 ①、ALL_OBJECTS视图方式 OBJECT_TYPE 解释: oracle 的ALL_OBJECTS中的OBJECT_TYPE表示: TABLE :表示表,这是用于存储和管理数据库中数据的主要结构。

    2024年02月03日
    浏览(81)
  • 大数据开发之Hive(基本概念、安装、数据类型、DDL数据定义、DML数据操作)

    1.1.1 Hive产生背景 HDFS来存储海量的数据、MapReduce来对海量数据进行分布式并行计算、Yarn来实现资源管理和作业调度。但是面对海量的数据和负责的业务逻辑,开发人员要编写MR对数据进行统计分析难度极大,所以就产生了Hive这个数仓工具。Hive可以帮助开发人员将SQL语句转化

    2024年01月17日
    浏览(43)
  • 基于mysql5.7制作自定义的docker镜像,适用于xxl-job依赖的数据库,自动执行初始化脚本(ddl语句和dml语句)

    xxl-job-admin依赖mysql数据库,且需执行初始化脚本,包括ddl和dml语句。 具体的步骤总结如下: 1、新建数据库xxl_job 2、创建mysql表table 3、执行dml语句,包括新建admin用户及密码,创建执行器和任务。 毫无疑问,人工每次去操作这些,不仅耗费人力和时间,还容易出错。 所以,本

    2024年02月11日
    浏览(138)
  • Java从入门到精通24==》数据库、SQL基本语句、DDL语句

    2023.8.27 数据库是一个电子化储存数据的系统,它能够以结构化形式组织、存储和管理数据,使得数据的访问、操作和管理变得更为高效、可靠和安全 数据库通常包括数据、数据结构、查询语言、数据存储和检索引擎等多个组成部分,可分为关系型数据库、非关系型数据库等

    2024年02月11日
    浏览(45)
  • Hive(14):Database|schema(数据库) DDL操作

    1 Create database Hive中DATABASE的概念和RDBMS中类似,我们称之为数据库。在Hive中, DATABASE和SCHEMA是可互换的,使用DATABASE或SCHEMA都可以。 COMMENT:数据库的注释说明语句 LOCATION:指定数据库在HDFS存储位置,默认/user/hive/warehouse WITH DBPROPERTIES:用于指定一些数据库的属性配置。 下面

    2024年02月11日
    浏览(58)
  • 微信小程序——自定义组件组件的创建和引用,修改组件的样式隔离选项,stylesolation的可选值,properties属性,data数据,methods方法,数据监听器,用法,监听对象属性的变化

    ①在项目的根目录中,鼠标右键,创建 components - test 文件夹 ②在新建的 components - test 文件夹上,鼠标右键,点击\\\"新建 Component \\\" ③键入组件的名称之后回车,会自动生成组件对应的4个文件,后缀名分别为 js , json ,. wxml 和. wxss 注意,为了保证目录结构的清晰,建议把不同的

    2024年02月15日
    浏览(67)
  • 【MySQL 数据库】1、MySQL 的 DDL、DML、DQL 语句

    🎄 (1) MySQL 基础篇(初级工程师) ① MySQL 基础概念 ② SQL 语句 ③ 函数 ④ 约束 ⑤ 多表查询 ⑥ 事务 🎄 (2) MySQL 进阶篇(中级工程师) ① 存储引擎 ② 索引 ③ SQL 优化 ④ 视图、存储过程、触发器 ⑤ 锁 ⑥ InnoDB 核心 ⑦ MySQL 管理 🎄 (3) 运维篇(高级工程师) ① 日志 ② 主

    2024年02月05日
    浏览(46)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包