使用 Dataplex Universal Catalog 管理 Cloud SQL 資源

本頁說明如何使用 Dataplex Universal Catalog 搜尋及管理 Cloud SQL 資源。

Dataplex Universal Catalog 平台可儲存、管理及存取中繼資料。Dataplex Universal Catalog 會自動從 Cloud SQL 執行個體、資料庫、資料表、資料欄和檢視區塊擷取下列中繼資料:

  • 名稱
  • 位置 (區域)
  • 建立日期和上次修改日期
  • 結構定義 (適用於資料表和檢視表)
  • 說明

即使未啟用整合功能,Dataplex Universal Catalog 仍可在 Cloud SQL 執行個體層級擷取中繼資料。不過,您必須先啟用整合功能,Dataplex Universal Catalog 才會從執行個體所屬的資源 (例如資料庫、表格、資料欄和檢視區塊) 擷取中繼資料。

Dataplex Universal Catalog 只會從 Cloud SQL 主要執行個體擷取中繼資料,不會從唯讀備用資源擷取。

您可以使用 Dataplex Universal Catalog 探索及瞭解 Cloud SQL 中繼資料。使用 Dataplex Universal Catalog 協助進行下列活動:

  • 分析,包括依附元件和是否適合用途
  • 變更管理
  • 資料移動 (管道)
  • 結構定義演變

您可以使用 Dataplex Universal Catalog,將各個層面附加至 Cloud SQL 中繼資料項目,藉此管理中繼資料。每個層面可有多個中繼資料欄位,且可根據預先定義或自訂的層面類型。

舉例來說,您可能會將下列層面附加至包含身分證字號的資料欄,這類資訊屬於個人識別資訊 (PII):

  pii:true
  pii_type:SSN

如要進一步瞭解 Dataplex Universal Catalog,請參閱「關於 Dataplex Universal Catalog 中的資料目錄管理」。

