如何从bigquery中提取csv并使用python将其发送到外部服务器?

2024-04-18 21:57:33 发布

您现在位置:Python中文网/ 问答频道 /正文

我想自动化一个csv文件提取过程,从Google BigQuery到Google云存储桶,从后者到带有两个Python脚本的外部服务器,你能帮我吗?我将不胜感激


Tags: 文件csv服务器脚本过程googlebigquery
2条回答

要从Python中的BigQuery中提取,可以使用Python Client for Google BigQuery

下面基于this repository的代码片段应该可以帮助您继续:

# 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)
)

为了将导出发布到另一台服务器,您可以使用Cloud Storage Client Library for Python将CSV文件发布到您选择的服务器或服务

据我所知,BigQuery无法将查询结果导出/下载到GCS或本地文件。您可以将其保存在临时/分段表中,然后使用如下代码导出到gcs:

https://cloud.google.com/bigquery/docs/exporting-data#exporting_table_data

所以,您可以将其放在容器中,并将其部署为cloudrun服务,然后从CloudScheduler调用它

相关问题 更多 >