BI Engine이란 무엇인가요?

BigQuery BI Engine은 가장 자주 사용하는 데이터를 지능적으로 캐시하여 BigQuery의 여러 SQL 쿼리를 가속화하는 빠른 메모리 내 분석 서비스입니다. BI Engine은 데이터 시각화 도구로 작성된 것을 포함하여 모든 소스에서 SQL 쿼리를 가속화하고 상시 최적화를 위해 캐시된 테이블을 관리할 수 있습니다. 이렇게 하면 수동 조정 또는 데이터 계층화 없이 쿼리 성능을 향상시킬 수 있습니다. 클러스터링파티셔닝을 사용해서 BI Engine으로 큰 테이블의 성능을 더 최적화할 수 있습니다.

예를 들어 대시보드에 지난 분기의 데이터만 표시되는 경우 최신 파티션만 메모리에 로드될 수 있도록 시간별로 테이블 파티션을 나누는 것이 좋습니다. 또한 구체화된 뷰와 BI Engine의 이점을 조합할 수 있습니다. 이는 구체화된 뷰를 사용해서 데이터를 조인하고 단순화하여 BI Engine의 구조를 최적화하는 데 특히 효과적입니다.

BI Engine은 다음과 같은 이점을 제공합니다.

  1. BigQuery API: BI Engine은 BigQuery API와 직접 통합됩니다. REST 또는 JDBC 및 ODBC 드라이버와 같은 표준 메커니즘을 통해 BigQuery API로 작동하는 모든 BI 솔루션 또는 커스텀 애플리케이션은 수정 없이 BI Engine을 사용할 수 있습니다.
  2. 벡터화된 런타임: BI Engine SQL 인터페이스를 사용하면 BI Engine이 벡터화된 처리라는 보다 최신 기술을 선보입니다. 실행 엔진에서 벡터화된 처리를 사용하면 데이터 배치를 한 번에 작업하여 최신 CPU 아키텍처를 보다 효율적으로 사용할 수 있습니다. BI Engine은 또한 고급 데이터 인코딩, 특히 사전 실행 길이 인코딩을 사용하여 메모리 내 레이어에 저장된 데이터를 추가로 압축합니다.
  3. 원활한 통합: BI Engine은 승인된 뷰, 열 수준 보안, 데이터 마스킹을 포함한 BigQuery 기능 및 메타데이터와 함께 작동합니다.
  4. 예약: 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 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에서 지원되지 않으며 가속화의 이점을 누릴 수 없습니다.

  • BI Engine이 지원하지 않는 BigQuery 기능에 크게 의존하는 경우: BI Engine은 BI(비즈니스 인텔리전스) 도구를 BigQuery에 연결할 때 대부분의 SQL 함수 및 연산자를 지원하지만 외부 테이블 및 SQL이 아닌 사용자 정의 함수를 포함하여 지원되지 않는 기능이 있습니다.

BI Engine 고려사항

BI Engine 구성 방법을 결정할 때 다음을 고려합니다.

특정 쿼리의 가속화 보장

BI Engine 예약으로 별도의 프로젝트를 만들어 특정 쿼리 집합을 상시 가속화할 수 있습니다. 이렇게 하려면 해당 프로젝트의 BI Engine 예약이 쿼리에 사용된 모든 테이블의 크기와 일치하도록 충분히 커야 하고 해당 테이블을 선호 테이블로 지정해야 합니다. 해당 프로젝트에서는 가속화해야 하는 쿼리만 실행되어야 합니다.

조인 최소화

BI Engine은 사전 조인되었거나 사전 집계된 데이터 그리고 조인 수가 적은 데이터에서 최적의 성능을 발휘합니다. 한쪽 조인이 크고 다른 쪽은 작은 경우(예: 작은 측정기준 테이블과 조인된 큰 팩트 테이블을 쿼리하는 경우)에 특히 잘 연동됩니다. BI Engine을 조인을 수행하는 구체화된 뷰와 결합하여 큰 단일 플랫 테이블을 생성할 수 있습니다. 이 방식에서는 동일한 조인을 모든 쿼리에서 수행할 필요가 없습니다.

BI Engine의 영향 이해

BI Engine 사용률을 이해하려면 Cloud Monitoring으로 BI Engine 모니터링을 참조하거나 INFORMATION_SCHEMA.BI_CAPACITIESINFORMATION_SCHEMA.BI_CAPACITY_CHANGES 뷰를 쿼리하세요. 가장 정확한 비교를 얻기 위해서는 BigQuery에서 캐시된 결과 사용 옵션을 사용 중지해야 합니다. 자세한 내용은 캐시된 쿼리 결과 사용을 참조하세요.

선호 테이블

BI Engine 선호 테이블을 사용하면 BI Engine 가속을 지정된 테이블 집합으로 제한할 수 있습니다. 다른 모든 테이블에 대한 쿼리는 일반 BigQuery 슬롯을 사용합니다. 예를 들어 선호 테이블을 사용하면 비즈니스에 중요한 것으로 식별된 테이블과 대시보드만 가속화할 수 있습니다.

프로젝트에 모든 선호 테이블을 보관할 수 있을 만큼 RAM이 충분하지 않은 경우 BI Engine은 최근에 액세스하지 않은 파티션과 열을 오프로드합니다. 이 프로세스는 가속이 필요한 새 쿼리에 메모리를 확보합니다.

선호 테이블 제한사항

BI Engine 선호 테이블에는 다음과 같은 제한사항이 있습니다.

  • 선호 테이블 예약 목록에 뷰를 추가할 수 없습니다. BI Engine 선호 테이블은 테이블만 지원합니다.
  • 구체화된 뷰로의 쿼리는 구체화된 뷰와 기본 테이블이 모두 선호 테이블 목록에 있는 경우에만 가속화됩니다.
  • 가속화를 위한 파티션 또는 열 지정은 지원되지 않습니다.
  • JSON 유형 열은 지원되지 않으며 BI Engine으로 가속화되지 않습니다.
  • 여러 테이블에 액세스하는 쿼리는 모든 테이블이 선호 테이블인 경우에만 가속화됩니다. 예를 들어 JOIN이 있는 쿼리의 모든 테이블이 가속을 원하는 테이블 목록에 있어야 합니다. 선호 목록에 하나의 테이블이 없어도 쿼리는 BI Engine을 사용할 수 없습니다.
  • 공개 데이터 세트는 Google Cloud 콘솔에서 지원되지 않습니다. 공개 테이블을 선호 테이블로 추가하려면 API 또는 DDL을 사용합니다.

할당량 및 한도

BI Engine에 적용되는 할당량 및 한도는 BigQuery 할당량 및 한도를 참조하세요.

가격 책정

BI Engine 가격 책정에 대한 자세한 내용은 BigQuery 가격 책정 페이지를 참조하세요.

다음 단계