You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python连接BigQuery:OAuth2.0认证完成后的后续操作指引

基于现有OAuth认证实现BigQuery数据操作

你已经完成了OAuth 2.0身份认证,接下来可以通过google.cloud.bigquery官方SDK快速实现表数据的读取、加载、删除和更新操作,步骤如下:

1. 创建BigQuery客户端

基于已有的creds对象初始化客户端,这是所有操作的基础:

# 替换为你的GCP项目ID,若client文件包含项目信息可省略project参数
client = bigquery.Client(credentials=creds, project="你的GCP项目ID")

2. 读取表数据

提供两种常用读取方式:

方式一:执行SQL查询

query = """
SELECT * FROM `你的项目ID.数据集ID.目标表名` LIMIT 100
"""
query_job = client.query(query)
results = query_job.result()

# 遍历输出结果
for row in results:
    print(row)

方式二:直接读取表并转为DataFrame

# 获取目标表对象
table = client.get_table("你的项目ID.数据集ID.目标表名")
# 读取表数据(限制100行)
rows = client.list_rows(table, max_results=100)

# 转为DataFrame(需提前安装pandas)
import pandas as pd
df = rows.to_dataframe()
print(df.head())

3. 加载数据到表

以加载DataFrame为例,支持追加/覆盖等写入模式:

import pandas as pd

# 示例数据,需与目标表结构匹配
sample_data = [("张三", 25), ("李四", 30)]
df = pd.DataFrame(sample_data, columns=["name", "age"])

# 配置加载任务
load_job = client.load_table_from_dataframe(
    df,
    "你的项目ID.数据集ID.目标表名",
    job_config=bigquery.LoadJobConfig(
        write_disposition="WRITE_APPEND"  # 可选:WRITE_TRUNCATE(覆盖)、WRITE_EMPTY(仅空表写入)
    )
)
load_job.result()  # 等待加载完成
print(f"成功加载{load_job.output_rows}行数据")

4. 删除表数据

BigQuery通过SQL DELETE语句实现数据删除:

delete_query = """
DELETE FROM `你的项目ID.数据集ID.目标表名`
WHERE age > 28
"""
delete_job = client.query(delete_query)
delete_job.result()
print(f"成功删除{delete_job.num_dml_affected_rows}行数据")

5. 更新表数据

通过SQL UPDATE语句实现数据更新:

update_query = """
UPDATE `你的项目ID.数据集ID.目标表名`
SET age = age + 1
WHERE name = '张三'
"""
update_job = client.query(update_query)
update_job.result()
print(f"成功更新{update_job.num_dml_affected_rows}行数据")

注意事项

  • 确保你的OAuth账号拥有对应权限(如BigQuery Data Editor),否则会触发权限错误。
  • DML操作(DELETE/UPDATE)会产生费用且不可撤销,执行前请确认条件准确性。
  • 若需加载本地文件(CSV/JSON等),可使用client.load_table_from_file方法,配合LoadJobConfig指定文件格式。

内容的提问来源于stack exchange,提问作者silentninja89

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.24 02:52:44