启用和停用 PolyBase

<meta <="" content="本页面介绍如何为 Cloud SQL for SQL Server 实例启用和停用 PolyBase。" name="description" />

本页面介绍如何为 Cloud SQL for SQL Server 实例启用和停用 PolyBase。

如需了解 PolyBase 的概览信息,请参阅 Cloud SQL for SQL Server 对 PolyBase 的支持

如需了解如何设置配置,请参阅 配置外部数据源以与 PolyBase 搭配使用

准备工作

  1. 登录您的 Google Cloud 账号。如果您是 Google Cloud新手, 请创建一个账号来评估我们的产品在 实际场景中的表现。新客户还可获享 $300 赠金,用于 运行、测试和部署工作负载。
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  3. If you're using an existing project for this guide, verify that you have the permissions required to complete this guide. If you created a new project, then you already have the required permissions.

  4. Verify that billing is enabled for your Google Cloud project.

  5. Enable the Cloud SQL, Cloud SQL Admin, and Compute Engine APIs.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the APIs

  6. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  7. If you're using an existing project for this guide, verify that you have the permissions required to complete this guide. If you created a new project, then you already have the required permissions.

  8. Verify that billing is enabled for your Google Cloud project.

  9. Enable the Cloud SQL, Cloud SQL Admin, and Compute Engine APIs.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the APIs

  10. 配置网络,以允许 Cloud SQL for SQL Server 与您的 外部数据源之间的流量。
    • 如果 SQL Server 无法建立成功的连接,则用于设置或查询外部数据源的 T-SQL 命令会失败。
    • 无论使用公共 IP 地址还是专用 IP 地址,请确保 Cloud SQL 实例、 和任何支持 Google Cloud 资源都可以在数据源的防火墙内访问外部数据 源。

      如果您使用的是 Cloud SQL 实例的公共 IP 地址,则还需要获取 对底层 Compute Engine 虚拟机的访问权限,并且必须获取其 IP 地址。由于此底层虚拟机不会向用户公开,因此您必须与 Google Cloud 支持团队联系以检索 其 IP 地址。如果重新创建实例,此 IP 地址可能会发生变化。

  11. 如需启用或停用 PolyBase,您需要以下权限:
    • cloudsql.instances.get
    • cloudsql.instances.update
    以下任一角色都提供上述权限:
    • roles/cloudsql.editor
    • roles/cloudsql.admin

    我们建议您在授予访问权限时遵循最小权限原则

    或者,您也可以将这些权限分配给自定义角色

  12. 查看实例的现有仓库数据库名称。

    启用 PolyBase 后,系统会创建三个新的 PolyBase 数据仓库数据库:

    • DWConfiguration
    • DWQueue
    • DWDiagnostics

    在启用之前,请使用 SQL Server Management Studio (SSMS) 等工具验证是否已存在具有这些名称的任何数据库。如果存在,请先与 Google Cloud 支持团队 联系以获取帮助,然后再继续。

    这些系统数据库存在一些限制:

    • 您无法使用 Google Cloud 控制台、Cloud SQL Admin API 和 gcloud CLI 对 DW 数据库执行某些操作:
      • 创建
      • 删除
      • 列表
      • 导入
      不过,您可以使用导出命令来备份这些数据库。
    • 您无法使用 SQL Server Management Studio (SSMS) 访问 DW 数据库。
    • 如果实例已复制,则 DW 数据库不会复制到新资源。
    • 如果使用 PITR 恢复实例,则 DW 数据库不会复制到新资源。
    • 即使停用 PolyBase,DW 数据库也会保留。

    如需了解详情,请参阅以下资源:

使用数据库标志启用 PolyBase

您可以使用 数据库标志为 Cloud SQL for SQL Server 实例启用 PolyBase。所需的标志因您要使用的外部数据源类型而异:

  • 所有 外部数据源都需要 polybase 数据库标志。
  • 如果使用 Cloud Storage,您还需要应用 Microsoft SQL Server 跟踪标志,13702。启用此标志还会启用 PolyBase 支持所需的其他跟踪标志。

以下部分介绍如何在新建实例和现有实例上启用 PolyBase。

创建启用 PolyBase 的新实例

如需创建启用 PolyBase 的新实例,请运行以下 gcloud 命令:

Oracle

