Skapa vy

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

Definiera en logisk vy för en eller flera tabeller eller vyer.

OR REPLACE

Om vyn inte finns motsvarar CREATE OR REPLACE VIEWCREATE VIEW . Om vyn finns motsvarar CREATE OR REPLACE VIEWALTER VIEW .

[GLOBAL] TEMPORARY

TEMPORARY hoppar över att bevara vydefinitionen i det underliggande metaarkivet, om det finns någon. Om anges kan vyn nås av olika sessioner och hållas vid liv tills programmet avslutas. Annars är de tillfälliga vyerna sessionsomfångsbaserade och tas bort automatiskt om GLOBAL sessionen avslutas. Alla globala tillfälliga vyer är knutna till en systembevarad temporär databas global_temp . Databasnamnet bevaras och användarna kan därför inte skapa/använda/ta bort den här databasen. Du måste använda det kvalificerade namnet för att få åtkomst till den globala tillfälliga vyn.

Anteckning

En tillfällig vy som definierats i en notebook-dator visas inte i andra notebook-filer. Se Notebook-isolering.

(col_name1 [COMMENT col_comment1], ...)

En kolumnlista som definierar vyschemat. Kolumnnamnen måste vara unika med samma antal kolumner som hämtas av select_statement . Om kolumnlistan inte anges är visningsschemat utdataschemat för select_statement .

TBLPROPERTIES

Nyckel/värde-par för metadata.

AS select_statement

En SELECT -instruktion som definierar vyn. Instruktionen kan välja från bastabeller eller andra vyer.

Viktigt

Du kan inte ange alternativ för datakälla, partition eller klustring eftersom en vy inte är materialiserad som en tabell.

Exempel

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