hive DDL操作

一、Hive DDL 操作
Hive DDL 用于定义 Hive 数据库模式,其命令包括 create、drop、alter、truncate、show和 describe 等,主要是对数据库和表进行创建、修改、删除等操作。
1.数据厍操作
(1)创建数据库
【语法】
CREATE (DATABASE/SCHEMA) [IF NOT EXISTS] database name
[COMMENT database_comment]
[LOCATION hdfs_path]
[WITH DBPROPERTIES
(property_ name-property_value,***)];
(2)修改数据库
【语法】
ALTER (DATABASE|SCHEMA) database_name
SET DEPROPERTIES(property_ name-property_ value,.......)
(3)删除数据库
【语法】
DROP (DATABASE|SCHEMA) [IF EXISTS] database name [RESTRICT|CASCADE];
默认情况下使用 RESTRICT 删除数据库。如果数据库非空,则使用 RESTRICT 删除数据库将会失败,此时须使用 CASCADE 级联删除数据库。
2.表操作

(1)创建表
【语法】
CREATE [TEMPORARY] [EXTERNAL] TABLE [IF NOT EXISTS] [db_ name.)table name [(col data_type [COMMENT col
_comment], ... [constraint_specification])]
[COMMENT table_comment]

(2)修改表
修改表也括重命名、添加列、更新列等操作。
表重命名的语法如下。
【语法】
ALTER TABLE table name RENAME TO new table name.

3. DDL 其他常用命令
除了对数据库和表的创建和修改外,DDL还包括其他常用操作

二、Hive DML 操作
1.1 数据转载与插入
一般使用两种方式实现数据装载,分别是load和insert命令,二者有明显的区别。

        > load命令不对数据进行任何转换,只是简单地将数据复制或者移动至Hive 表对应的位置。
        > insert 命令将会执行MapReduce 作业并将数据插入至Hive表中,一般使用
较少。
(1)load命令
【语法】
LOAD DATA [LOCAL] INPATH'filepat
OVERWRITE]INTO TABLE table name [PARTITION(partcoll=val1,partcol2-val2..….)]

        >LOCAL:限制为本地文件系统路径,如果没有该关键字则是HDFS路径。>OVERWRITE:覆盖目标文件夹中的数据,如果没有该关键字且目标文件夹中已存在同名文件,将保留之前的文件,新文件名后缀以自动序号区分。
        > PARTITION:如果目标表是分区表,须使用该关键字为每个分区键指定一个值。

1.2数据更新、删除与合并
        从0.14版本起Hive 支持数据更新与删除操作,从2.2版本起Hive支持数据合并操
是数据仓库解决方案,不适合进行更新、删除等事务操作。

1.3 数据导入/导出
(1) export
【语法】
EXPORT TABLE table name [PARTITIO
(partcol=partval..)] TO 'export_target path'
例如:
        hive> export table emp to '/tmp/emp";
上述命令将导出emp表至HDFS目录/tmp/emp,包括其元数据与实际数据。在实际使用过程中,通常也利用insert命令完成数据的导出。

【语法】
INSERT OVERWRITE [LOCAL] DIRECTORY directory SELECT... FROM.
例如:
hive> insert overwrite local directory'/home/hadoop/hive/empdb.emp' select * from emp;
(2) import
【语法】
IMPORT[[EXTERNAL]TABLE new_or_original tablename [PARTITION(partcoll=vall,….]
FROM 'source_ path' [LOCATION 'import target path']
例如:
hive> import table emp new from'/tmp/emp';
上述代码将向HDFS目录/tmp/emp导入数据并生成新的内部表emp_new。

1.4数据执行计划查询


Hive 提供explain命令,可显示数据查询的执行计划。
【语法】
EXPLAIN [EXTENDEDlASTDEPENDENCYAUTHORIZATIONILOCKSIVECTORIZATION] query
例如:
hive> explain select * from emp;

三、Hive Shell 操作
1.1Hive 命令行
        前面提到,无论是CLI还是Beeline, Hive Shell 都可以通过两种模式运行,即交互模式与命令行模式。

【语法】
hive [-hiveconf x=y]* [<-i filename>]* [<-f filename>k-e query-string>] [-S] [-d]
主要参数使用说明如下。

_i:从文件初始化HQL。
-e:从命令行执行指定的HQL。
2024.04
-f:执行HQL脚本,与-作用类似。
-S:静默模式,在交互式模式中仅输出主要信息,即去掉“OK”和“Time taken...
-d:自定义变量,以便在HQL脚本中使用。
-hiveconfx=y:配置Hive/Hadoop参数。
示例2-9
使用Hive命令行运行一个查询。
输入命令:
$  hive -e'select count(1) from empdb.emp'
输出结果:
OK

4
Time taken:52.286 seconds, Fetched: 4 row(s)

1.2Hive 参数配置方式
(1)配置文件设定参数
        用户自定义配置文件:SHIVE_HOME/conf/hive-site.xml,全局永久配置,修改后需要重启Hive服务。
(2)命令行设定参数
        启动Hive 客户端(或其处于Server 模式)时,可以通过在命令行添加-hiveconf param—value 来设定参数,例如:
                $ hive -hiveconf hive.root.logger=INFO,console
        这一设定只对本次启动的Session有效。如果以Server 模式启动,则对所有请求的Session 都有效,例如:
                $ hive --service hiveserver2 --hiveconf hive.root.logger-INFO,console
(3)SET 关键字设定参数
        可以在HQL中通过使用 SET 关键字来设定参数,这一设定的作用域也是Session级别的,例如:
         set mapred.reduce.tasks=100;
        上述3种设定方式的优先级依次递增,即SET关键字设定参数覆盖命令行设定参数,命令行设定参数又覆盖配置文件设定参数。

  • 14
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Hive表的DDL操作是指对Hive表进行定义、创建、修改和删除的操作。通过HiveDDL语句可以方便地管理和操作Hive表,在数据仓库中进行数据的存储和查询分析。 首先,Hive表的DDL操作包括创建表、删除表、修改表结构等。通过CREATE TABLE语句可以在Hive中创建新的表,并指定表的名称、列信息、分区信息以及其他属性。而DROP TABLE语句可以用来删除已存在的表,释放存储空间。此外,Hive还支持ALTER TABLE语句,允许对表进行修改,比如增加、删除、重命名列等操作。 其次,Hive表的DDL操作还包括对表的分区管理。通过ALTER TABLE语句,可以在表中添加、删除、修改分区,以便更加灵活地组织和管理数据。 再次,DDL操作还包括对表的存储格式和存储位置的定义。通过ALTER TABLE语句,可以修改表的存储格式,比如将表存储为文本文件或Parquet文件等。同时,也可以通过ALTER TABLE语句来指定表的存储位置,可以将数据存储到HDFS中的指定目录,或者关联其他外部存储系统。 最后,Hive表的DDL操作还支持对表的权限管理。通过GRANT和REVOKE语句,可以授权和撤销用户对表的访问、修改、删除等权限,保证数据的安全性和访问的控制。 综上所述,Hive表的DDL操作提供了一系列强大的功能,可以方便地对表进行定义、创建、修改和删除。通过DDL操作,我们可以更好地管理和维护数据仓库中的表,并灵活地进行数据查询和分析。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值