如何从本地机器访问 GCP bigquery API?

Posted

技术标签:

【中文标题】如何从本地机器访问 GCP bigquery API?【英文标题】:How to access GCP bigquery APIs from local machine? 【发布时间】:2019-12-12 01:42:48 【问题描述】:

我需要通过本地计算机上的应用程序代码访问驻留在 GCP bigquery 中的数据集。

我在本地机器上的下载文件夹中创建了一个项目、服务帐户并下载了 json 文件(包含密钥)。服务帐户已获得授权,并且 GCP 中所有必需的 API 均已启用。问题在于设置 GOOGLE_APPLICATION_CREDENTIALS 环境变量。无法从 cloud shell 和 windows cmd 设置它。带key的json文件目前保存在downloads文件夹中。

是否需要将 json 文件(包含密钥)从我的下载文件夹移动到本地计算机上的某个特定路径? 如何从云 shell 为存储在本地计算机上的 json 文件设置 GOOGLE_APPLICATION_CREDENTIALS 以访问 GCP bigquery API?

从 google.cloud 导入 bigquery

将 seaborn 导入为 sns

将 matplotlib.pyplot 导入为 plt

将熊猫导入为 pd

将 numpy 导入为 np

导入关闭

sql = """ 选择 皮卡日期时间,皮卡经度,皮卡纬度,掉落经度, dropoff_latitude、passenger_count、trip_distance、tolls_amount、 票价金额,总金额 来自nyc-tlc.yellow.trips 限制 10 """

client = bigquery.Client() trips = client.query(sql).to_dataframe() 旅行

错误: DefaultCredentialsError:无法自动确定凭据。请设置 GOOGLE_APPLICATION_CREDENTIALS 或显式创建凭据并重新运行应用程序。更多信息请查看https://cloud.google.com/docs/authentication/getting-started

【问题讨论】:

【参考方案1】:

这是设置凭据路径的方法:

import os
os.environ['GOOGLE_APPLICATION_CREDENTIALS'] = '/path/to/your/credentials_file.json'

【讨论】:

感谢vinoaj帮我解决这个问题!

以上是关于如何从本地机器访问 GCP bigquery API?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Bigquery 连接 GCP SQL 实例?

如何将消息从 GCP 推送订阅传递到本地 PC?

GCP:IAM 和 BigQuery

GCP - 从 PubSub 到 BigQuery 的消息

从 GCP 到本地的 Scala sql 查询远程访问错误

如何根据本地 csv 的 where 子句从 pandas 访问 Google Bigquery 数据