Hive는 명령이 많기 때문에 대부분의 기존 SQL 명령을 지원합니다. 가장 일반적으로 사용되는 Hive DDL (Data Definition Language, 데이터 정의 언어) 명령을 예제와 함께 알아 보겠습니다.

Beeline을 사용하여 Hive에 연결 된 상태에서 시작해야 한다.

Hive DDL database Commands


여러 Hive DDL 명령 중에서 가장 일반적으로 사용되는 DDL 명령에 대해 설명합니다. DDL 명령은 데이터베이스, 테이블을 생성(Create)하고, 테이블의 구조를 수정(modify)하고, 데이터베이스와 테이블을 삭제(drop)하는 데 사용됩니다.

Create Database

CREATE DATABASE IF NOT EXISTS speech_db;

데이터베이스가 이미 존재하는 경우 데이터베이스 db_name이 이미 존재한다는 오류가 표시됩니다. 데이터베이스를 생성하기 전에 이미 존재하는지 확인하려면 IF NOT EXISTS 절을 사용하십시오. LOCATION 절을 사용하여 데이터베이스의 위치를 변경할 수 있습니다.

기본적으로 Hive는 데이터베이스를웨어 하우스 위치 / user / hive / warehouse에 저장합니다. 아래 명령은 데이터베이스의 위치를 변경합니다.

CREATE DATABASE temp LOCATION '/user/hive/warehouse';

Show Databases

0: jdbc:hive2://> SHOW DATABASES;
OK
+-----------------------+
|     database_name     |
+-----------------------+
| aa                    |
| speech_db             |
+-----------------------+
51 rows selected (0.117 seconds)

Use Database

0: jdbc:hive2://>USE speech_db;

Describe Database

0: jdbc:hive2://>DESCRIBE DATABASE speech_db;
0: jdbc:hive2://>DESCRIBE SCHEMA speech_db; 
0: jdbc:hive2://>DESCRIBE DATABASE EXTENDED speech_db;
0: jdbc:hive2://>DESCRIBE SCHEMA EXTENDED speech_db;
0: jdbc:hive2://>DESCRIBE DATABASE speech_db;
+----------+----------+---------------------------------------------+-------------+-------------+-------------+
| db_name  | comment  |                  location                   | owner_name  | owner_type  | parameters  |
+----------+----------+---------------------------------------------+-------------+-------------+-------------+
| speech_db|          | hdfs://hadoop/user/speech_db.db             | hdfs        | USER        |             |
+----------+----------+---------------------------------------------+-------------+-------------+-------------+
1 row selected (0.07 seconds)
0: jdbc:hive2://>

Drop Database

jdbc:hive2://>DROP DATABASE speech_db;
jdbc:hive2://>DROP DATABASE speech_db CASCADE;
jdbc:hive2://>DROP DATABASE speech_db RESTRICT;

Hive DDL Table Commands


Hive는 Managed, External, Temporary and Transactional 테이블과 같은 다양한 유형의 테이블을 지원합니다. 여기서 예제를 간단하게 만들기 위해 Hive Managed 테이블을 생성하겠습니다.

Hive Managed 테이블은 Hive가 HDFS의 메타 데이터 및 실제 테이블 데이터 / 파일을 소유하고 관리하는 내부 테이블입니다.

Create Table

CREATE TABLE IF NOT EXISTS speech_db.user (
 id int,
 name string,
 age int,
 gender string )
 COMMENT 'Employee Table'
 ROW FORMAT DELIMITED
 FIELDS TERMINATED BY ',';

Show Tables

SHOW TABLES; // This shows all tables from the current database
SHOW TABLES in emp; // This shows all tables in the emp database
+--------------------+
|      tab_name      |
+--------------------+
| user.              |
+--------------------+
1 rows selected (0.067 seconds)
0: jdbc:hive2://>

Describe Table

DESCRIBE FORMATTED user;
DESCRIBE EXTENDED user;

Truncate Table

Truncate table은 테이블을 자르는 데 사용되며 이는 테이블의 모든 내용과 테이블의 구조를 삭제함을 의미합니다.

TRUNCATE TABLE speech_db;

Alter Table

ALTER TABLE user RENAME TO user2;

Drop Table

DROP TABLE user2;
DROP TABLE speech_db.user2;
DROP TABLE IF EXISTS user2 PURGE;

+ Recent posts