쿼리 및 작업 기록 뷰 및 함수: 새 열¶
현재 Snowflake 릴리스에서는 쿼리 및 작업 기록 뷰와 함수의 출력에 새 열이 포함됩니다. 영향을 받는 뷰와 함수에는 다음이 포함됩니다.
다음 Account Usage 뷰:
다음 Information Schema 테이블 함수:
이러한 뷰와 함수의 출력에는 다음과 같은 새 열이 포함됩니다.
열 이름 |
데이터 타입 |
설명 |
---|---|---|
|
TEXT |
SQL 문의 표준화된 텍스트를 기반으로 계산된 해시 값입니다. |
|
NUMBER |
|
|
TEXT |
리터럴이 매개 변수화된 후 쿼리 텍스트의 해시 값입니다. |
|
NUMBER |
|
이러한 뷰 중에서 모든 열(SELECT *)을 선택하는 뷰를 이전에 정의한 경우 뷰를 쿼리하면 오류가 반환됩니다. CREATE OR REPLACE VIEW 명령을 사용하여 뷰를 다시 만들어야 합니다.
예를 들어, TASK_HISTORY 뷰에서 모든 열을 선택한 뷰를 정의했다고 가정해 보겠습니다.
CREATE OR REPLACE VIEW my_task_history
AS SELECT * FROM SNOWFLAKE.ACCOUNT_USAGE.TASK_HISTORY;
- 이전:
뷰(이 예에서는
my_task_history
)를 쿼리하면 뷰에서 결과가 반환됩니다.- 현재:
뷰(이 예에서는
my_task_history
)를 쿼리하면 뷰의 열 수에 대한 오류가 반환됩니다.View definition for MY_DB.MY_SCHEMA.MY_TASK_HISTORY' declared 22 column(s), but view query produces 27 column(s).
CREATE VIEW 사용법 노트 에 설명한 대로, 뷰가 기본 테이블이나 뷰에서 모든 열을 선택하는 경우 새 열이 기본 테이블이나 뷰에 추가될 때 뷰는 자동으로 업데이트되지 않습니다. 뷰를 쿼리하면 열 관련 오류가 반환됩니다.
이 오류를 방지하려면 뷰를 다시 만들어야 합니다. 예를 들어, (향후 추가되는 열로 인한 문제를 방지하기 위해) 특정 열을 선택한 상태에서 위 예의 뷰를 다시 만들려면 다음을 수행하십시오.
CREATE OR REPLACE VIEW my_task_history
AS SELECT query_text, completed_time FROM SNOWFLAKE.ACCOUNT_USAGE.TASK_HISTORY;
또한 (예컨대 CREATE TABLE … LIKE SNOWFLAKE.ACCOUNT_USAGE.TASK_HISTORY를 사용하여) 이러한 뷰 중 하나와 동일한 열이 있는 테이블을 생성하고 해당 뷰에서 테이블로 행을 복사하는 경우 테이블에 새 열을 추가해야 합니다. 뷰에 추가된 것과 동일한 열을 테이블에 추가하려면 ALTER TABLE … ADD COLUMN 명령을 사용하십시오.
참조: 1147