我一直在阅读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的访问权限,而对任何存储桶都没有访问权限。
这可能吗?如果可以,怎么办?我怀疑答案是否定的,只是以为我会问。
答案 0 :(得分:0)
如果您无权访问第三方存储桶,则无法执行此操作。正如Mikhail所指出的那样,如果您可以未经许可就上传到任何存储桶,将是一个很大的安全漏洞。
目前,您可以提取查询并将其保存在存储桶中,一旦拥有权限,就可以使用Cloud Storage API或gsutil command将文件传输到第三方存储桶。