本頁面說明如何為 SQL Server 適用的 Cloud SQL 執行個體啟用及停用 PolyBase。
如需 PolyBase 的總覽資訊,請參閱「SQL Server 適用的 Cloud SQL 對 PolyBase 的支援」。
如要瞭解如何設定,請參閱「設定要與 PolyBase 搭配使用的外部資料來源」。
事前準備
-
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 theresourcemanager.projects.createpermission. Learn how to grant roles.
-
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.
-
Verify that billing is enabled for your Google Cloud project.
Enable the Cloud SQL, Cloud SQL Admin, and Compute Engine APIs, if any are not already enabled.
Roles required to enable APIs
To enable APIs, you need the
serviceusage.services.enablepermission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.- 設定網路,允許 SQL Server 適用的 Cloud SQL 與外部資料來源之間的流量。
- 如果 SQL Server 無法成功建立連線,則設定或查詢外部資料來源的 T-SQL 指令會失敗。
無論使用公開或私人 IP 位址,請務必確認 Cloud SQL 執行個體和任何支援的 Google Cloud 資源,都能在資料來源的防火牆內存取外部資料來源。
如果您使用的是 Cloud SQL 執行個體的公開 IP 位址,則還需要取得基礎 Compute Engine VM 的存取權,並取得其 IP 位址。由於這個基礎 VM 不會對外提供給使用者,因此您必須與 Google Cloud 支援團隊聯絡,才能擷取其 IP 位址。如果重新建立執行個體,這個 IP 位址可能會變更。
- 如要啟用或停用 PolyBase,您必須具備下列權限:
cloudsql.instances.getcloudsql.instances.update
roles/cloudsql.editorroles/cloudsql.admin
授予存取權時,建議您採用最小權限原則。
或者,您也可以將這些權限指派給自訂角色。
查看執行個體現有的倉儲資料庫名稱。
啟用 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
您可以使用資料庫旗標,為 SQL Server 適用的 Cloud SQL 執行個體啟用 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)
- 資料來源
- 資料範圍憑證
- 外部資料表
系統會保留這些資源,以便您日後重新啟用這項功能。