Hive 命令

时间:2020-02-23 14:41:27  来源:igfitidea点击:

在关于Apache Hive命令的本课中,我们将介绍HQL中Hive中最常见的命令,并执行最基本的操作,例如创建表,更改其模式等。

在本教程中,我们将使用Ubuntu 17.10(GNU/Linux 4.13.0-37-generic x86_64)计算机:Ubuntu版本

运行Hive命令的前提条件

在继续在计算机上运行Hive查询之前,我们还需要做一些其他事情:

  • Hive安装应完成
  • 需要基本的SQL知识

这些准备就绪后,请继续学习本程序,以了解有关运行配置单元命令的信息。

启动Hiveshell

使用简单的命令,您应该能够启动配置单元shell程序:

hive

运行数据库命令

我们将从主要执行数据库命令开始。
在下一节中,我们将转到管理表模式和数据的DDL命令。

使用元数据创建和描述数据库

使用Hive,在创建数据库时,可以很容易地将有用的元数据分配给数据库作为描述,作者和更多选项。
让我们在这里尝试其中一些选项:

CREATE DATABASE IF NOT EXISTS theitroad
COMMENT "Study BigData at theitroad"
LOCATION '/opt/hive/warehouse/jd_db'
with DBPROPERTIES ('createdby'='shubham', 'createdfor'='theitroad');

现在已经创建了数据库,我们可以通过描述数据库来查看元数据信息:

DESCRIBE DATABASE extended theitroad;

让我们看一下该命令的输出:描述数据库的元数据

修改数据库

分配给数据库的元数据不是永久的。
我们可以使用以下语法通过简单的Alter Database命令更改它:

ALTER (DATABASE) database_name SET DBPROPERTIES 
(property_name=property_value, ...);

我们还可以使用类似的命令修改Hive数据库的所有者:

ALTER (DATABASE) database_name SET OWNER [USER|ROLE] user_or_role;

让我们现在在这里尝试:

ALTER DATABASE theitroad
SET OWNER ROLE admin;

现在,当我们描述数据库时,我们可以看到所有者数据已更改:更改数据库角色

请注意,我们用大写字母编写Hive命令只是为了便于区分。这些命令不区分大小写。

显示所有数据库

就像SQL一样,我们可以使用Hive到目前为止存在的所有数据库:

SHOW DATABASES;

显示数据库

使用数据库

当我们想在特定数据库中运行某些DDL命令时,必须使用以下命令选择它:

USE theitroad;

一旦使用了特定的数据库,就只能其中运行与Table相关的命令。

Hive DDL命令

既然我们已经选择了一个特定的数据库,就可以在数据库中运行与Table相关的命令了。
我们的第一个示例将是为表定义一个架构。

定义表架构

让我们通过定义第一个表的架构开始使用Hive中的表。
基本语法在这里也几乎类似于SQL:

CREATE  TABLE [IF NOT EXISTS] [db_name.]table_name    -
[(col_name data_type [COMMENT col_comment], ...)]
[COMMENT table_comment]
[LOCATION hdfs_path]

让我们通过定义一个新表来使用上面的语法:

CREATE TABLE IF NOT EXISTS theitroad.lessons (
ID BIGINT COMMENT 'ID for each lesson contributed',
title STRING COMMENT 'title which will be shown to users',
link STRING COMMENT 'link to access the lesson')
COMMENT 'This table stores data related to lessons'
ROW FORMAT DELIMITED
FIELDS TERMINATED BY '|'
LINES TERMINATED BY '\n'
STORED AS TEXTFILE
LOCATION '/opt/hive/warehouse/theitroad.db/lessons';

我们也会在这里收到OK响应:创建表

Here, we defined a very simple schema for the Hive Table with metadata with comments and delimiters.

截断表中的所有数据

我们可以通过运行一个简单的truncate命令轻松清空Hive表:

TRUNCATE TABLE db_name.table_name;

删除表格

如果我们希望删除整个表及其数据,则可以简单地将其删除:

DROP TABLE [IF EXISTS] table_name [PURGE];

请注意," PURGE"是此处的重要选项。
如果使用" PURGE",则无法检索数据,因为没有此选项,表的数据将进入" .Trash/current-directory"。
使用此选项时,数据将被完全删除。

Hive DML命令

将数据插入Hive表也很容易。
我们可以使用以下插入命令:

INSERT INTO TABLE theitroad.lessons
VALUES (20353, 'Installing Hive on Ubuntu', 'theitroad.local/20353/install-apache-hive-ubuntu-hql-queries'), (20358, 'Installing Hadoop on Ubuntu', 'theitroad.local/20358/install-hadoop-on-ubuntu');

我们可以看到插入的数据为:

SELECT * FROM theitroad.lessons;

或者我们可以将数据限制为1行:

SELECT * FROM theitroad.lessons LIMIT 1;