논리적 뷰 및 구체화된 뷰 개요
이 문서에서는 BigQuery의 논리적 뷰와 구체화된 뷰를 설명하고 비교합니다. 최신 데이터 웨어하우징에서 뷰는 원시 데이터와 비즈니스 인텔리전스 간의 중요한 추상화 계층 역할을 합니다. BigQuery에서 설계자는 일반적으로 논리적 (표준) 뷰와 구체화된 뷰라는 두 가지 유형 중에서 선택합니다. 이러한 뷰는 공통 인터페이스를 공유하지만 기본 메커니즘, 성능 프로필, 비용 영향은 다릅니다.
논리적 뷰
논리 (표준) 뷰는 SQL 쿼리로 정의하는 가상 테이블입니다. 실제 데이터를 저장하지 않고 기본 기본 테이블에서 데이터를 가져오는 데 필요한 쿼리 로직을 저장합니다.
논리 뷰를 쿼리하면 BigQuery 쿼리 엔진이 뷰를 기본 쿼리로 확장합니다. 이 프로세스는 BigQuery가 뷰가 호출될 때마다 다시 실행한다는 것을 의미합니다.
논리 뷰의 이점은 다음과 같습니다.
- 스토리지 오버헤드가 없습니다. 추가 데이터가 저장되지 않으므로 기본 테이블의 스토리지에 대해서만 비용을 지불하면 됩니다.
- 실시간 정확성 쿼리는 실행 시간에 실행되므로 결과는 항상 기본 테이블의 최신 상태를 반영합니다.
- 논리적 추상화. 데이터를 중복하지 않고 복잡한 조인을 간소화하거나 행 수준 보안을 적용합니다.
- SQL 유연성. 복잡한 윈도우 함수, 사용자 정의 함수 (UDF), 모든 조인 유형을 비롯한 전체 범위의 BigQuery SQL을 지원합니다.
구체화된 뷰
구체화된 뷰는 SQL 쿼리 결과를 주기적으로 저장하는 미리 계산된 뷰입니다. 논리적 뷰와 달리 구체화된 뷰는 계산된 데이터를 물리적으로 저장하므로 BigQuery가 원시 기본 데이터를 반복적으로 처리하지 않고도 결과를 더 빠르게 제공할 수 있습니다. 이렇게 하면 쿼리를 사전 처리하여 대규모 데이터 세트의 쿼리 지연 시간을 줄일 수 있고 자주 사용되는 쿼리의 컴퓨팅 비용을 줄일 수 있습니다.
BigQuery 구체화된 뷰는 사전 계산된 데이터의 속도와 라이브 뷰의 정확성을 결합합니다. 이러한 목표는 다음을 통해 달성됩니다.
- 자동 새로고침. 기본 테이블이 변경되면 백그라운드 프로세스가 구체화된 뷰를 업데이트합니다.
- 데이터 업데이트 빈도. 백그라운드 새로고침이 대기 중일 때 쿼리가 발생하면 BigQuery는 처리되지 않은 기본 테이블 변경사항을 자동으로 보상하여 최신 결과를 제공합니다.
- 스마트 조정. 구체화된 뷰가 더 효율적으로 답변을 제공할 수 있다고 판단되면 쿼리 옵티마이저가 기본 테이블에서 구체화된 뷰로 쿼리를 자동으로 다시 라우팅할 수 있습니다.
비교
다음 표에서는 BigQuery 논리적 뷰와 구체화된 뷰의 유사점과 차이점을 요약해서 보여줍니다.
| 측정기준 | 논리 뷰 | 구체화된 뷰 |
|---|---|---|
| 데이터 지속성 | 없음 (가상) | 물리적 (디스크에 저장됨) |
| 실행 | 뷰가 호출될 때마다 | 미리 계산됨, 백그라운드 새로고침 |
| 데이터 지연 | 만료되지 않음 | 선택사항 1(새로고침을 통해) |
| 성능 | 변수 (기본 테이블 종속) | 일관성 및 속도 |
| SQL 복잡성 | 무제한 | 제한적 이용 |
| 최적화 대상 | 보안 및 추상화 | 속도 및 비용 절감 |
| 유지보수 및 보관 비용 | 아니요 | 예 |
1 --max_staleness 옵션은 자주 변경되는 대규모 데이터 세트를 처리할 때 비용을 제어하면서 쿼리 성능을 개선합니다.
논리 뷰를 사용해야 하는 경우
- 시맨틱 레이어링 기술 지식이 없는 사용자를 위해 복잡한 열 이름을 비즈니스 친화적인 용어로 바꿉니다.
- 신속한 개발. 로직이 유동적이고 물리적 스토리지의 오버헤드를 관리하고 싶지 않은 경우에 사용합니다.
- 통합 데이터 소스 Looker Studio 또는 BigQuery Sharing (이전 명칭: Analytics Hub)과 같은 시각화 도구의 데이터 소스를 제공합니다.
구체화된 뷰를 사용하는 경우
- 데이터 사전 처리 집계, 필터, 조인, 클러스터를 준비하여 쿼리 성능을 개선합니다.
- 대시보드 가속화 Looker와 같이 동일한 집계 측정항목(예: 일일 활성 사용자)을 자주 쿼리하는 BI 도구를 지원합니다.
- 대규모 스트림의 실시간 분석 고속 스트리밍 데이터를 수신하는 테이블에 대해 더 빠른 응답을 제공할 수 있습니다.
- 비용 관리 대규모 데이터 세트에 대한 반복적이고 비용이 많이 드는 쿼리의 비용을 줄입니다.
권장사항
잘 설계된 BigQuery 환경의 경우 논리 뷰는 필요한 데이터를 통합하는 데 유용한 도구입니다. 집계가 많은 특정 트래픽이 많은 쿼리 패턴의 성능 최적화 도구로 사용할 구체화된 뷰를 예약합니다.
구체화된 뷰의 사용량과 성능을 모니터링하는 방법을 알아보려면 MATERIALIZED_VIEWS 뷰를 참고하세요.