Dask + BigQuery集成
项目描述
Dask-BigQuery
使用Dask读写Google BigQuery中的数据。
此包使用BigQuery存储API。请参阅数据提取定价表了解使用Dask-BigQuery的相关费用。
安装
dask-bigquery
可以使用pip
安装
pip install dask-bigquery
或使用conda
conda install -c conda-forge dask-bigquery
Google Cloud权限
对于从BigQuery读取,需要在账户中启用以下角色
BigQuery Read Session User
BigQuery Data Viewer
,BigQuery Data Editor
或BigQuery Data Owner
或者,BigQuery Admin
将为您提供对会话和数据的完全访问权限。
对于写入BigQuery,以下角色就足够了
BigQuery Data Editor
Storage Object Creator
涵盖读取和写入的最小权限
BigQuery Data Editor
BigQuery Read Session User
Storage Object Creator
身份验证
默认情况下,dask-bigquery
将使用应用默认凭证。在本地运行代码时,您可以通过以下命令将其设置为使用您的用户凭证:
$ gcloud auth application-default login
用户凭证需要交互式登录。对于无法进行交互式登录的设置,您需要创建一个服务帐户。您可以使用GOOGLE_APPLICATION_CREDENTIALS
环境变量将应用默认凭证设置为服务帐户密钥
$ export GOOGLE_APPLICATION_CREDENTIALS=/home/<username>/google.json
有关获取凭证的信息,请参阅Google API 文档。
示例:从 BigQuery 读取
dask-bigquery
假定您已经进行了认证。
import dask_bigquery
ddf = dask_bigquery.read_gbq(
project_id="your_project_id",
dataset_id="your_dataset",
table_id="your_table",
)
ddf.head()
示例:写入 BigQuery
使用默认凭证写入 BigQuery
假设客户端和工作者已经通过默认凭证进行了配置
import dask
import dask_bigquery
ddf = dask.datasets.timeseries(freq="1min")
res = dask_bigquery.to_gbq(
ddf,
project_id="my_project_id",
dataset_id="my_dataset_id",
table_id="my_table_name",
)
在将数据加载到 BigQuery 之前,to_gbq
会将中间 Parquet 写入 Google Storage 存储桶。默认存储桶名称为<your_project_id>-dask-bigquery
。您可以通过设置参数来提供不同的存储桶名称:bucket="my-gs-bucket"
。作业完成后,中间数据将被删除。
使用显式(非默认)凭证写入 BigQuery
# service account credentials
creds_dict = {"type": ..., "project_id": ..., "private_key_id": ...}
res = to_gbq(
ddf,
project_id="my_project_id",
dataset_id="my_dataset_id",
table_id="my_table_name",
credentials=credentials,
)
在本地运行测试
要在本地运行测试,您需要认证并且在该帐户上创建一个项目。如果您使用的是服务帐户,则在创建时需要选择“BigQuery Admin”角色。
您可以使用以下命令运行测试:
$ pytest dask_bigquery
如果您已设置默认的gcloud
项目,或者可以使用以下命令手动指定项目 ID:
DASK_BIGQUERY_PROJECT_ID pytest dask_bigquery
历史
该项目源于这个 Dask 问题以及由Brett Naul、Jacob Hayes和Steven Soojin Kim开发的初始实现中的讨论。
许可
项目详情
下载文件
下载适用于您的平台文件。如果您不确定选择哪个,请了解有关安装包的更多信息。
源分发
构建分发
dask_bigquery-2024.7.0.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 2807bbdd934627d0ed47c58d0e7b6075af9cba7e6f2d2e4a1e2173e20e76a023 |
|
MD5 | 77514f951fcfb0eec4ed79931384f88b |
|
BLAKE2b-256 | 9f978a0a6b5b59ee1334542e9f674cfa2d97598e3b49e1ae6843406a8b820542 |