A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://developers.google.com/bigquery/docs/bi-engine-optimized-sql below:

Introduction to BI Engine | BigQuery

Stay organized with collections Save and categorize content based on your preferences.

Introduction to BI Engine

BigQuery BI Engine is a fast, in-memory analysis service that accelerates many SQL queries in BigQuery by intelligently caching the data you use most frequently. BI Engine can accelerate SQL queries from any source, including those written by data visualization tools, and can manage cached tables for ongoing optimization. This lets you improve query performance without manual tuning or data tiering. You can cluster and partition tables to further optimize BI Engine performance for large tables.

For example, if your dashboard only displays the last quarter's data, then you could partition your tables by time so only the latest partitions are loaded into memory. You can also combine the benefits of materialized views and BI Engine. This works particularly well when the materialized views are used to join and flatten data to optimize their structure for BI Engine.

BI Engine provides the following advantages:

In most organizations, BI Engine is enabled by a billing administrator who must reserve capacity for BI Engine acceleration. To learn more, see Reserve BI Engine capacity.

BI Engine use cases

BI Engine can significantly accelerate many SQL queries, including those used for BI dashboards. Acceleration is most effective if you identify the tables that are essential to your queries, and then mark them as preferred tables. To use BI Engine, you create a reservation in a region and specify its size. You can let BigQuery determine which tables to cache based on the project's usage patterns or you can specify tables to prevent other traffic from interfering with their acceleration.

BI Engine is useful in the following use cases:

BI Engine might not fit your needs in the following cases:

Considerations for BI Engine

Consider the following when deciding how to configure BI Engine:

Ensure acceleration for specific queries

To ensure a set of queries are accelerated, create a separate project with a dedicated BI Engine reservation. First, estimate the compute capacity required for your queries, then designate those tables as preferred tables for BI Engine.

Minimize your joins

BI Engine works best for pre-joined or pre-aggregated data, and for queries with a small number of joins. This is particularly true when one side of the join is large and the others are much smaller, such as when you query a large fact table joined with smaller dimension tables. You can combine BI Engine with materialized views, which perform joins to produce a single large, flat table. In this way, the same joins aren't performed for each query. Stale materialized views are recommended for optimal query performance.

Understand the impact of BI Engine

To understand your use of BI Engine, see Monitor BI Engine with Cloud Monitoring, or query the INFORMATION_SCHEMA.BI_CAPACITIES and INFORMATION_SCHEMA.BI_CAPACITY_CHANGES views. Be sure to disable the Use cached results option in BigQuery to get the most accurate comparison. For more information, see Use cached query results.

Preferred tables

BI Engine preferred tables let you limit BI Engine acceleration to a specified set of tables. Queries to all other tables use regular BigQuery slots. For example, with preferred tables you can accelerate only the tables and dashboards that you identify as important to your business.

If there is not enough RAM in the project to hold all of the preferred tables, BI Engine offloads partitions and columns that haven't been accessed recently. This process frees memory for new queries that need acceleration.

Preferred tables limitations

BI Engine preferred tables have the following limitations:

Limitations

BigQuery BI Engine has the following limitations.

Joins

BI Engine accelerates certain types of join queries. Acceleration happens on leaf-level subqueries with INNER and LEFT OUTER JOINS, where a large fact table is joined with up to four smaller, "dimension" tables. Small dimension tables have the following restrictions:

Window functions

Window functions, also known as analytical functions, have the following limitations when accelerated by BigQuery BI Engine:

For more information about the BiEngineStatistics field, see the Job reference.

BI Engine window functions limitations

Queries with window functions only run in BI Engine if all of the following conditions are true:

Two window functions with identical OVER clauses and the same direct inputs can share the same window function operator. For example:

Supported window functions

The following referenced window functions are supported:

If window functions aren't supported, then you might see the following error:

Analytic function is incompatible with other operators or its inputs are too large

Other BI Engine limitations

BI Engine acceleration is not available for the following features:

Work-around for unsupported features

While some SQL features are not supported in BigQuery BI Engine, there is an available workaround:

  1. Write a query in BigQuery.
  2. Save the results of the query to a table.
  3. Schedule your query to update the table on a regular basis. An hourly or daily refresh rate works best. Refreshing every minute might invalidate the cache too frequently.
  4. Reference this table in your performance-critical queries.
Quotas and limits

See BigQuery quotas and limits for quotas and limits that apply to BI Engine.

Pricing

You incur costs for the reservation that you create for BI Engine capacity. For information on BI Engine pricing, see the BigQuery Pricing page.

What's next

Except as otherwise noted, the content of this page is licensed under the Creative Commons Attribution 4.0 License, and code samples are licensed under the Apache 2.0 License. For details, see the Google Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates.

Last updated 2025-08-07 UTC.

[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Hard to understand","hardToUnderstand","thumb-down"],["Incorrect information or sample code","incorrectInformationOrSampleCode","thumb-down"],["Missing the information/samples I need","missingTheInformationSamplesINeed","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-08-07 UTC."],[[["BI Engine is an in-memory analysis service that significantly accelerates SQL query performance in BigQuery by caching frequently used data, working seamlessly with existing BigQuery features."],["BI Engine improves query speeds for various BI tools and applications by integrating directly with the BigQuery API and employing vectorized processing and advanced data compression techniques."],["Designating preferred tables within BI Engine allows users to prioritize the acceleration of specific, high-importance tables and dashboards, while non-preferred tables are handled by regular BigQuery slots."],["BI Engine is most effective with pre-joined or pre-aggregated data and queries with a minimal number of joins, and can be combined with materialized views to optimize data structures."],["Certain features such as wildcard queries, external tables, JSON type columns, and row-level security, are not compatible with BI Engine, but workarounds like saving and scheduling queries to tables are available."]]],[]]


RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4