Creación de vista

CREATE [OR REPLACE] [[GLOBAL] TEMPORARY] VIEW [db_name.]view_name
  [(col_name1 [COMMENT col_comment1], ...)]
  [COMMENT table_comment]
  [TBLPROPERTIES (key1=val1, key2=val2, ...)]
    AS select_statement

Defina una vista lógica en una o varias tablas o vistas.

OR REPLACE

Si la vista no existe, CREATE OR REPLACE VIEW es equivalente a CREATE VIEW . Si la vista existe, CREATE OR REPLACE VIEW es equivalente a ALTER VIEW .

[GLOBAL] TEMPORARY

TEMPORARY omite la conservación de la definición de vista en el metastore subyacente, si lo hay. Si se especifica , las distintas sesiones pueden acceder a la vista y mantenerse activa hasta que finalice la aplicación; de lo contrario, las vistas temporales tienen ámbito de sesión y se eliminarán automáticamente si finaliza la GLOBAL sesión. Todas las vistas temporales globales están vinculadas a una base de datos temporal conservada por el global_temp sistema. El nombre de la base de datos se conserva y, por tanto, los usuarios no pueden crear, usar ni quitar esta base de datos. Debe usar el nombre completo para acceder a la vista temporal global.

Nota

Una vista temporal definida en un cuaderno no es visible en otros cuadernos. Consulte Aislamiento del cuaderno.

(col_name1 [COMMENT col_comment1], ...)

Lista de columnas que define el esquema de vista. Los nombres de columna deben ser únicos con el mismo número de columnas recuperadas por select_statement . Cuando no se asigna la lista de columnas, el esquema de vista es el esquema de salida de select_statement .

TBLPROPERTIES

Pares clave-valor de metadatos.

AS select_statement

Instrucción SELECT que define la vista. La instrucción puede seleccionar entre tablas base u otras vistas.

Importante

No se pueden especificar opciones de origen de datos, partición o agrupación en clústeres, ya que una vista no se materializa como una tabla.

Ejemplos

-- Create a persistent view view_deptDetails in database1. The view definition is recorded in the underlying metastore
CREATE VIEW database1.view_deptDetails
  AS SELECT * FROM company JOIN dept ON company.dept_id = dept.id;

-- Create or replace a local temporary view from a persistent view with an extra filter
CREATE OR REPLACE TEMPORARY VIEW temp_DeptSFO
  AS SELECT * FROM database1.view_deptDetails WHERE loc = 'SFO';

-- Access the base tables through the temporary view
SELECT * FROM temp_DeptSFO;

-- Create a global temp view to share the data through different sessions
CREATE GLOBAL TEMP VIEW global_DeptSJC
  AS SELECT * FROM database1.view_deptDetails WHERE loc = 'SJC';

-- Access the global temp views
SELECT * FROM global_temp.global_DeptSJC;

-- Drop the global temp view, temp view, and persistent view.
DROP VIEW global_temp.global_DeptSJC;
DROP VIEW temp_DeptSFO;
DROP VIEW database1.view_deptDetails;