Impala-테이블 변경
Impala의 Alter 테이블 문은 주어진 테이블에서 변경을 수행하는 데 사용됩니다. 이 문을 사용하여 기존 테이블에서 열을 추가, 삭제 또는 수정할 수 있으며 이름을 바꿀 수도 있습니다.
이 장에서는 구문 및 예제와 함께 다양한 유형의 alter 문에 대해 설명합니다. 우선 우리가customers 에 my_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 쿼리.