本頁說明如何使用 Data Catalog 搜尋及管理 Spanner 資源。
Data Catalog 是 Knowledge Catalog 中可擴充的全代管中繼資料管理服務,系統會自動分類 Spanner 執行個體、資料庫、資料表、資料欄和檢視區塊的下列中繼資料:
- 名稱和完整名稱
- 位置 (區域)
- 建立日期和上次修改日期
- 結構定義 (適用於資料表和檢視表)
- 說明
Spanner 中繼資料會定期自動同步至 Data Catalog,通常每隔幾小時就會同步一次。您可以使用 Data Catalog 探索及瞭解 Spanner 中繼資料。使用 Data Catalog 輔助下列活動:
- 分析,包括依附元件和是否適合用途
- 變更管理
- 資料遷移 (管道)
- 漸進式結構定義更新
您可以使用 Data Catalog,將標記附加至 Spanner 中繼資料項目,藉此管理中繼資料。每個標記可有多個中繼資料欄位,且可根據預先定義或自訂的代碼範本建立。
舉例來說,您可以將下列標記附加至包含身分證字號 (個人識別資訊) 的資料欄:
pii:true
pii_type:SSN
移動使用標記的執行個體時,標記不會自動移至目的地執行個體。您必須先從來源執行個體匯出代碼,然後再移動執行個體,並將代碼匯入目的地執行個體。詳情請參閱「匯出及匯入代碼」。
如要進一步瞭解 Data Catalog,請參閱「什麼是 Data Catalog」。
事前準備
- 登入 Google Cloud 帳戶。如果您是 Google Cloud新手,歡迎 建立帳戶,親自評估產品在實際工作環境中的成效。新客戶還能獲得價值 $300 美元的免費抵免額,可用於執行、測試及部署工作負載。
-
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.
-
Verify that billing is enabled for your Google Cloud project.
-
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.
-
Verify that billing is enabled for your Google Cloud project.
-
為專案啟用 Data Catalog API。
-
請檢查權限。
您需要特定的 Identity and Access Management (IAM) 角色和權限,才能搜尋及將標記附加至 Spanner 資產。詳情請參閱「Data Catalog 的必要 IAM 角色和權限」。
建立標記範本
標記範本是可重複使用的結構,方便您快速建立新的標記。範本可協助您避免重複作業和不完整的代碼。視需要建立任意數量的代碼範本。
詳情請參閱「代碼和代碼範本」。
將標記附加至 Spanner 資產
將標記附加至 Spanner 資產,即可執行下列操作:
- 在資產中新增商家中繼資料。
- 依據業務中繼資料和其他自訂中繼資料搜尋資產。
詳情請參閱「代碼和代碼範本」。
搜尋 Spanner 資產
在 Google Cloud 控制台中使用知識目錄搜尋頁面,搜尋 Spanner 資產。
前往知識目錄搜尋頁面。
在「篩選器」面板的「系統」下方,選取「Spanner」。
知識目錄會顯示所有已知的 Spanner 資產。
選用步驟:如要縮小搜尋範圍,請執行下列任一操作:
在「搜尋」頁面上使用多面向搜尋。在「資料類型」、「專案」和「標記」下方,選取核取方塊。
在搜尋欄位中,於
system=cloud_spanner後方附加搜尋參數。以空格分隔參數。
舉例來說,如要只查看資料庫,請在搜尋欄位中輸入下列文字,然後按下
Enter。system=cloud_spanner type=database您也可以使用括號和邏輯運算子
and和or,建立複雜的運算式。如要進一步瞭解可在搜尋欄位中使用的運算式,請參閱 Data Catalog 搜尋語法。在結果表格中,按一下資產名稱,即可查看該資產的中繼資料。
選用:執行下列任一操作:
- 按一下「新增總覽」,即可新增資產的 RTF 格式說明。
- 按一下「附加標記」,將標記新增至資產。
- 如要查看資料表資料欄,請按一下「SCHEMA」SCHEMA分頁標籤。
- 如要查看執行個體 (SERVICE) 的成員資料庫,請按一下「ENTRY LIST」(項目清單) 分頁標籤,然後按一下「VIEW CHILD ENTRIES IN SEARCH」(在搜尋中查看子項目)。(如果沒有顯示「ENTRY LIST」分頁,表示執行個體沒有資料庫)。
工作流程範例 - 從執行個體向下鑽研至資料欄
在這個範例工作流程中,您會先搜尋 Spanner 執行個體,然後查看成員資料庫,接著查看該資料庫中的資料表,最後查看資料表中的資料欄。
前往知識目錄搜尋頁面。
在「篩選器」面板的「系統」下方,選取「Spanner」。
如要在 Data Catalog 中查看所有 Spanner 執行個體,請選取「資料類型」下方的「服務」核取方塊,或在搜尋欄位中輸入下列文字並按下
Enter。system=cloud_spanner type=service選取執行個體名稱。
在「Spanner service details」頁面中,按一下「ENTRY LIST」分頁標籤,然後按一下「VIEW CHILD ENTRIES IN SEARCH」。
知識目錄會顯示執行個體中的資料庫。
在「Spanner database details」(Spanner 資料庫詳細資料) 頁面中,按一下「ENTRY LIST」(項目清單) 分頁標籤,然後按一下「VIEW CHILD ENTRIES IN SEARCH」(在搜尋中查看子項目)。
知識目錄會顯示資料庫中的資料表。
選取資料表名稱,然後在「Spanner table details」(Spanner 資料表詳細資料) 頁面上,按一下「SCHEMA」(結構定義) 即可查看資料表欄。
選用:如要為資料欄新增標記,請按一下「資料欄標記」下方的加號。
匯出及匯入代碼
移動 Spanner 執行個體時,移動程序會刪除您在 Data Catalog 中建立的執行個體標記。如要保留標記,請按照下列步驟操作:
- 查詢與執行個體相關聯的標記。
- 複製代碼的詳細資料。
- 在遷移的執行個體上建立標記。
Spanner 每 6 小時會同步一次資料。在 Spanner 資產 (例如執行個體、資料庫、資料表、檢視區塊或資料欄) 上進行的任何中繼資料變更,大約需要 6 小時才能傳播至 Data Catalog。
從來源執行個體設定匯出代碼
如要列出執行個體 (項目或項目群組) 的標記,請使用 Google Cloud CLI gcloud data-catalog tags list 指令,如下所示:
curl \ 'https://datacatalog.googleapis.com/v1/projects/PROJECT/locations/LOCATION/entryGroups/ENTRY_GROUP/tags?key=API_KEY' \ --header 'Authorization: Bearer ACCESS_TOKEN' \ --header 'Accept: application/json' \ --compressed
更改下列內容:
- PROJECT:包含標記的專案。
- LOCATION:標記的位置。
- API_KEY:可存取 API 的專屬字串。
- ACCESS_TOKEN:應用程式用來向服務驗證身分的存取權杖。
將代碼匯入目的地設定
完成這個程序之前,請先執行下列操作:
如要複製標記,請使用 gcloud data-catalog tags create 指令在已遷移的執行個體上建立標記,如下所示:
curl --request POST \
'https://datacatalog.googleapis.com/v1/entries:lookup?fullyQualifiedName=FQN&location=LOCATION&project=PROJECT&key=API_KEY' \
--header 'Authorization: Bearer ACCESS_TOKEN' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--data '{"column":"myColumnName","name":"myTagName","template":"myTemplateName","fields":{"myDoubleField":{"doubleValue":0}}}' \
--compressed
更改下列內容:
FQN:資源的完整名稱 (FQN)。FQN 有兩種形式:
非區域化資源: {SYSTEM}:{PROJECT}.{PATH_TO_RESOURCE_SEPARATED_WITH_DOTS}
區域化資源: {SYSTEM}:{PROJECT}.{LOCATION_ID}.{PATH_TO_RESOURCE_SEPARATED_WITH_DOTS}
DPMS 表格範例:
dataproc_metastore:{PROJECT_ID}.{LOCATION_ID}.{INSTANCE_ID}.{DATABASE_ID}.{TABLE_ID}
LOCATION:執行查閱作業的位置。
PROJECT:執行查閱作業的專案。
API_KEY:可存取 API 的專屬字串。
ACCESS_TOKEN:應用程式用來向服務驗證身分的存取權杖。
Data Catalog 的必要 IAM 角色和權限
下表列出各種 Data Catalog 作業所需的 IAM 角色和權限。
| Data Catalog 作業 | Spanner 資源 | 必要角色或權限 |
|---|---|---|
| 建立代碼範本 | 不適用 | roles/datacatalog.tagTemplateCreator |
| 搜尋 Spanner 資源 | 執行個體 | spanner.instances.get |
| 資料庫 | spanner.databases.get | |
| 表格 | spanner.databases.get | |
| 觀看次數 | spanner.databases.get | |
| 查看公開標記 | 執行個體 | spanner.instances.get |
| 資料庫 | spanner.databases.get | |
| 表格 | spanner.databases.get | |
| 觀看次數 | spanner.databases.get | |
| 查看私人標記 | 執行個體 | datacatalog.tagTemplates.getTag + spanner.instances.get |
| 資料庫 | datacatalog.tagTemplates.getTag + spanner.databases.get | |
| Tables | datacatalog.tagTemplates.getTag + spanner.databases.get | |
| 觀看次數 | datacatalog.tagTemplates.getTag + spanner.databases.get | |
| 使用代碼範本將標記附加至 Spanner 資源 | 執行個體 | datacatalog.tagTemplates.use + spanner.instances.updateTag |
| 資料庫 | datacatalog.tagTemplates.use + spanner.databases.updateTag | |
| Tables | datacatalog.tagTemplates.use + spanner.databases.updateTag | |
| 觀看次數 | datacatalog.tagTemplates.use + spanner.databases.updateTag |
下列角色包含 spanner.instances.UpdateTag 權限:
- roles/spanner.admin
下列角色具備 spanner.databases.UpdateTag 權限:
- roles/spanner.admin
- roles/spanner.databaseAdmin
- roles/spanner.databaseUser
詳情請參閱「預先定義的角色」。