是否有方案可将BigQuery BI Engine集成至BigQuery Client?
BigQuery BI Engine集成到BigQuery Client的可行方案说明
目前是完全可以实现的,BI Engine的加速能力早已不局限于Looker Studio和Looker两类官方工具,所有向BigQuery服务端提交的符合条件的查询都可以触发BI Engine加速,具体实现方案如下:
- 无侵入式自动加速方案
你只需要提前在对应GCP项目的BigQuery控制台配置好对应区域的BI Engine内存预留,绑定需要加速的数据集/表,之后不管你使用任意语言的BigQuery官方客户端SDK、bq命令行工具、还是直接调用BigQuery REST API提交查询,只要查询满足BI Engine的加速规则,就会自动走BI Engine内存加速,不需要对现有客户端代码做任何修改。
示例Python客户端查询代码和常规写法完全一致:
查询提交后你可以在BigQuery的查询历史详情中查看执行信息,确认是否命中了BI Engine加速。from google.cloud import bigquery # 初始化BigQuery客户端 client = bigquery.Client(project="你的项目ID") # 提交分析查询 query_job = client.query("SELECT dimension, SUM(metric) FROM `你的项目.你的数据集.你的表` GROUP BY dimension") # 获取查询结果 results = query_job.result() - 低延时看板场景优化方案
针对你的自定义看板低延时需求,可以额外开启BI Engine的预加载功能,将看板高频访问的热表数据常驻在BI Engine内存中,避免首次查询冷启动的延时开销,全程不需要调整客户端的查询逻辑。
若查询未命中BI Engine加速,可优先排查三个问题:一是BI Engine预留的内存是否足够覆盖查询涉及的表数据量;二是查询是否使用了BI Engine不支持的语法(如自定义函数、跨区域 federated 查询、写操作等);三是BI Engine预留的区域和查询表所在的区域是否一致。
内容的提问来源于stack exchange,提问作者Ravi Teja
相关产品推荐
相关产品推荐

