跨多个用户共享 BigQuery 的缓存
Sharing BigQuery's cache across multiple users
据我了解,BigQuery 的 caching 机制是基于每个用户的。但我们希望能够在 project/dataset/table 级别共享缓存。
例如,约翰和玛丽都在同一个 Google 项目 XYZ
上工作。他们喜欢使用 BigQuery,并且都查询数据集 Foo
中的 table Bar
,即 XYZ:Foo.Bar
,以从他们的数据中获得漂亮的见解。
John 登录并针对 XYZ:Foo.Bar
编写一个查询,该查询需要 10 秒才能执行。几分钟后,Mary 登录并在 XYZ:Foo.Bar
上编写了 完全 相同的查询。它也需要 10 秒,但她没有获得缓存命中。
是否可以采取任何措施来跨用户共享查询缓存,即在 project/dataset/table 级别?还是我错过了一些明显的东西?
出于隐私原因,BigQuery 不会在用户之间共享缓存 - 但建议提出一个有趣的功能请求:https://code.google.com/p/google-bigquery/。
您今天可以实施的替代方案是使用服务帐户代表您的用户连接到 BigQuery 的代理。例如,使用 http://demo.redash.io. Same with Datalab 时您会获得 BigQuery 本机缓存和应用程序级缓存 - 因为它默认使用服务帐户,所以会为同一项目中的用户缓存结果。
据我了解,BigQuery 的 caching 机制是基于每个用户的。但我们希望能够在 project/dataset/table 级别共享缓存。
例如,约翰和玛丽都在同一个 Google 项目 XYZ
上工作。他们喜欢使用 BigQuery,并且都查询数据集 Foo
中的 table Bar
,即 XYZ:Foo.Bar
,以从他们的数据中获得漂亮的见解。
John 登录并针对 XYZ:Foo.Bar
编写一个查询,该查询需要 10 秒才能执行。几分钟后,Mary 登录并在 XYZ:Foo.Bar
上编写了 完全 相同的查询。它也需要 10 秒,但她没有获得缓存命中。
是否可以采取任何措施来跨用户共享查询缓存,即在 project/dataset/table 级别?还是我错过了一些明显的东西?
出于隐私原因,BigQuery 不会在用户之间共享缓存 - 但建议提出一个有趣的功能请求:https://code.google.com/p/google-bigquery/。
您今天可以实施的替代方案是使用服务帐户代表您的用户连接到 BigQuery 的代理。例如,使用 http://demo.redash.io. Same with Datalab 时您会获得 BigQuery 本机缓存和应用程序级缓存 - 因为它默认使用服务帐户,所以会为同一项目中的用户缓存结果。