事前準備

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  3. Make sure that billing is enabled for your Google Cloud project.

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

    Go to project selector

  5. Make sure that billing is enabled for your Google Cloud project.

  6. 為專案啟用 Dataplex API。

    啟用 Dataplex API

  7. 請檢查權限。

    您需要特定 Identity and Access Management (IAM) 角色和權限,才能搜尋項目並附加至 Cloud SQL 資產。詳情請參閱「Dataplex Universal Catalog 的必要 IAM 角色和權限」。

  8. Dataplex Universal Catalog 的必要 IAM 角色和權限

    Cloud SQL 會使用 cloudsql.schemas.view 權限,提供 Dataplex Universal Catalog 中繼資料的存取權。

    如要提供這項權限,請建立包含這項權限的自訂角色,或使用具備這項權限的預先定義角色。

    詳情請參閱「預先定義的 Cloud SQL IAM 角色」。

    在 Cloud SQL 執行個體上啟用 Dataplex Universal Catalog 整合功能

    如要在 Cloud SQL 執行個體上啟用 Dataplex Universal Catalog 整合功能,請使用下列其中一種程序。

    gcloud

    建立執行個體

    如要建立 Cloud SQL 執行個體,請使用 gcloud sql instances create 指令。

    gcloud sql instances create INSTANCE_NAME \
      --database-version=DATABASE_VERSION \
      --tier=MACHINE_TYPE \
      --region=REGION_NAME \
      --enable-dataplex-integration

    請將下列項目改為對應的值:

    • INSTANCE_NAME:執行個體名稱
    • DATABASE_VERSION:執行個體的資料庫版本 (例如 POSTGRES_13);如需可用字串的完整清單,請參閱 SqlDatabaseVersion
    • MACHINE_TYPE:執行個體的機器類型
    • REGION_NAME:執行個體的區域名稱

    更新執行個體

    如要為現有執行個體啟用整合功能,請使用 gcloud sql instances patch 指令。

    gcloud sql instances patch INSTANCE_NAME \
      --enable-dataplex-integration

    如要啟用及更新專案中的所有 Cloud SQL 執行個體,可以執行類似下列的指令碼:

    gcloud sql instances list --format="(NAME)" \
    | tail -n +2 | xargs -t -I %
    gcloud sql instances patch % --enable-dataplex-integration

    本範例以 Linux 為基礎。

    REST v1

    建立執行個體

    使用這個範例建立已啟用整合功能的執行個體。 如需此呼叫可用的完整參數清單,請參閱 instances.insert 頁面。

    使用任何要求資料之前,請先替換以下項目:

    • PROJECT_ID:包含執行個體的專案 ID 或專案編號 Google Cloud
    • INSTANCE_NAME:執行個體名稱
    • REGION_NAME:執行個體的區域名稱
    • DATABASE_VERSION:資料庫版本的列舉字串 (例如 POSTGRES_13)。如需可用字串的完整清單,請參閱 SqlDatabaseVersion
    • PASSWORDroot 使用者的密碼
    • MACHINE_TYPE:機器 (層級) 類型的列舉字串,如下所示: db-custom-[CPUS]-[MEMORY_MBS]
    • EDITION_TYPE:您的 Cloud SQL 版本

    HTTP 方法和網址:

    POST https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances

    JSON 要求主體:

    {
      "name": "INSTANCE_NAME",
      "region": "REGION_NAME",
      "databaseVersion": "DATABASE_VERSION",
      "rootPassword": "PASSWORD",
      "settings": {
        "tier": "MACHINE_TYPE",
        "edition": "EDITION_TYPE",
        "enableDataplexIntegration": true
      }
    }
    

    如要傳送要求,請展開以下其中一個選項:

    您應該會收到如下的 JSON 回應:

    {
      "kind": "sql#operation",
      "targetLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID",
      "status": "PENDING",
      "user": "user@example.com",
      "insertTime": "2024-09-25T22:19:33.735Z",
      "operationType": "CREATE",
      "name": "OPERATION_ID",
      "targetId": "INSTANCE_ID",
      "selfLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/operations/OPERATION_ID",
      "targetProject": "PROJECT_ID"
    }
    

    更新執行個體

    使用這個範例更新現有執行個體。如要查看此呼叫可用的完整參數清單,請參閱 instances.patch 頁面。

    使用任何要求資料之前,請先替換以下項目:

    • PROJECT_ID:包含執行個體的 Google Cloud 專案 ID 或專案編號
    • INSTANCE_NAME:執行個體名稱

    HTTP 方法和網址:

    PATCH https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_NAME

    JSON 要求主體:

    {
      "settings":
      {
        "enableDataplexIntegration": true
      }
    }
    

    如要傳送要求,請展開以下其中一個選項:

    您應該會收到如下的 JSON 回應:

    {
      "kind": "sql#operation",
      "targetLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_NAME",
      "status": "PENDING",
      "user": "user@example.com",
      "insertTime": "2024-01-16T02:32:12.281Z",
      "operationType": "UPDATE",
      "name": "OPERATION_ID",
      "targetId": "INSTANCE_NAME",
      "selfLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/operations/OPERATION_ID",
      "targetProject": "PROJECT_ID"
    }
    

    REST v1beta4

    建立執行個體

    使用這個範例建立已啟用整合功能的執行個體。 如需此呼叫可用的完整參數清單,請參閱 instances.insert 頁面。

    使用任何要求資料之前,請先替換以下項目:

    • PROJECT_ID:包含執行個體的專案 ID 或專案編號 Google Cloud
    • INSTANCE_NAME:執行個體名稱
    • REGION_NAME:執行個體的區域名稱
    • DATABASE_VERSION:資料庫版本的列舉字串 (例如 POSTGRES_13)。如需可用字串的完整清單,請參閱 SqlDatabaseVersion
    • PASSWORDroot 使用者的密碼
    • MACHINE_TYPE:機器 (層級) 類型的列舉字串,如下所示: db-custom-[CPUS]-[MEMORY_MBS]
    • EDITION_TYPE:您的 Cloud SQL 版本

    HTTP 方法和網址:

    POST https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances

    JSON 要求主體:

    {
      "name": "INSTANCE_NAME",
      "region": "REGION_NAME",
      "databaseVersion": "DATABASE_VERSION",
      "rootPassword": "PASSWORD",
      "settings": {
        "tier": "MACHINE_TYPE",
        "edition": "EDITION_TYPE",
        "enableDataplexIntegration": true
      }
    }
    

    如要傳送要求,請展開以下其中一個選項:

    您應該會收到如下的 JSON 回應:

    {
      "kind": "sql#operation",
      "targetLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID",
      "status": "PENDING",
      "user": "user@example.com",
      "insertTime": "2024-09-25T22:19:33.735Z",
      "operationType": "CREATE",
      "name": "OPERATION_ID",
      "targetId": "INSTANCE_ID",
      "selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/operations/OPERATION_ID",
      "targetProject": "PROJECT_ID"
    }
    

    更新執行個體

    使用這個範例更新現有執行個體。 如要查看此呼叫可用的完整參數清單,請參閱 instances.patch 頁面。

    使用這個範例更新現有執行個體。如需此呼叫可用的完整參數清單,請參閱 instances.patch 頁面。

    使用任何要求資料之前,請先替換以下項目:

    • PROJECT_ID:包含執行個體的 Google Cloud 專案 ID 或專案編號
    • INSTANCE_NAME:執行個體名稱

    HTTP 方法和網址:

    PATCH https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_NAME

    JSON 要求主體:

    {
      "settings":
      {
        "enableDataplexIntegration": true
      }
    }
    

    如要傳送要求,請展開以下其中一個選項:

    您應該會收到如下的 JSON 回應:

    {
      "kind": "sql#operation",
      "targetLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_NAME",
      "status": "PENDING",
      "user": "user@example.com",
      "insertTime": "2024-01-16T02:32:12.281Z",
      "operationType": "UPDATE",
      "name": "OPERATION_ID",
      "targetId": "INSTANCE_NAME",
      "selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/operations/OPERATION_ID",
      "targetProject": "PROJECT_ID"
    }
    

    在 Cloud SQL 執行個體上驗證 Dataplex Universal Catalog 整合

    如要確認執行個體是否已啟用 Dataplex Universal Catalog 整合功能,請使用下列其中一種程序。

    gcloud

    如要確認現有執行個體是否已啟用 Dataplex Universal Catalog 整合功能,請使用 gcloud sql instances describe 指令。

    gcloud sql instances describe INSTANCE_NAME

    INSTANCE_NAME 替換為執行個體的名稱。在輸出結果中,找出設為 true 的設定 enableDataplexIntegration

    REST v1

    使用任何要求資料之前,請先替換以下項目:

    • PROJECT_ID:專案 ID
    • INSTANCE_ID:執行個體 ID

    HTTP 方法和網址:

    GET https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID

    如要傳送要求,請展開以下其中一個選項:

    您應該會收到如下的 JSON 回應:

    {
    "settings":
      {
      "enableDataplexIntegration": true
      }
    }
    

    REST v1beta4

    使用任何要求資料之前,請先替換以下項目:

    • PROJECT_ID:專案 ID
    • INSTANCE_ID:執行個體 ID

    HTTP 方法和網址:

    GET https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID

    如要傳送要求,請展開以下其中一個選項:

    您應該會收到如下的 JSON 回應:

    {
    "settings":
      {
      "enableDataplexIntegration": true
      }
    }
    

    停用 Cloud SQL 執行個體上的 Dataplex Universal Catalog 整合功能

    如要停用 Cloud SQL 執行個體的 Dataplex Universal Catalog 整合功能,請使用下列其中一種程序。

    gcloud

    如要停用現有執行個體的整合功能,請使用 gcloud sql instances patch 指令。

    gcloud sql instances patch INSTANCE_NAME \
      --no-enable-dataplex-integration

    如要停用整合功能,並更新專案中的所有 Cloud SQL 執行個體,可以執行類似下列的指令碼:

    gcloud sql instances list --format="(NAME)" \
    | tail -n +2 | xargs -t -I %
    gcloud sql instances patch % --no-enable-dataplex-integration

    本範例以 Linux 為基礎。

    REST v1

    請使用這個範例停用整合功能。

    使用任何要求資料之前,請先替換以下項目:

    • PROJECT_ID:包含執行個體的 Google Cloud 專案 ID 或專案編號
    • INSTANCE_NAME:執行個體名稱

    HTTP 方法和網址:

    PATCH https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_NAME

    JSON 要求主體:

    {
      "settings":
      {
        "enableDataplexIntegration": false
      }
    }
    

    如要傳送要求,請展開以下其中一個選項:

    您應該會收到如下的 JSON 回應:

    {
      "kind": "sql#operation",
      "targetLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_NAME",
      "status": "PENDING",
      "user": "user@example.com",
      "insertTime": "2024-01-16T02:32:12.281Z",
      "operationType": "UPDATE",
      "name": "OPERATION_ID",
      "targetId": "INSTANCE_NAME",
      "selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/operations/OPERATION_ID",
      "targetProject": "PROJECT_ID"
    }
    

    REST v1beta4

    請使用這個範例停用整合功能。

    使用任何要求資料之前,請先替換以下項目:

    • PROJECT_ID:包含執行個體的 Google Cloud 專案 ID 或專案編號
    • INSTANCE_NAME:執行個體名稱

    HTTP 方法和網址:

    PATCH https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_NAME

    JSON 要求主體:

    {
      "settings":
      {
        "enableDataplexIntegration": false
      }
    }
    

    如要傳送要求,請展開以下其中一個選項:

    您應該會收到如下的 JSON 回應:

    {
      "kind": "sql#operation",
      "targetLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_NAME",
      "status": "PENDING",
      "user": "user@example.com",
      "insertTime": "2024-01-16T02:32:12.281Z",
      "operationType": "UPDATE",
      "name": "OPERATION_ID",
      "targetId": "INSTANCE_NAME",
      "selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/operations/OPERATION_ID",
      "targetProject": "PROJECT_ID"
    }
    

    使用層面擴充 Cloud SQL 資產

    切面類型是可重複使用的資源,可用做切面的範本。切面類型可協助您避免重複作業和不完整的切面。您可以使用 Dataplex Universal Catalog 建立所需的切面類型。

    建立自訂層面類型後,您可以將層面附加至 Cloud SQL 資產。將構面附加至 Cloud SQL 資產,即可執行下列操作:

    • 在資產中新增商家中繼資料
    • 依業務中繼資料和其他自訂中繼資料搜尋資產

    如要進一步瞭解如何建立構面類型,以及將構面附加至 Cloud SQL,請參閱「管理構面及豐富中繼資料」。

    搜尋 Cloud SQL 資產

    在 Google Cloud 控制台 中,使用 Dataplex Universal Catalog 搜尋頁面搜尋 Cloud SQL 資產。

    1. 前往 Dataplex Universal Catalog 的「Search」(搜尋) 頁面。

      前往「搜尋」頁面

    2. 在「選擇搜尋平台」中,選取「Dataplex Catalog」

    3. 在「Filters」(篩選器) 面板中,按一下「Systems」(系統),然後選取「Cloud SQL」

    4. (選用步驟) 在「型別別名」中,選取一或多個下列型別別名,即可將搜尋結果篩選為特定類型的 Cloud SQL 資產:

      • 資料庫
      • 資料庫結構定義
      • 服務
      • Table
      • 查看

    使用查詢執行搜尋

    您也可以使用 Dataplex Universal Catalog 中的搜尋欄執行搜尋查詢。如要查看所有 Cloud SQL 資產,請輸入 system=Cloud_SQL

    然後輸入特定關鍵字。舉例來說,如要查看所有 Cloud SQL 資料庫,請執行下列指令:

    system=Cloud_SQL AND type=Database
    

    如要查看所有 Cloud SQL 資料表,請輸入下列查詢:

    system=Cloud_SQL AND type=Table
    

    您也可以使用括號和邏輯運算子 ANDOR,建立複雜的運算式。如要進一步瞭解搜尋欄中可使用的運算式,請參閱「Dataplex Universal Catalog 的搜尋語法」。

    您可以直接在搜尋欄位中輸入特定 Cloud SQL 資產的搜尋查詢。查詢字串的格式如下:

    type="projects/PROJECT_ID/locations/global/entryTypes/QUERY_STRING"

    更改下列內容:

    • PROJECT_ID:您的專案 ID
    • QUERY_STRING:請參閱下表,根據 Cloud SQL 引擎和要查詢的資產類型,找出查詢字串

      Cloud SQL 引擎 查詢字串
      MySQL 適用的 Cloud SQL
      • cloudsql-mysql-database
      • cloudsql-mysql-instance
      • cloudsql-mysql-table
      • cloudsql-mysql-view
      PostgreSQL 適用的 Cloud SQL
      • cloudsql-postgresql-database
      • cloudsql-postgresql-instance
      • cloudsql-postgresql-table
      • cloudsql-postgresql-schema
      • cloudsql-postgresql-view
      SQL Server 適用的 Cloud SQL
      • cloudsql-sqlserver-database
      • cloudsql-sqlserver-instance
      • cloudsql-sqlserver-table
      • cloudsql-sqlserver-schema
      • cloudsql-sqlserver-view

    查詢範例如下:

    type="projects/1234567890/locations/global/entryTypes/cloudsql-postgresql-instance"
    

    依 Cloud SQL 方言篩選 Cloud SQL 資產

    根據預設,Dataplex Universal Catalog 會顯示所有 Cloud SQL 資產。如要只篩選 MySQL 適用的 Cloud SQL、PostgreSQL 適用的 Cloud SQL 或 SQL Server 的資產,請按照下列步驟操作。

    1. 在「Aspects」(層面) 面板中,按一下「Add more aspect types」(新增更多層面類型) 選單。

    2. 選取「SQL Access」(SQL 存取權)

    3. 按一下 [確定]

    4. 按一下「playlist_add」 編輯外觀按鈕。在「SQL Access」(SQL 存取權) 頁面中,執行下列操作:

      • 在「方言」欄位中,選取「PostgreSQL」,篩選 PostgreSQL 適用的 Cloud SQL 資產。
    5. (選用步驟) 選取「版本」欄位,然後輸入特定版本的 PostgreSQL 適用的 Cloud SQL。
    6. 按一下 [套用]。Dataplex Universal Catalog 只會顯示 PostgreSQL 適用的 Cloud SQL 資產。

    Dataplex Universal Catalog 內建幾種切面類型,可用於執行搜尋。

    1. 在「Aspects」(層面) 面板中,按一下「Add more aspect types」(新增更多層面類型) 選單。

    2. (選用步驟) 選取「SQL 存取權」,依 Cloud SQL 方言篩選結果。詳情請參閱先前的程序「依 Cloud SQL 方言篩選 Cloud SQL 資產」。

    3. 選取下列一或多個面向類型,將搜尋結果限制為該類型。

      • Cloud SQL 資料庫
      • Cloud SQL 執行個體
      • Cloud SQL 檢視畫面
      • Cloud SQL 結構定義
      • Cloud SQL 資料表
    4. 按一下 [確定]

    5. 在結果表格中,按一下資產名稱,即可查看該資產的中繼資料。

    6. 選用:強化或查看素材資源。您可以執行下列任一操作:

      • 在「總覽」中,按一下「新增」,即可新增資產的 RTF 說明。
      • 在「Aspects」(面向) 中,按一下「Add」(新增),將面向附加至資產。
      • 舉例來說,如要查看成員資料庫,請按一下「項目清單」分頁標籤,然後按一下「在搜尋中顯示所有子項目」。 如果沒有顯示「項目清單」分頁,表示執行個體沒有資料庫。
      • 在「項目詳細資料」中,查看資產的完整詳細資料。按一下項目名稱,即可深入查看其他項目。

    工作流程範例 - 從執行個體向下鑽研至資料欄

    在這個工作流程範例中,您會先搜尋 Cloud SQL 執行個體,然後查看成員資料庫,接著查看該資料庫中的資料表,最後查看資料表中的資料欄。

    1. 前往 Dataplex Universal Catalog 的「Search」(搜尋) 頁面。

      前往「搜尋」頁面

    2. 在「選擇搜尋平台」選項中,選取「Dataplex Catalog」

    3. 在「Filters panel」(篩選器面板) 中,依序選取「Systems」(系統) 和「Cloud SQL」。 或者,在搜尋欄位中輸入 system=Cloud_SQL

    4. 選取執行個體名稱。

    5. 在「Cloud SQL details」(Cloud SQL 詳細資料) 頁面中,按一下「Entry list」(項目清單) 分頁標籤,然後按一下「在搜尋中顯示所有子項目」。 Dataplex Universal Catalog 會顯示執行個體中的資料庫。

    6. 在「Cloud SQL database details」(Cloud SQL 資料庫詳細資料) 頁面中,按一下「Entry list」(項目清單) 分頁,然後按一下「View child entries in search」(在搜尋中查看子項目)。Dataplex Universal Catalog 會顯示資料庫中的資料表。

    7. 選取資料表名稱,然後在「Cloud SQL table details」(Cloud SQL 資料表詳細資料) 頁面上,按一下「Schema」(結構定義) 即可查看資料表欄。

    8. 選用:如要為欄新增層面類型,請按一下「新增層面」按鈕。

    這個工作流程示範如何從執行個體向下鑽研至資料表。在搜尋欄位中輸入 system=Cloud_SQL AND type=Table,即可直接前往資料表清單。

    定價

    在 Dataplex Universal Catalog 中儲存 Cloud SQL 技術中繼資料不會產生費用。API 呼叫和額外商業中繼資料擴充功能適用標準 Dataplex Universal Catalog 定價。詳情請參閱 Dataplex Universal Catalog 定價頁面

    資源使用情況

    Dataplex Universal Catalog 會定期從執行個體擷取資料。 擷取程序需要一定的 CPU 用量。如果執行個體使用較小的機器類型 (例如共用核心的機器和較大的結構定義 (10,000 個以上的表格)),在擷取程序期間最多可使用 40% 的 CPU。

    限制

    本節列出使用 Cloud SQL 和 Dataplex Universal Catalog 的限制。

    • 如果資源已註冊 Assured Workloads,導致任何執行個體無法存取資源,系統就會停用 Dataplex Universal Catalog 與 Cloud SQL 的整合功能。

    • 在執行個體上啟用 Dataplex Universal Catalog 後,Cloud SQL 資源可能需要 2 到 48 小時才會在 Dataplex Universal Catalog 中顯示為資產,具體時間取決於您使用的機器大小、版本和 Cloud SQL 引擎類型。

    PostgreSQL 適用的 Cloud SQL 和 Dataplex 通用目錄沒有已知限制。

    後續步驟