BI Engine이란 무엇인가요?
BigQuery BI Engine은 가장 자주 사용하는 데이터를 지능적으로 캐시하여 BigQuery의 여러 SQL 쿼리를 가속화하는 빠른 메모리 내 분석 서비스입니다. BI Engine은 데이터 시각화 도구로 작성된 것을 포함하여 모든 소스에서 SQL 쿼리를 가속화하고 상시 최적화를 위해 캐시된 테이블을 관리할 수 있습니다. 이렇게 하면 수동 조정 또는 데이터 계층화 없이 쿼리 성능을 향상시킬 수 있습니다. 클러스터링 및 파티셔닝을 사용해서 BI Engine으로 큰 테이블의 성능을 더 최적화할 수 있습니다.
예를 들어 대시보드에 지난 분기의 데이터만 표시되는 경우 최신 파티션만 메모리에 로드될 수 있도록 시간별로 테이블 파티션을 나누는 것이 좋습니다. 또한 구체화된 뷰와 BI Engine의 이점을 조합할 수 있습니다. 이는 구체화된 뷰를 사용해서 데이터를 조인하고 단순화하여 BI Engine의 구조를 최적화하는 데 특히 효과적입니다.
BI Engine은 다음과 같은 이점을 제공합니다.
- BigQuery API: BI Engine은 BigQuery API와 직접 통합됩니다. REST 또는 JDBC 및 ODBC 드라이버와 같은 표준 메커니즘을 통해 BigQuery API로 작동하는 모든 BI 솔루션 또는 커스텀 애플리케이션은 수정 없이 BI Engine을 사용할 수 있습니다.
- 벡터화된 런타임: BI Engine SQL 인터페이스를 사용하면 BI Engine이 벡터화된 처리라는 보다 최신 기술을 선보입니다. 실행 엔진에서 벡터화된 처리를 사용하면 데이터 배치를 한 번에 작업하여 최신 CPU 아키텍처를 보다 효율적으로 사용할 수 있습니다. BI Engine은 또한 고급 데이터 인코딩, 특히 사전 실행 길이 인코딩을 사용하여 메모리 내 레이어에 저장된 데이터를 추가로 압축합니다.
- 원활한 통합: BI Engine은 승인된 뷰, 열 및 행 수준 보안, 데이터 마스킹을 포함한 BigQuery 기능 및 메타데이터와 함께 작동합니다.
- 예약: BI Engine 예약은 프로젝트 위치 수준에서 메모리 할당을 관리합니다. BI Engine은 쿼리되는 특정 열 또는 파티션을 캐시하여 선호하는 것으로 표시된 테이블의 우선순위를 지정합니다.
BI Engine SQL 인터페이스 정보
BI Engine SQL 인터페이스는 BI Engine을 확장하여 Looker, Tableau, Power BI, 커스텀 애플리케이션과 같은 다른 비즈니스 인텔리전스(BI) 도구와 통합되어 데이터 탐색 및 분석 속도를 높입니다. 이 페이지에서는 BI Engine SQL 인터페이스의 개요와 BI Engine에 제공되는 확장된 기능을 설명합니다.
BI Engine 사용 사례
BI Engine은 BI 대시보드에 사용되는 쿼리를 포함하여 많은 SQL 쿼리를 대폭 가속화할 수 있습니다. 쿼리에 필수적인 테이블을 식별한 다음 이를 기본 설정 테이블로 표시하면 가장 효과적으로 가속할 수 있습니다. BI Engine을 사용하려면 BI Engine 전용 스토리지 용량을 정의하는 예약을 만듭니다. BigQuery가 프로젝트의 사용 패턴에 따라 캐시할 테이블을 결정하도록 하거나 다른 트래픽이 가속을 방해하지 못하도록 특정 테이블을 표시할 수 있습니다.
BI Engine은 다음 사용 사례에 유용합니다.
- BI 도구를 사용하여 데이터를 분석하는 경우: BI Engine SQL 인터페이스는 BigQuery 콘솔, 클라이언트 라이브러리 또는 API, ODBC, JDBC 커넥터를 통해 실행되는지 여부에 관계없이 BigQuery 쿼리를 가속화할 수 있습니다. 기본 제공 연결(API) 또는 커넥터를 통해 BigQuery에 연결된 대시보드의 성능을 크게 향상시킬 수 있습니다.
- 가장 자주 쿼리되는 특정 테이블이 있는 경우: BI Engine을 사용하면 가속화할 특정 선호 테이블을 지정할 수 있습니다. 이 방법은 테이블의 하위 집합이 더 자주 쿼리되거나 가시성이 높은 대시보드에 사용되는 경우에 유용합니다.
BI Engine은 다음과 같은 사용자의 니즈에 맞지 않을 수 있습니다.
쿼리에 와일드 카드를 사용하는 경우: 와일드 카드 테이블을 참조하는 쿼리는 BI Engine에서 지원되지 않으며 가속화의 이점을 누릴 수 없습니다.
지원되지 않는 BigQuery 기능에 크게 의존하는 경우: BI Engine은 비즈니스 인텔리전스(BI) 도구를 BigQuery에 연결할 때 대부분의 SQL 함수 및 연산자를 지원지만, 외부 테이블 및 SQL이 아닌 사용자 정의 함수 등 지원되지 않는 기능이 있습니다.
BI Engine 고려사항
BI Engine 구성 방법을 결정할 때 다음을 고려합니다.
특정 쿼리의 가속화 보장
BI Engine 예약으로 별도의 프로젝트를 만들어 특정 쿼리 집합을 상시 가속화할 수 있습니다. 이렇게 하려면 해당 프로젝트의 BI Engine 예약이 쿼리에 사용된 모든 테이블의 크기와 일치하도록 충분히 커야 하고 해당 테이블을 선호 테이블로 지정해야 합니다. 해당 프로젝트에서는 가속화해야 하는 쿼리만 실행되어야 합니다.
조인 최소화
BI Engine은 사전 조인되었거나 사전 집계된 데이터 그리고 조인 수가 적은 데이터에서 최적의 성능을 발휘합니다. 한쪽 조인이 크고 다른 쪽은 작은 경우(예: 작은 측정기준 테이블과 조인된 큰 팩트 테이블을 쿼리하는 경우)에 특히 잘 연동됩니다. BI Engine을 조인을 수행하는 구체화된 뷰와 결합하여 큰 단일 플랫 테이블을 생성할 수 있습니다. 이 방식에서는 동일한 조인을 모든 쿼리에서 수행할 필요가 없습니다.
BI Engine의 영향 이해
Cloud Monitoring에서 사용 통계를 검토하거나 BigQuery에서 INFORMATION_SCHEMA를 쿼리하여 워크로드가 BI Engine의 이점을 더 잘 이해할 수 있습니다. 가장 정확한 비교를 얻기 위해서는 BigQuery에서 캐시된 결과 사용 옵션을 사용 중지해야 합니다. 자세한 내용은 캐시된 쿼리 결과 사용을 참조하세요.
할당량 및 제한사항
BI Engine에 적용되는 할당량 및 한도는 BigQuery 할당량 및 한도를 참조하세요.
가격 책정
BI Engine 가격 책정에 대한 자세한 내용은 BigQuery 가격 책정 페이지를 참조하세요.
쿼리 최적화 및 가속
BigQuery와 확장 프로그램 BI Engine은 SQL 쿼리에 생성된 쿼리 계획을 서브 쿼리로 나눕니다. 서브 쿼리에는 데이터 스캔, 필터링 또는 집계와 같은 여러 작업이 포함되며 종종 샤드에서 실행되는 단위입니다.
BigQuery에서 지원되는 모든 SQL 쿼리가 BI Engine SQL 인터페이스에 의해 올바르게 실행되지만 특정 서브 쿼리만 최적화됩니다. 특히 BI Engine SQL 인터페이스는 스토리지에서 데이터를 스캔하고 필터, 컴퓨팅, 집계, 정렬 기준, 특정 조인 유형과 같은 작업을 수행하는 리프 수준 서브 쿼리에 가장 적합합니다. BI Engine에서 완전히 가속화되지 않은 다른 서브 쿼리는 실행을 위해 BigQuery로 되돌립니다.
이러한 선택적 최적화로 인해, 더 간단한 비즈니스 인텔리전스 또는 대시보드 유형 쿼리는 대부분의 실행 시간이 원시 데이터를 처리하는 리프 수준 서브 쿼리에 사용되므로 BI Engine의 이점을 최대한 활용합니다(서브 쿼리 수가 더 적음).
다음 단계
- BI Engine 최적화 함수 알아보기
- BI Engine 예약을 만드는 방법은 BI Engine 용량 예약 참조하기
- 기본 테이블 지정에 대한 자세한 내용은 BI Engine 기본 테이블 참조하기
- BI Engine 사용률을 이해하려면 Cloud Monitoring으로 BI Engine 모니터링 참조하기