gcloud sql instances create INSTANCE_NAME \
  --database-version=VERSION --region=LOCATION \
  --root-password=PASSWORD --edition=EDITION \
  --cpu=NUMBER_OF_CPUs --memory=MEMORY_SIZE \
  --database-flags="DATABASE_FLAG"

替换以下内容:

  • INSTANCE_NAME:Cloud SQL 实例的名称。
  • VERSION:您要使用的数据库版本。
  • LOCATION:Cloud SQL 实例的位置。
  • PASSWORD:Cloud SQL 实例的密码。
  • EDITION:您要使用的数据库版本。
  • NUMBER_OF_CPUs:您要使用的 CPU 数量。
  • MEMORY_SIZE:您要使用的内存量。
  • DATABASE_FLAG:无论外部数据源的类型如何,启用 PolyBase 所需的数据库标志值。

    您必须输入 cloud sql enable polybase=on

    如需了解详情,请参阅数据库标志

Cloud Storage

gcloud sql instances create INSTANCE_NAME \
  --database-version=VERSION --region=LOCATION \
  --root-password=PASSWORD --edition=EDITION \
  --cpu=NUMBER_OF_CPUs --memory=MEMORY_SIZE \
  --database-flags="DATABASE_FLAG_CLOUD_STORAGE"

替换以下内容:

  • INSTANCE_NAME:Cloud SQL 实例的名称。
  • VERSION:您要使用的数据库版本。
  • LOCATION:Cloud SQL 实例的位置。
  • PASSWORD:Cloud SQL 实例的密码。
  • EDITION:您要使用的数据库版本。
  • NUMBER_OF_CPUs:您要使用的 CPU 数量。
  • MEMORY_SIZE:您要使用的内存量。
  • DATABASE_FLAG_CLOUD_STORAGE:启用 PolyBase 所需的数据库标志值。如果您的外部数据源是 Cloud Storage,则必须输入 cloud sql enable polybase=on,13702=on

    如需了解详情,请参阅数据库标志

在现有实例上启用 PolyBase

如需在现有实例上启用 PolyBase,请运行以下 gcloud 命令:

Oracle

gcloud sql instances patch INSTANCE_NAME \
--database-flags="DATABASE_FLAG"

替换以下内容:

  • INSTANCE_NAME:Cloud SQL 实例的名称。
  • DATABASE_FLAG:无论外部数据源的类型如何,启用 PolyBase 所需的数据库标志值。

您必须输入 cloud sql enable polybase=on

此示例仅用于说明目的。使用特定数据库标志设置运行 patch 操作会替换任何现有数据库标志。请务必添加您要保留的任何现有数据库标志。如果您省略了之前设置的数据库标志,则省略的标志将恢复为默认值。

如需了解详情,请参阅数据库标志

Cloud Storage

gcloud sql instances patch INSTANCE_NAME \
--database-flags="DATABASE_FLAG_CLOUD_STORAGE"

替换以下内容:

  • INSTANCE_NAME:Cloud SQL 实例的名称。
  • DATABASE_FLAG_CLOUD_STORAGE:无论外部数据源的类型如何,启用 PolyBase 所需的数据库标志值。

您必须输入 cloud sql enable polybase=on,13702=on

此示例仅用于说明目的。使用特定数据库标志设置运行 patch 操作会替换任何现有数据库标志。请务必添加您要保留的任何现有数据库标志。如果您省略了之前设置的数据库标志,则省略的标志将恢复为默认值。

如需了解详情,请参阅数据库标志

检查实例配置

如需检查是否在现有实例上启用了 PolyBase,请运行以下 gcloud 命令:

gcloud

gcloud sql instances describe INSTANCE_NAME \
  --format="value(settings.databaseFlags)"

替换以下内容:

  • INSTANCE_NAME:Cloud SQL 实例的名称。

停用 PolyBase

如需在实例上停用 PolyBase,请运行以下 gcloud 命令:

gcloud

gcloud sql instances patch INSTANCE_NAME \
--database-flags="cloud sql enable polybase=off"

替换以下内容:

  • INSTANCE_NAME:Cloud SQL 实例的名称。

停用 PolyBase 后,系统不会删除以下 PolyBase 资源:

  • DW 系统数据库
  • 数据库主密钥 (DMK)
  • 数据源
  • 数据范围凭据
  • 外部表

保留这些资源是为了方便您日后重新启用该功能。

后续步骤