据我了解,BigQuery的caching机制是基于每个用户。但我们希望能够在项目/数据集/表级别上共享缓存。
例如,John& Mary都在同一个Google项目XYZ
上工作。他们喜欢使用BigQuery,并且都在查询数据集Bar
中的表Foo
,即XYZ:Foo.Bar
,以便从他们的数据中获得美丽的见解。
John登录并针对XYZ:Foo.Bar
写入一个查询,需要10秒才能执行。几分钟后,Mary登录并在XYZ:Foo.Bar
上撰写完全相同的查询。它也需要10秒钟,但她没有得到缓存命中。
是否可以执行任何操作来跨用户共享查询缓存,即在项目/数据集/表级别?或者我错过了一些明显的东西?
答案 0 :(得分:3)
出于隐私原因,BigQuery不会在用户之间共享缓存 - 但这可能是一个有趣的功能请求:https://code.google.com/p/google-bigquery/。
您今天可以实现的替代方案是代表您的用户使用服务帐户连接到BigQuery的代理。例如,使用http://demo.redash.io时,您将获得BigQuery本机缓存和应用程序级缓存。与Datalab相同 - 因为它默认使用服务帐户,因此会为同一项目中的用户缓存结果。