BigQuery:如何共享作业结果?
BigQuery: How to share job results?
用户 A 运行作业。
用户 A 与用户 B 共享 link 作业。
用户 B 可以看到作业详细信息,但看不到结果:
User does not have permission to access results of another user's job
两个问题:
- 为什么?
- 有没有一种方法可以让用户 B 看到结果而无需将它们永久保存到 table?
好问题!!为什么?我不知道。当我尝试 to getIamPolicy
on the temporary table 时,我得到了奇怪的结果。我收到错误 500“Unknown”
我想缓存的 table 只能由创建它的用户访问。应该是遗留模式。
解决您的问题的一个方法是,用户 A 在执行请求时模拟同一个服务帐户,而用户 B 在读取请求时模拟同一个服务帐户。
就像那样,同一用户,服务帐户,创建查询并读取它,即使发起者不同。
EDIT1
如果模拟不是解决方案,您可以将数据临时保存在 BigQuery table 中。为那个临时 table 定义一个数据集,并设置一个 table expiration parameter.
最短持续时间为 1 小时,但您可以正常处理 table,它会自动清理。它与 BigQuery 缓存查询非常相似,但这次是可共享的!
用户 A 运行作业。 用户 A 与用户 B 共享 link 作业。
用户 B 可以看到作业详细信息,但看不到结果:
User does not have permission to access results of another user's job
两个问题:
- 为什么?
- 有没有一种方法可以让用户 B 看到结果而无需将它们永久保存到 table?
好问题!!为什么?我不知道。当我尝试 to getIamPolicy
on the temporary table 时,我得到了奇怪的结果。我收到错误 500“Unknown”
我想缓存的 table 只能由创建它的用户访问。应该是遗留模式。
解决您的问题的一个方法是,用户 A 在执行请求时模拟同一个服务帐户,而用户 B 在读取请求时模拟同一个服务帐户。
就像那样,同一用户,服务帐户,创建查询并读取它,即使发起者不同。
EDIT1
如果模拟不是解决方案,您可以将数据临时保存在 BigQuery table 中。为那个临时 table 定义一个数据集,并设置一个 table expiration parameter.
最短持续时间为 1 小时,但您可以正常处理 table,它会自动清理。它与 BigQuery 缓存查询非常相似,但这次是可共享的!