뷰 소개
보기는 SQL 쿼리로 정의하는 가상 테이블입니다. 뷰를 사용하면 복잡한 쿼리 또는 제한된 데이터 세트에 쉽게 재사용할 수 있는 이름을 제공한 후 다른 사용자의 액세스를 승인할 수 있습니다. 뷰를 만든 후 사용자는 테이블과 마찬가지로 뷰를 쿼리할 수 있습니다. 쿼리 결과에는 뷰를 정의하는 쿼리에 지정된 테이블 및 필드 데이터만 포함됩니다.
뷰를 정의하는 쿼리는 뷰가 쿼리될 때마다 실행됩니다. 크거나 계산 비용이 높은 뷰를 자주 쿼리하는 경우 구체화된 뷰를 만드는 것이 좋습니다.
BigQuery 뷰는 일반적으로 다음과 같은 용도로 사용됩니다.
- 계산과 조인 논리를 공통 객체에 추상화하고 저장하여 쿼리 사용 간소화
- 기본 테이블에 액세스하지 않고 데이터 및 계산 로직의 하위 집합에 대한 액세스 제공
또한 Looker Studio와 같은 시각화 도구의 데이터 소스로 뷰를 사용할 수 있습니다.
구체화된 뷰 비교
뷰는 가상이며 데이터 세트에 대한 재사용 가능한 참조를 제공하지만 실제로 데이터를 저장하지는 않습니다. 구체화된 뷰는 일반 뷰와 같이 SQL로 정의되지만 BigQuery가 성능 개선을 위해 사용하는 데이터를 물리적으로 저장합니다. 추가 비교는 구체화된 뷰 기능을 참조하세요.
뷰 제한사항
BigQuery 뷰에는 다음 제한사항이 적용됩니다.
- 뷰는 읽기 전용입니다. 예를 들어 데이터를 삽입, 업데이트 또는 삭제하는 쿼리는 실행할 수 없습니다.
- 뷰를 포함하는 데이터 세트와 뷰에서 참조되는 테이블을 포함하는 데이터 세트가 동일한 위치에 있어야 합니다.
- 뷰 내부의 참조는 데이터 세트로 한정되어야 합니다. 기본 데이터 세트는 뷰 본문에 영향을 주지 않습니다.
TableDataList
JSON API 메서드를 사용하여 뷰에서 데이터를 검색할 수 없습니다. 자세한 내용은 Tabledata: list를 참조하세요.- 뷰를 사용할 때는 GoogleSQL과 legacy SQL 쿼리를 혼합할 수 없습니다. GoogleSQL 쿼리는 legacy SQL 문법을 사용하여 정의된 뷰를 참조할 수 없습니다.
- 뷰에서 쿼리 매개변수를 참조할 수 없습니다.
- 기본 테이블의 스키마는 뷰를 만들 때 뷰와 함께 저장됩니다. 뷰를 만든 후 열이 추가, 삭제 또는 수정된 경우 뷰가 자동으로 업데이트되지 않으며 뷰 SQL 정의가 변경되거나 뷰를 다시 만들 때까지 보고된 스키마가 부정확한 상태로 유지됩니다. 보고된 스키마가 정확하지 않더라도 제출된 쿼리는 모두 정확한 결과를 생성합니다.
- 자동으로 legacy SQL 뷰를 GoogleSQL 문법으로 업데이트할 수 없습니다. 뷰를 정의하는 데 사용된 쿼리를 수정하려면 다음을 사용하면 됩니다.
- Google Cloud 콘솔의 쿼리 수정 옵션
- bq 명령줄 도구의
bq update --view
명령어 - BigQuery 클라이언트 라이브러리
- update 또는 patch API 메서드
- 뷰를 정의하는 SQL 쿼리에 임시 사용자 정의 함수나 임시 테이블을 포함할 수 없습니다.
- 와일드 카드 테이블 쿼리에서 뷰를 참조할 수 없습니다.
뷰 할당량
뷰에 적용되는 할당량과 한도에 대한 자세한 내용은 뷰 한도를 참조하세요.
뷰 정의에 사용되는 SQL 쿼리에는 쿼리 작업에 대한 할당량도 적용됩니다.
뷰 가격 책정
BigQuery의 뷰는 구체화된 뷰가 아닌 논리적 뷰입니다. 뷰가 구체화되지 않기 때문에, 뷰를 정의하는 쿼리는 뷰가 쿼리될 때마다 실행됩니다. 쿼리 요금은 최상위 쿼리에서 직접 또는 간접적으로 참조되는 모든 테이블 필드의 데이터 총량에 따라 부과됩니다. 자세한 내용은 쿼리 가격 책정을 참조하세요.
뷰 보안
BigQuery에서 뷰에 대한 액세스를 제어하려면 승인된 뷰를 참조하세요.
다음 단계
- 뷰 만들기에 대한 자세한 내용은 뷰 만들기를 참조하세요.
- 승인된 뷰 만들기에 대한 자세한 내용은 승인된 뷰 만들기를 참조하세요.
- 뷰 메타데이터 가져오기에 대한 자세한 내용은 뷰 정보 가져오기를 참조하세요.
- 뷰 관리에 대한 자세한 내용은 뷰 관리를 참조하세요.