BI Engine 与任何商业智能 (BI) 工具(包括 Looker、Tableau、Power BI 和自定义应用)集成,以加快数据探索和分析速度。
BI Engine 使用场景
BI Engine 可以显著加快许多 SQL 查询的速度,包括用于 BI 信息中心的查询。如果您确定对查询至关重要的表,然后将它们标记为首选表,则加速是最有效的。如需使用 BI Engine,请创建一个预留,用于定义 BI Engine 专用的存储容量。您可以让 BigQuery 根据项目的使用模式确定要缓存的表,也可以标记特定表以防止其他流量干扰加速。
BI Engine 在以下使用场景中非常有用:
使用 BI 工具分析数据:BI Engine 可以加速 BigQuery 查询,无论查询是在 BigQuery 控制台、客户端库中运行还是通过 API 或 ODBC 或 JDBC 连接器运行。这可以显著提高通过内置连接 (API) 或连接器连接到 BigQuery 的信息中心的性能。
[[["易于理解","easyToUnderstand","thumb-up"],["解决了我的问题","solvedMyProblem","thumb-up"],["其他","otherUp","thumb-up"]],[["很难理解","hardToUnderstand","thumb-down"],["信息或示例代码不正确","incorrectInformationOrSampleCode","thumb-down"],["没有我需要的信息/示例","missingTheInformationSamplesINeed","thumb-down"],["翻译问题","translationIssue","thumb-down"],["其他","otherDown","thumb-down"]],["最后更新时间 (UTC):2025-09-04。"],[[["\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)."]]