我想用两个 Python 脚本自动执行从 Google BigQuery 到 Google Cloud Storage Bucket 的 csv 文件提取过程,然后从后者到外部服务器,您能帮帮我吗?我会很感激。
2 回答
1
要在 Python 中从 BigQuery 中提取数据,您可以使用Python Client for Google BigQuery。
以下基于此存储库的代码段应该可以帮助您:
# client = bigquery.Client()
# bucket_name = 'my-bucket'
project = "bigquery-public-data"
dataset_id = "samples"
table_id = "shakespeare"
destination_uri = "gs://{}/{}".format(bucket_name, "shakespeare.csv")
dataset_ref = bigquery.DatasetReference(project, dataset_id)
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.
print(
"Exported {}:{}.{} to {}".format(project, dataset_id, table_id, destination_uri)
)
为了将导出发布到另一台服务器,您可以使用Python 的云存储客户端库将 CSV 文件发布到您选择的服务器或服务。
于 2020-06-03T21:31:16.317 回答
-1
据我所知,BigQuery 无法将查询结果导出/下载到 GCS 或本地文件。您可以将其保存在临时/临时表中,然后使用如下代码导出到 gcs:
https://cloud.google.com/bigquery/docs/exporting-data#exporting_table_data
因此,您可以将其放入容器中并将其部署为 cloudrun 服务并从云调度程序中调用它。
于 2020-06-03T12:45:31.997 回答