BigQuery オンデマンド環境を管理しています。ビジネス インテリジェンス ツールは、日レベルと月レベルで大規模な (50 TB) 販売履歴ファクト テーブルを集計するクエリを毎日何百も送信しています。これらのクエリの応答時間は遅く、コストの予想を超えています。応答時間を短縮し、クエリ コストを削減し、メンテナンスを最小限に抑える必要があります。どうすればよいでしょうか。
正解:A
To improve response times and reduce costs for frequent queries aggregating a large sales history fact table, materialized views are a highly effective solution. Here's why option A is the best choice:
* Materialized Views:
* Materialized views store the results of a query physically and update them periodically, offering faster query responses for frequently accessed data.
* They are designed to improve performance for repetitive and expensive aggregation queries by precomputing the results.
* Efficiency and Cost Reduction:
* By building materialized views at the day and month level, you significantly reduce the computation required for each query, leading to faster response times and lower query costs.
* Materialized views also reduce the need for on-demand query execution, which can be costly when dealing with large datasets.
* Minimized Maintenance:
* Materialized views in BigQuery are managed automatically, with updates handled by the system, reducing the maintenance burden on your team.
Steps to Implement:
* Identify Aggregation Queries:
* Analyze the existing queries to identify common aggregation patterns at the day and month levels.
* Create Materialized Views:
* Create materialized views in BigQuery for the identified aggregation patterns. For example CREATE MATERIALIZED VIEW project.dataset.sales_daily_summary AS SELECT DATE(transaction_time) AS day, SUM(amount) AS total_sales FROM project.dataset.sales GROUP BY day; CREATE MATERIALIZED VIEW project.dataset.sales_monthly_summary AS SELECT EXTRACT(YEAR FROM transaction_time) AS year, EXTRACT(MONTH FROM transaction_time) AS month, SUM(amount) AS total_sales FROM project.dataset.sales GROUP BY year, month;
* Query Using Materialized Views:
* Update existing queries to use the materialized views instead of directly querying the base table.
Reference Links:
* BigQuery Materialized Views
* Optimizing Query Performance