跨多个用户共享 BigQuery 的缓存

Posted

技术标签:

【中文标题】跨多个用户共享 BigQuery 的缓存【英文标题】:Sharing BigQuery's cache across multiple users 【发布时间】:2016-01-04 22:47:23 【问题描述】:

据我了解,BigQuery 的caching 机制是基于每个用户的。但我们希望能够在项目/数据集/表级别共享缓存。

例如,John 和 Mary 都在同一个 Google 项目 XYZ 上工作。他们喜欢使用 BigQuery,并且都在数据集 FooXYZ:Foo.Bar 中查询表 Bar,以从他们的数据中获得美丽的见解。

John 登录并针对 XYZ:Foo.Bar 编写查询,执行需要 10 秒。几分钟后,Mary 登录并在XYZ:Foo.Bar 上编写exact 相同的查询。这也需要 10 秒,但她没有得到缓存命中。

有什么办法可以在用户之间共享查询缓存,即在项目/数据集/表级别?还是我遗漏了一些明显的东西?

【问题讨论】:

【参考方案1】:

出于隐私原因,BigQuery 不会在用户之间共享缓存 - 但它可能是一个有趣的功能请求:https://code.google.com/p/google-bigquery/。

您今天可以实施的替代方案是使用服务帐号代表您的用户连接到 BigQuery 的代理。例如,在使用 http://demo.redash.io 时,您会获得 BigQuery 原生缓存和应用级缓存。与 Datalab 相同 - 因为它默认使用服务帐户,所以会为同一项目中的用户缓存结果。

【讨论】:

感谢费利佩!

以上是关于跨多个用户共享 BigQuery 的缓存的主要内容,如果未能解决你的问题,请参考以下文章

sql [BigQuery - Facebook产品目录]查询para obtenerelcatálogodeproductos de Kichink。 #facebook #bigqu

查询结果后 BigQuery 导出多个文件

如何加入 Firebase 和 BigQuery

BigQuery - 跨多个表读取时选择分区键

跨多个数据库共享用户表以实现单次登录

通过多个 Laravel 5 安装跨子域共享身份验证会话