たとえば、ダッシュボードに直前の四半期のデータのみを表示する場合は、最新のパーティションのみがメモリに読み込まれるように、テーブルを時間で分割することを検討します。また、マテリアライズド ビューと BI Engine のメリットを組み合わせることもできます。これは、マテリアライズド ビューを使用してデータを結合、フラット化して BI Engine の構造を最適化する場合に特に効果的です。
BI Engine には次の利点があります。
BigQuery API: BI Engine は BigQuery API と直接統合されます。BI ソリューションまたは REST ドライバや JDBC ODBC ドライバなどの標準メカニズムを介して BigQuery API と連携するカスタム アプリケーションは、変更なしで BI Engine を使用できます。
ベクトル化ランタイム: BI Engine では、BigQuery はベクトル処理と呼ばれる最新の手法を使用します。実行エンジンでベクトル化された処理を使用すると、データのバッチを一度に処理することで、最新の CPU アーキテクチャをより効率的に利用できます。BI Engine はさらに、高度なデータ エンコード(具体的には、辞書のランレングス圧縮)を使用して、メモリ内レイヤに保存されているデータをさらに圧縮します。
シームレスな統合: BI Engine は、承認済みビュー、行レベルのセキュリティ、データ マスキングなど、BigQuery 機能やメタデータと連携します。
予約: BI Engine の予約では、プロジェクトのロケーション レベルでメモリ割り当てを管理します。BI Engine は、クエリ対象の特定の列またはパーティションをキャッシュに保存し、テーブル内でそれらを「優先」とマークします。
BI Engine のアーキテクチャ
BI Engine は、Looker、Tableau、Power BI、カスタム アプリケーションなどのビジネス インテリジェンス(BI)ツールと統合され、データ探索と分析を高速化します。
特定のクエリセットが常に高速化されるようにするには、BI Engine 予約を使用して別のプロジェクトを作成します。そのためには、そのプロジェクトの BI Engine 予約が、それらのクエリで使用されるすべてのテーブルのサイズに十分対応していることを確認し、それらのテーブルを BI Engine の優先テーブルとして指定します。そのプロジェクトで実行する必要があるのは、高速化が必要なクエリのみです。
結合を最小化する
BI Engine は、事前に結合されたか事前に集計されたデータと、少数の結合でのデータで最適に動作します。これは、小さいディメンション テーブルと結合された大きなファクト テーブルをクエリする場合など、結合の片側が大きくもう一方がはるかに小さい場合に特に当てはまります。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)."]]