如何使用Stata从BigQuery下载查询结果或完整表数据
用Stata从BigQuery下载数据的实现方法
前置准备
- 先完成Google Cloud身份验证:本地安装Google Cloud SDK后,运行
gcloud auth application-default login完成授权,确保账号有目标BigQuery资源的访问权限 - 确保你的Stata为16及以上版本(支持Python集成),且Python环境已安装
google-cloud-bigquery和pandas依赖,可直接在Stata中运行以下命令安装:python pip install google-cloud-bigquery pandas
实现你需要的一行式download命令
你想要的直接传入查询语句和保存路径的效果,可以通过封装Stata自定义命令实现,操作步骤如下:
- 新建名为
download.ado的文件,保存到Stata个人ado目录(在Stata中运行personal命令即可查看对应目录路径),文件内容为:
program define download version 16 args query save_path python: from google.cloud import bigquery import pandas as pd client = bigquery.Client() query_content = """`query'""" result_df = client.query(query_content).to_dataframe() result_df.to_csv("`save_path'", index=False, encoding="utf-8-sig") end di "查询结果已保存至:`save_path'" end
- 重启Stata后,就可以直接运行你需要的语句,直接将查询结果保存为本地CSV:
download "SELECT * FROMproject.dataset.table" "~/Downloads/table.csv"
注意:如果运行时查询语句内的反引号识别异常,可以给反引号加反斜杠转义即可。
全表直接下载方法
如果不需要自定义筛选,直接下载整张表可以用两种方式实现:
- 直接用上面封装好的
download命令,查询语句填写SELECT * FROM \项目名.数据集名.表名``即可 - 如果是超大型表,可以在封装的Python代码中添加BigQuery批量导出到云存储再拉取到本地的逻辑,避免内存占用过高的问题
备选方案:ODBC连接实现
如果你不想使用Python集成,也可以通过ODBC驱动完成操作:
- 先安装Google官方BigQuery ODBC驱动,配置好对应DSN连接
- 之后用Stata原生
odbc命令查询导出即可,示例代码:
odbc load, exec("SELECT * FROM `project.dataset.table`") dsn("你配置的BigQuery DSN名称") clear export delimited using "~/Downloads/table.csv", replace
内容的提问来源于stack exchange,提问作者Ricardo Dahis
相关产品推荐
相关产品推荐

