Google BigQuery 设置

Driverless AI 让您能从 Driverless AI 应用程序内探索 Google BigQuery (GBQ) 数据源。本节介绍如何配置 Driverless AI 与 GBQ 配合使用。此项设置要求您启用身份验证。如果您启用 GCS 和/或 GBQ 连接器,则这些文件系统将在 UI 中提供,但如果未经身份验证,您将无法使用这些连接器。

若需启用经身份验证的 GBQ 数据连接器,您必须:

  1. 从 GCP 获取 JSON 身份验证文件。

  2. 将 JSON 文件挂载至 Docker 实例。

  3. 使用 gcs_path_to_service_account_json 配置选项指定 /json_auth_file.json 的路径。

请注意

  • 服务帐户 JSON 中包含由系统管理员提供的身份验证。您将获得一份 JSON 文件,其中可能包含 Google Cloud Storage 和 Google BigQuery 身份验证信息,也可能仅包含其中一个或都不包含。

  • 根据您所安装的 Docker 版本,在启动 Driverless AI Docker 映像时,使用 docker run --runtime=nvidia (>= Docker 19.03) 或 nvidia-docker (< Docker 19.03) 命令。使用 docker version 来检查您使用的 Docker 版本。

以下各节介绍如何启用 GBQ 数据连接器。

使用 config.toml 文件启用 GBQ

本示例通过传递 JSON 身份验证文件启用经身份验证的 GBQ 数据连接器。这假设 JSON 文件包含 Google BigQuery 身份验证。

 nvidia-docker run \
     --pid=host \
     --rm \
     --shm-size=256m \
     -e DRIVERLESS_AI_ENABLED_FILE_SYSTEMS="file,gbq" \
     -e DRIVERLESS_AI_GCS_PATH_TO_SERVICE_ACCOUNT_JSON="/service_account_json.json" \
     -u `id -u`:`id -g` \
     -p 12345:12345 \
     -v `pwd`/data:/data \
     -v `pwd`/log:/log \
     -v `pwd`/license:/license \
     -v `pwd`/tmp:/tmp \
     -v `pwd`/service_account_json.json:/service_account_json.json \
     h2oai/dai-centos7-x86_64:1.10.2-cuda11.2.2.xx

通过设置环境变量启用 GBQ

可通过设置 GOOGLE_APPLICATION_CREDENTIALS 环境变量对 GBQ 数据连接器进行配置,如下所示:

export GOOGLE_APPLICATION_CREDENTIALS="SERVICE_ACCOUNT_KEY_PATH"

在上例中,将 SERVICE_ACCOUNT_KEY_PATH 替换为包含您服务帐户密钥的 JSON 文件的路径。以下是一个相关示例:

export GOOGLE_APPLICATION_CREDENTIALS="/etc/dai/service-account.json"

要了解如何使用 Docker 设置此环境变量,请参阅以下示例:

nvidia-docker run \
    --pid=host \
    --rm \
    --shm-size=256m \
    -e DRIVERLESS_AI_ENABLED_FILE_SYSTEMS="file,gbq" \
    -e GOOGLE_APPLICATION_CREDENTIALS="/service_account.json" \
    -u `id -u`:`id -g` \
    -p 12345:12345 \
    -v `pwd`/data:/data \
    -v `pwd`/log:/log \
    -v `pwd`/license:/license \
    -v `pwd`/tmp:/tmp \
    -v `pwd`/service_account_json.json:/service_account_json.json \
    h2oai/dai-centos7-x86_64:1.10.2-cuda11.2.2.xx

有关设置 GOOGLE_APPLICATION_CREDENTIALS 环境变量的更多信息,请参阅 `有关设置环境变量 <https://cloud.google.com/docs/authentication/getting-started#setting_the_environment_variable> 的官方文档`_

通过启用 GKE 群集的工作负载标识来启用 GBQ

可以通过启用 Google Kubernetes Engine (GKE) 群集的工作负载标识来配置 GBQ 数据连接器。欲了解如何启用工作负载标识,请参阅 有关在 GKE 群集上启用工作负载标识 <https://cloud.google.com/kubernetes-engine/docs/how-to/workload-identity#enable_on_cluster> 的官方文档 _。

注解

如果启用了工作负载标识,则无需设置 GOOGLE_APPLICATION_CREDENTIALS 环境变量。

使用 GBQ 添加数据集

启用 Google BigQuery 后,您可以通过在 添加数据集(或拖放) 下拉菜单中选择 Google Big Query 来添加数据集。

Add Dataset

指定以下信息以添加数据集。

  1. 输入具有写入权限的 BQ 数据集 ID 来创建临时表:在 Google BigQuery 中输入用户具有读取/写入权限的数据集 ID。BigQuery 会将此数据集作为由查询生成的新表单的位置。

请注意:将 Driverless AI 连接至 GBQ,这将从服务 JSON 文件中继承顶级目录。因此,如果名为 “my-dataset” 的数据集在名为 “dai-gbq” 的顶级目录中,则数据集 ID 输入字段的值应为 “my-dataset”,而不是 “dai-gbq:my-dataset”。

  1. 输入 Google Storage 目标存储桶:指定 Google Cloud Storage 目标存储桶的名称。请注意,用户必须具有此存储桶的写入权限。

  2. 输入要保存为的数据集名称:指定数据集名称,例如,“my_file”。

  3. 输入 BigQuery 查询(使用 StandardSQL):输入您想让 BigQuery 执行的 StandardSQL 查询。例如: SELECT * FROM <my_dataset>.<my_table>.

  4. (可选)指定与 GBQ 连接器一起使用的项目。这相当于在使用命令行界面时提供 --project

  5. 完成后,选择 单击以执行查询 按钮以添加数据集。

Make BigQuery