Impala-테이블 변경

Impala의 Alter 테이블 문은 주어진 테이블에서 변경을 수행하는 데 사용됩니다. 이 문을 사용하여 기존 테이블에서 열을 추가, 삭제 또는 수정할 수 있으며 이름을 바꿀 수도 있습니다.

이 장에서는 구문 및 예제와 함께 다양한 유형의 alter 문에 대해 설명합니다. 우선 우리가customersmy_db Impala의 데이터베이스, 다음 데이터 포함

ID   NAME     AGE   ADDRESS    SALARY
--- --------- ----- ----------- --------
1   Ramesh    32    Ahmedabad   20000
2   Khilan    25    Delhi       15000
3   Hardik    27    Bhopal      40000
4   Chaitali  25    Mumbai      35000
5   kaushik   23    Kota        30000
6   Komal     22    Mp          32000

그리고 데이터베이스의 테이블 목록을 가져 오면 my_db, 당신은 찾을 수 있습니다 customers 아래에 표시된대로 그 안에 표.

[quickstart.cloudera:21000] > show tables;

Query: show tables 
+-----------+ 
| name      | 
+-----------+ 
| customers | 
| employee  | 
| student   | 
| student1  | 
+-----------+

테이블 이름 변경

통사론

기본 구문 ALTER TABLE 기존 테이블의 이름을 바꾸는 방법은 다음과 같습니다.

ALTER TABLE [old_db_name.]old_table_name RENAME TO [new_db_name.]new_table_name

다음은 사용하여 테이블 이름을 변경하는 예입니다. alter성명서. 여기서 우리는 테이블의 이름을 변경합니다customers 사용자에게.

[quickstart.cloudera:21000] > ALTER TABLE my_db.customers RENAME TO my_db.users;

위 쿼리를 실행 한 후 Impala는 필요에 따라 테이블 이름을 변경하고 다음 메시지를 표시합니다.

Query: alter TABLE my_db.customers RENAME TO my_db.users

다음을 사용하여 현재 데이터베이스의 테이블 목록을 확인할 수 있습니다. show tables성명서. 다음과 같은 테이블을 찾을 수 있습니다.users 대신에 customers.

Query: show tables 
+----------+ 
| name     | 
+----------+ 
| employee | 
| student  | 
| student1 | 
| users    | 
+----------+ 
Fetched 4 row(s) in 0.10s

테이블에 열 추가

통사론

기본 구문 ALTER TABLE 기존 테이블에 열을 추가하는 방법은 다음과 같습니다.

ALTER TABLE name ADD COLUMNS (col_spec[, col_spec ...])

다음 쿼리는 기존 테이블에 열을 추가하는 방법을 보여주는 예입니다. 여기에 account_no 및 phone_number (둘 다 bigint 데이터 유형 임) 열을users 표.

[quickstart.cloudera:21000] > ALTER TABLE users ADD COLUMNS (account_no BIGINT, 
phone_no BIGINT);

위의 쿼리를 실행하면 지정된 열을 이름이 지정된 테이블에 추가합니다. student, 다음 메시지를 표시합니다.

Query: alter TABLE users ADD COLUMNS (account_no BIGINT, phone_no BIGINT)

테이블의 스키마를 확인하는 경우 users, 아래와 같이 새로 추가 된 열을 찾을 수 있습니다.

quickstart.cloudera:21000] > describe users;
 
Query: describe users 
+------------+--------+---------+ 
| name       | type   | comment | 
+------------+--------+---------+ 
| id         | int    |         | 
| name       | string |         | 
| age        | int    |         |
| address    | string |         | 
| salary     | bigint |         | 
| account_no | bigint |         | 
| phone_no   | bigint |         | 
+------------+--------+---------+ 
Fetched 7 row(s) in 0.20s

테이블에서 열 삭제

통사론

ALTER TABLE의 기본 구문은 DROP COLUMN 기존 테이블에서 다음과 같습니다-

ALTER TABLE name DROP [COLUMN] column_name

다음 쿼리는 기존 테이블에서 열을 삭제하는 예입니다. 여기에서 이름이 지정된 열을 삭제합니다.account_no.

[quickstart.cloudera:21000] > ALTER TABLE users DROP account_no;

위 쿼리를 실행하면 Impala는 다음 메시지를 표시하는 account_no라는 열을 삭제합니다.

Query: alter TABLE users DROP account_no

테이블의 스키마를 확인하는 경우 users, 이름이 지정된 열을 찾을 수 없습니다. account_no 삭제 되었기 때문에.

[quickstart.cloudera:21000] > describe users; 

Query: describe users 
+----------+--------+---------+ 
| name     | type   | comment | 
+----------+--------+---------+ 
| id       | int    |         | 
| name     | string |         | 
| age      | int    |         | 
| address  | string |         | 
| salary   | bigint |         | 
| phone_no | bigint |         |
+----------+--------+---------+ 
Fetched 6 row(s) in 0.11s

열 이름 및 유형 변경

통사론

ALTER TABLE의 기본 구문은 change the name and datatype 기존 테이블의 열은 다음과 같습니다-

ALTER TABLE name CHANGE column_name new_name new_type

다음은 alter 문을 사용하여 열의 이름과 데이터 유형을 변경하는 예입니다. 여기에서 열 이름을 변경합니다.phone_no to email 및 데이터 유형 string.

[quickstart.cloudera:21000] > ALTER TABLE users CHANGE phone_no e_mail string;

위의 쿼리를 실행하면 Impala는 지정된 변경을 수행하고 다음 메시지를 표시합니다.

Query: alter TABLE users CHANGE phone_no e_mail string

다음을 사용하여 테이블 사용자의 메타 데이터를 확인할 수 있습니다. describe성명서. Impala가 지정된 열에 필요한 변경을 수행했음을 확인할 수 있습니다.

[quickstart.cloudera:21000] > describe users; 
Query: describe users 
+----------+--------+---------+ 
| name     | type   | comment | 
+----------+--------+---------+ 
| id       | int    |         | 
| name     | string |         | 
| age      | int    |         | 
| address  | string |         | 
| salary   | bigint |         | 
| phone_no | bigint |         |
+----------+--------+---------+ 
Fetched 6 row(s) in 0.11s

Hue를 사용하여 테이블 변경

Impala 쿼리 편집기를 열고 alter 다음 스크린 샷과 같이 실행 버튼을 클릭합니다.

위 쿼리를 실행하면 테이블 이름이 변경됩니다. customers ...에 users. 같은 방식으로 모든 것을 실행할 수 있습니다.alter 쿼리.