논리 뷰#
논리 뷰는 이름이 있고 매개변수가 없는 typesql 쿼리입니다. Supernova는 타입 검사, 정책 허용 판단, 스냅샷 선택, 실행 전에 이를 호출 쿼리에 확장합니다.
select customer_id, revenue
from finance.customer_revenue
where revenue > 1000논리 뷰의 의미#
논리 뷰는 재사용 가능한 쿼리 텍스트입니다. Iceberg 뷰가 아니며 데이터를 구체화하지 않습니다. 각 참조는 모호하지 않은 별칭을 가진 괄호로 감싼 파생 쿼리로 확장됩니다.
정의는 2부분 [schema, view] 또는 3부분 [catalog, schema, view] 이름을 사용합니다. 각 부분의 ASCII 대소문자를 구분하지 않지만 호출자는 범위가 닫혀 있고 승인된 정의 집합 1개를 제공해야 합니다.
확장 보장#
제공된 모든 정의는 정확히 1개의 쿼리를 포함해야 하며 위치, 이름, 물음표 매개변수가 없어야 합니다. 확장은 관계와 한정 이름의 범위를 이해하며 단순 텍스트 치환을 사용하지 않습니다. 상관 하위 쿼리가 생성된 별칭을 실수로 포착할 수 없습니다.
확장 아티팩트는 작성한 쿼리, 확장된 SQL, 사용한 모든 뷰, 각 정확한 정의의 SHA-256 다이제스트를 기록합니다. 이 출처 정보는 이후 단계의 식별에 참여합니다.
진단과 제한#
TS0800은 유효하지 않은 환경이나 정의를, TS0801은 순환을, TS0802는 제한 초과를, TS0803은 유효하지 않은 논리 뷰 문서를 보고합니다.
환경은 최대 4,096개 뷰와 64단계 확장을 허용합니다. 원시 최상위 SQL과 디코딩된 뷰 SQL은 확장 전에 크기가 제한되므로 유효하지 않은 환경은 부분 결과를 공개하지 않고 실패합니다.
영구적인 테이블이 필요하면 모델을 사용하세요. 구체화가 필요 없고 재사용과 타입 검사가 중요하면 논리 뷰를 사용하세요.