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을 사용할 수 있습니다.
벡터화된 런타임: BigQuery는 BI Engine을 사용하여 벡터화된 처리라는 최신 기술을 사용합니다. 실행 엔진에서 벡터화된 처리를 사용하면 데이터 배치를 한 번에 작업하여 최신 CPU 아키텍처를 보다 효율적으로 사용할 수 있습니다. BI Engine은 또한 고급 데이터 인코딩, 특히 사전 실행 길이 인코딩을 사용하여 메모리 내 레이어에 저장된 데이터를 추가로 압축합니다.
원활한 통합: BI Engine은 승인된 뷰, 열 및 행 수준 보안, 데이터 마스킹을 포함한 BigQuery 기능 및 메타데이터와 함께 작동합니다.
예약: BI Engine 예약은 프로젝트 위치 수준에서 메모리 할당을 관리합니다. BI Engine은 쿼리되는 특정 열 또는 파티션을 캐시하여 선호하는 것으로 표시된 테이블의 우선순위를 지정합니다.
BI Engine 아키텍처
BI Engine은 Looker, Tableau, Power BI, 커스텀 애플리케이션과 같은 모든 비즈니스 인텔리전스(BI) 도구와 통합되어 데이터 탐색 및 분석 속도를 높입니다.
BI Engine 사용 사례
BI Engine은 BI 대시보드에 사용되는 쿼리를 포함하여 많은 SQL 쿼리를 대폭 가속화할 수 있습니다. 쿼리에 필수적인 테이블을 식별한 다음 이를 기본 설정 테이블로 표시하면 가장 효과적으로 가속할 수 있습니다. BI Engine을 사용하려면 BI Engine 전용 스토리지 용량을 정의하는 예약을 만듭니다. BigQuery가 프로젝트의 사용 패턴에 따라 캐시할 테이블을 결정하도록 하거나 다른 트래픽이 가속을 방해하지 못하도록 특정 테이블을 표시할 수 있습니다.
BI Engine은 다음 사용 사례에 유용합니다.
BI 도구를 사용하여 데이터를 분석하는 경우: BI Engine은 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을 조인을 수행하는 구체화된 뷰와 결합하여 큰 단일 플랫 테이블을 생성할 수 있습니다. 이 방식에서는 동일한 조인을 모든 쿼리에서 수행할 필요가 없습니다.
BigQuery와 확장 프로그램 BI Engine은 SQL 쿼리에 생성된 쿼리 계획을 서브 쿼리로 나눕니다. 서브 쿼리에는 데이터 스캔, 필터링 또는 집계와 같은 여러 작업이 포함되며 종종 샤드에서 실행되는 단위입니다.
BigQuery에서 지원되는 모든 SQL 쿼리가 BI Engine에 의해 올바르게 실행되지만 특정 서브 쿼리만 최적화됩니다. 특히 BI Engine은 스토리지에서 데이터를 스캔하고 필터, 컴퓨팅, 집계, 정렬 기준, 특정 조인 유형과 같은 작업을 수행하는 리프 수준 서브 쿼리에 가장 적합합니다. BI Engine에서 완전히 가속화되지 않은 다른 서브 쿼리는 실행을 위해 BigQuery로 되돌립니다.
이러한 선택적 최적화로 인해, 더 간단한 비즈니스 인텔리전스 또는 대시보드 유형 쿼리는 대부분의 실행 시간이 원시 데이터를 처리하는 리프 수준 서브 쿼리에 사용되므로 BI Engine의 이점을 최대한 활용합니다(서브 쿼리 수가 더 적음).
[[["이해하기 쉬움","easyToUnderstand","thumb-up"],["문제가 해결됨","solvedMyProblem","thumb-up"],["기타","otherUp","thumb-up"]],[["이해하기 어려움","hardToUnderstand","thumb-down"],["잘못된 정보 또는 샘플 코드","incorrectInformationOrSampleCode","thumb-down"],["필요한 정보/샘플이 없음","missingTheInformationSamplesINeed","thumb-down"],["번역 문제","translationIssue","thumb-down"],["기타","otherDown","thumb-down"]],["최종 업데이트: 2025-09-04(UTC)"],[[["\u003cp\u003eBI Engine is an in-memory analysis service that speeds up SQL queries in BigQuery by caching frequently used data, improving query performance without manual tuning.\u003c/p\u003e\n"],["\u003cp\u003eBI Engine integrates directly with the BigQuery API and can be used with various BI tools and custom applications, accelerating data exploration and analysis, particularly for dashboards.\u003c/p\u003e\n"],["\u003cp\u003eThe system uses vectorized processing and advanced data encodings to optimize performance and data compression in the in-memory layer.\u003c/p\u003e\n"],["\u003cp\u003eBI Engine works seamlessly with BigQuery features like authorized views, column-level security, and data masking, but does not support queries with wildcards or certain BigQuery features like external tables and non-SQL user-defined functions.\u003c/p\u003e\n"],["\u003cp\u003eUsers can optimize BI Engine's performance by partitioning tables, using materialized views, and designating preferred tables for acceleration, as well as monitoring usage statistics to understand its impact.\u003c/p\u003e\n"]]],[],null,["# What is BI Engine?\n==================\n\nBigQuery BI Engine is a fast, in-memory analysis service that accelerates many\nSQL queries in BigQuery by intelligently caching the data you use most\nfrequently. BI Engine can accelerate SQL queries from any source,\nincluding those written by data visualization tools, and can manage cached\ntables for on-going optimization. This lets you improve query performance\nwithout manual tuning or data tiering. You can use [clustering](/bigquery/docs/clustered-tables)\nand [partitioning](/bigquery/docs/partitioned-tables) to further optimize the\nperformance of large tables with BI Engine.\n\nFor example, if your dashboard only displays the last quarter's data, then\nconsider partitioning your tables by time so only the latest partitions are\nloaded into memory. You can also combine the benefits of [materialized\nviews](/bigquery/docs/materialized-views-intro) and BI Engine.\nThis works particularly well when the materialized views are used to join and\nflatten data to optimize their structure for BI Engine.\n\nBI Engine provides the following advantages:\n\n1. **BigQuery API:** BI Engine directly integrates with the BigQuery API. Any BI solution or custom application that works with the BigQuery API through standard mechanisms such as [REST](/bigquery/docs/reference/rest) or [JDBC and ODBC drivers](/bigquery/docs/reference/odbc-jdbc-drivers) can use BI Engine without modification.\n2. **Vectorized runtime:** With the BI Engine, BigQuery uses a modern technique called *vectorized processing*. Using vectorized processing in an execution engine makes more efficient use of modern CPU architecture, by operating on batches of data at a time. BI Engine also uses advanced data encodings, specifically, dictionary and run-length encoding, to further compress the data that's stored in the in-memory layer.\n3. **Seamless integration:** BI Engine works with BigQuery features and metadata, including authorized views, column and row level security, and data masking.\n4. **Reservations:** BI Engine reservations manage memory allocation at the project location level. BI Engine caches specific columns or partitions that are queried, prioritizing those in tables marked as preferred.\n\n### BI Engine architecture\n\nBI Engine integrate with any business intelligence (BI) tool,\nincluding such as Looker, Tableau,Power BI, and custom applications to\naccelerate data exploration and analysis.\n\nBI Engine use cases\n-------------------\n\nBI Engine can significantly accelerate many SQL queries, including\nthose used for BI dashboards. Acceleration is most effective if you identify\nthe tables that are essential to your queries and then mark them as [preferred\ntables](/bigquery/docs/bi-engine-preferred-tables). To use\nBI Engine, create a reservation that defines the storage\ncapacity dedicated to BI Engine. You can let\nBigQuery determine which tables to cache based on the project's\nusage patterns or you can mark specific tables to prevent other traffic\nfrom interfering with acceleration.\n\nBI Engine is useful in the following use cases:\n\n- **You use BI tools to analyze your data**: The BI Engine can accelerate BigQuery queries regardless of whether they run in the BigQuery console, client library, or through an API or an ODBC or JDBC connector. This can significantly improve the performance of dashboards connected to BigQuery through a built-in connection (API) or connectors.\n- **You have certain tables that are queried most frequently**: BI Engine lets you designate specific preferred tables to accelerate. This is helpful if you have a subset of tables that are queried more frequently or are used for high-visibility dashboards.\n\nBI Engine might not fit your needs in the following cases:\n\n- **You use wildcards in your queries**: Queries referencing wildcard tables are\n not supported by BI Engine and don't benefit from acceleration.\n\n- **You rely heavily on unsupported BigQuery features** : While\n BI Engine supports most [SQL functions and\n operators](/bigquery/docs/bi-engine-optimized-sql) when connecting business\n intelligence (BI) tools to BigQuery, there are [unsupported\n features](/bigquery/docs/bi-engine-optimized-sql#unsupported-features),\n including external tables and non-SQL user-defined functions.\n\nConsiderations for BI Engine\n----------------------------\n\nConsider the following when deciding how to configure BI Engine:\n\n### Ensure acceleration for specific queries\n\nYou can ensure a particular set of queries always gets accelerated by creating a\nseparate project with a BI Engine reservation. To do so, you\nshould ensure that the BI Engine reservation in that project is\nlarge enough to match the size of all tables used in those queries and\ndesignate those tables as [preferred\ntables](/bigquery/docs/bi-engine-preferred-tables) for BI Engine.\nOnly those queries that need to be accelerated should be run in that project.\n\n### Minimize your joins\n\nBI Engine works best with pre-joined or pre-aggregated, and with\ndata in a small number of joins. This is\nparticularly true when one side of the join is large and the others are much\nsmaller such as when you query a large fact table joined with a small dimension\ntable. You can combine BI Engine with [materialized\nviews](/bigquery/docs/materialized-views-intro) that which perform joins\nto produce a single large, flat table. In this way, the same joins don't have\nto be performed on every query.\n\n### Understand the impact of BI Engine\n\nYou can better understand how your workloads benefit from\nBI Engine by [reviewing the usage statistics in\nCloud Monitoring](/bigquery/docs/bi-engine-intro#limitations)\nor querying the [INFORMATION_SCHEMA](/bigquery/docs/bi-engine-monitor#information_schema)\nin BigQuery. Be sure to disable the **Use cached results**\noption in BigQuery to get the most accurate comparison. For more\ninformation, see [Use cached query results](/bigquery/docs/cached-results).\n\nLimitations\n-----------\n\nQueries that contain the\n[`VECTOR_SEARCH` function](/bigquery/docs/reference/standard-sql/search_functions#vector_search)\naren't accelerated by [BigQuery BI Engine](/bigquery/docs/bi-engine-intro).\n\nQuotas and limits\n-----------------\n\nSee [BigQuery quotas and limits](/bigquery/quotas#biengine-limits)\nfor quotas and limits that apply to BI Engine.\n\nPricing\n-------\n\nFor information on BI Engine pricing, see the\n[BigQuery Pricing](/bigquery/pricing#bi_engine_pricing) page.\n\nQuery optimization and acceleration\n-----------------------------------\n\n| **Note:** For BI Engine maximum reservation size, see [quotas and limits](/bigquery/quotas#biengine-limits).\n\nBigQuery, and by extension BI Engine, breaks down\nthe query plan that's produced for a SQL query into subqueries. A subquery\ncontains a number of operations, such as scanning, filtering, or aggregating\ndata, and is often the unit of execution on a shard.\n\nWhile all of BigQuery's supported SQL queries are correctly\nexecuted by the BI Engine, only certain subqueries are optimized. In\nparticular, BI Engine is most optimized for leaf-level subqueries\nthat scan the data from storage, and perform operations such as filter, compute,\naggregation, order-by, and certain types of joins. Other subqueries that are not\nyet fully accelerated by BI Engine revert back to\nBigQuery for execution.\n\nBecause of this selective optimization, simpler business intelligence or\ndashboard-type queries benefit the most from BI Engine (resulting\nin fewer subqueries) because the majority of the execution time is spent on\nleaf-level subqueries that process raw data.\n\nWhat's next\n-----------\n\n- Learn about [BI Engine optimized functions](/bigquery/docs/bi-engine-optimized-sql).\n- To learn how to create your BI Engine reservation, see [Reserve\n BI Engine capacity](/bigquery/docs/bi-engine-reserve-capacity).\n- For information designating preferred tables, see [BI Engine\n preferred tables](/bigquery/docs/bi-engine-preferred-tables).\n- To understand your utilization of BI Engine, see [Monitor BI Engine with Cloud Monitoring](/bigquery/docs/bi-engine-monitor)."]]