뷰 만들기

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

하나 이상의 테이블 또는 뷰에 대해 논리 뷰를 정의 합니다.

OR REPLACE

뷰가 없는 경우 CREATE OR REPLACE VIEW 는와 같습니다 CREATE VIEW . 뷰가 있는 경우 CREATE OR REPLACE VIEW 는와 같습니다 ALTER VIEW .

[GLOBAL] TEMPORARY

TEMPORARY 기본 metastore (있는 경우)에서 뷰 정의를 유지 하는 것을 건너뜁니다. GLOBAL을 지정 하면 다른 세션에서 뷰를 액세스할 수 있으며 응용 프로그램이 종료 될 때까지 활성 상태로 유지 됩니다. 그렇지 않으면 임시 뷰는 세션이 범위가 되 고 세션이 종료 되 면 자동으로 삭제 됩니다. 모든 전역 임시 뷰는 시스템 보존 임시 데이터베이스에 연결 됩니다 global_temp . 데이터베이스 이름이 유지 되므로 사용자는이 데이터베이스를 만들거나 사용/삭제할 수 없습니다. 전역 임시 뷰에 액세스 하려면 정규화 된 이름을 사용 해야 합니다.

참고

노트북에 정의 된 임시 보기는 다른 노트북에는 표시 되지 않습니다. 노트북 격리를 참조 하세요.

(col_name1 [COMMENT col_comment1], ...)

뷰 스키마를 정의 하는 열 목록입니다. 열 이름은에서 검색 한 열 수와 동일한 수의 열로 고유 해야 합니다 select_statement . 열 목록을 지정 하지 않으면 뷰 스키마는의 출력 스키마입니다 select_statement .

TBLPROPERTIES

메타 데이터 키-값 쌍입니다.

AS select_statement

SELECT뷰를 정의 하는 문입니다. 문은 기본 테이블이 나 다른 뷰에서 선택할 수 있습니다.

중요

뷰가 테이블과 같이 구체화 되지 않으므로 데이터 원본, 파티션 또는 클러스터링 옵션을 지정할 수 없습니다.

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