Criar a 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 uma visão lógica sobre uma ou mais mesas ou vistas.

OR REPLACE

Se a vista não existir, CREATE OR REPLACE VIEW é equivalente a CREATE VIEW . Se a vista existir, CREATE OR REPLACE VIEW é equivalente a ALTER VIEW .

[GLOBAL] TEMPORARY

TEMPORARY salta persistindo a definição de vista na metastore subjacente, se houver. Se GLOBAL for especificado, a vista pode ser acedida por diferentes sessões e mantida viva até que a sua aplicação termine; caso contrário, as vistas temporárias são centradas na sessão e serão automaticamente retiradas se a sessão terminar. Todas as visões temporárias globais estão ligadas a uma base de dados temporária preservada pelo global_temp sistema. O nome da base de dados é preservado e, portanto, os utilizadores não estão autorizados a criar/usar/largar esta base de dados. Deve usar o nome qualificado para aceder à visão temporária global.

Nota

Uma visão temporária definida num caderno não é visível em outros cadernos. Ver isolamento de cadernos.

(col_name1 [COMMENT col_comment1], ...)

Uma lista de colunas que define o esquema de visualização. Os nomes das colunas devem ser únicos com o mesmo número de colunas recuperadas por select_statement . Quando a lista de colunas não é dada, o esquema de visualização é o esquema de saída de select_statement .

TBLPROPERTIES

Pares de metadados de valor-chave.

AS select_statement

Uma SELECT declaração que define a vista. A declaração pode selecionar a partir de tabelas base ou outras vistas.

Importante

Não é possível especificar opções de fonte de dados, partição ou agrupamento, uma vez que uma vista não é materializada como uma tabela.

Exemplos

-- 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;