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 |