我可以从bigquery导出到使用不同凭据访问的存储桶吗?

时间:2018-11-02 11:36:28

标签: google-bigquery

我一直在阅读BigQuery > Documentation > Exporting Table Data > Exporting table data,现在了解可以将数据从bigquery表导出到GCS存储桶中。此处提供的示例Python代码演示了当使用相同的凭据访问bigquery表和存储桶时如何执行此操作:

destination_uri = 'gs://{}/{}'.format(bucket_name, 'shakespeare.csv')
dataset_ref = client.dataset(dataset_id, project=project)
table_ref = dataset_ref.table(table_id)

extract_job = client.extract_table(
  table_ref,
  destination_uri,
  # Location must match that of the source table.
  location='US')  # API request
extract_job.result()  # Waits for job to complete.

我想知道当使用不同凭据访问bigquery表和存储桶时是否有可能实现此目的。在我的实际情况下,我要做的是从projectA中的bigquery导出数据并将其存储在projectB拥有的存储桶中。使用不同的凭据访问projectA和projectB。 ProjectA由第3方拥有,并且仅被授予我对bigquery的访问权限,而对任何存储桶都没有访问权限。

这可能吗?如果可以,怎么办?我怀疑答案是否定的,只是以为我会问。

1 个答案:

答案 0 :(得分:0)

如果您无权访问第三方存储桶,则无法执行此操作。正如Mikhail所指出的那样,如果您可以未经许可就上传到任何存储桶,将是一个很大的安全漏洞。

目前,您可以提取查询并将其保存在存储桶中,一旦拥有权限,就可以使用Cloud Storage APIgsutil command将文件传输到第三方存储桶。