简体   繁体   English

BigQuery:如何共享作业结果?

[英]BigQuery: How to share job results?

User A runs a job.用户 A 运行作业。 User A shares link to the Job with User B.用户 A 与用户 B 共享工作链接。

User B can see the Job details, but not the results:用户 B 可以看到作业详细信息,但看不到结果:

User does not have permission to access results of another user's job

Two questions:两个问题:

  1. Why?为什么?
  2. Is there a way to allow user B to see the results without persisting them into a permanent table?有没有办法让用户 B 看到结果而不用将它们保存到永久表中?

Good questions?.好问题? Why?为什么? I don't know.我不知道。 I got strange result when I tried to getIamPolicy on the temporary table .当我尝试在临时表上getIamPolicy时,我得到了奇怪的结果。 I got a error 500 "Unknown"我收到错误 500“未知”

I suppose that cached table is only accessible by the user that created it.我想缓存表只能由创建它的用户访问。 It should be a legacy mode.应该是遗留模式。


A solution to solve your issue is to impersonate the same service account by the User A when it perform the request and by the user B when it read the request.解决您的问题的一种解决方案是,用户 A 在执行请求时模拟相同的服务帐户,而用户 B 在读取请求时模拟相同的服务帐户。

Like that, the same user, the service account, create the query and read it, even if the originators aren't the same.就像那样,同一用户,即服务帐户,创建查询并读取它,即使发起者不同也是如此。


EDIT1编辑1

If impersonation is not a solution, you can persist temporary the data in a BigQuery table.如果模拟不是解决方案,您可以将数据临时保留在 BigQuery 表中。 Define a dataset for that temporary table, and set a table expiration parameter .为那个临时表定义一个数据集,并设置一个 表过期参数

The minimal duration is 1h, but you can handle it as a normal table and it will be cleaned automatically.最短持续时间为 1 小时,但您可以将其作为普通表处理,它会自动清理。 It's pretty similar than BigQuery cached query, but this time, it's sharable!它与 BigQuery 缓存查询非常相似,但这次是可共享的!

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM