Impala - Alter Table
La instrucción Alter table en Impala se utiliza para realizar cambios en una tabla determinada. Con esta declaración, podemos agregar, eliminar o modificar columnas en una tabla existente y también podemos cambiarle el nombre.
Este capítulo explica varios tipos de declaraciones alter con sintaxis y ejemplos. En primer lugar, suponga que tenemos una tabla llamadacustomers en el my_db base de datos en Impala, con los siguientes datos
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
Y, si obtiene la lista de tablas en la base de datos my_db, puedes encontrar el customers tabla en ella como se muestra a continuación.
[quickstart.cloudera:21000] > show tables;
Query: show tables
+-----------+
| name |
+-----------+
| customers |
| employee |
| student |
| student1 |
+-----------+
Alterando el nombre de una mesa
Sintaxis
La sintaxis básica de ALTER TABLE para cambiar el nombre de una tabla existente es el siguiente:
ALTER TABLE [old_db_name.]old_table_name RENAME TO [new_db_name.]new_table_name
Ejemplo
A continuación, se muestra un ejemplo de cómo cambiar el nombre de la tabla utilizando el alterdeclaración. Aquí estamos cambiando el nombre de la mesa.customers a los usuarios.
[quickstart.cloudera:21000] > ALTER TABLE my_db.customers RENAME TO my_db.users;
Después de ejecutar la consulta anterior, Impala cambia el nombre de la tabla según sea necesario, mostrando el siguiente mensaje.
Query: alter TABLE my_db.customers RENAME TO my_db.users
Puede verificar la lista de tablas en la base de datos actual usando el show tablesdeclaración. Puedes encontrar la tabla llamadausers en vez de customers.
Query: show tables
+----------+
| name |
+----------+
| employee |
| student |
| student1 |
| users |
+----------+
Fetched 4 row(s) in 0.10s
Agregar columnas a una tabla
Sintaxis
La sintaxis básica de ALTER TABLE para agregar columnas a una tabla existente es la siguiente:
ALTER TABLE name ADD COLUMNS (col_spec[, col_spec ...])
Ejemplo
La siguiente consulta es un ejemplo que demuestra cómo agregar columnas a una tabla existente. Aquí estamos agregando dos columnas account_no y phone_number (ambas son del tipo de datos bigint) alusers mesa.
[quickstart.cloudera:21000] > ALTER TABLE users ADD COLUMNS (account_no BIGINT,
phone_no BIGINT);
Al ejecutar la consulta anterior, agregará las columnas especificadas a la tabla llamada student, mostrando el siguiente mensaje.
Query: alter TABLE users ADD COLUMNS (account_no BIGINT, phone_no BIGINT)
Si verifica el esquema de la tabla users, puede encontrar las columnas recién agregadas como se muestra a continuación.
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
Quitar columnas de una tabla
Sintaxis
La sintaxis básica de ALTER TABLE para DROP COLUMN en una tabla existente es la siguiente:
ALTER TABLE name DROP [COLUMN] column_name
Ejemplo
La siguiente consulta es un ejemplo de cómo eliminar columnas de una tabla existente. Aquí estamos eliminando la columna llamadaaccount_no.
[quickstart.cloudera:21000] > ALTER TABLE users DROP account_no;
Al ejecutar la consulta anterior, Impala elimina la columna denominada account_no mostrando el siguiente mensaje.
Query: alter TABLE users DROP account_no
Si verifica el esquema de la tabla users, no puede encontrar la columna llamada account_no desde que fue eliminado.
[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
Cambiar el nombre y el tipo de una columna
Sintaxis
La sintaxis básica de ALTER TABLE para change the name and datatype de una columna en una tabla existente es la siguiente:
ALTER TABLE name CHANGE column_name new_name new_type
Ejemplo
A continuación se muestra un ejemplo de cómo cambiar el nombre y el tipo de datos de una columna mediante la instrucción alter. Aquí estamos cambiando el nombre de la columna.phone_no to email y su tipo de datos para string.
[quickstart.cloudera:21000] > ALTER TABLE users CHANGE phone_no e_mail string;
Al ejecutar la consulta anterior, Impala realiza los cambios especificados y muestra el siguiente mensaje.
Query: alter TABLE users CHANGE phone_no e_mail string
Puede verificar los metadatos de los usuarios de la tabla utilizando el describedeclaración. Puede observar que Impala ha realizado los cambios necesarios en la columna especificada.
[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
Modificar una tabla usando Hue
Abra el editor de consultas Impala y escriba el alter declaración en él y haga clic en el botón ejecutar como se muestra en la siguiente captura de pantalla.
Al ejecutar la consulta anterior, cambiará el nombre de la tabla customers a users. De la misma forma, podemos ejecutar todos losalter consultas.