將中繼資料匯入 Dataproc Metastore

本頁說明如何將中繼資料匯入 Dataproc Metastore 服務。

匯入中繼資料功能可讓您使用以可攜式儲存格式儲存的中繼資料,填入現有的 Dataproc Metastore 服務。

這類可攜式中繼資料通常是從其他 Dataproc Metastore 服務或自行管理的 Hive Metastore (HMS) 匯出。

關於匯入中繼資料

您可以將下列檔案格式匯入 Dataproc Metastore:

  • 儲存在資料夾中的一組 Avro 檔案。
  • 儲存在 Cloud Storage 資料夾中的單一 MySQL 傾印檔案。

匯入的 MySQL 或 Avro 檔案必須從關聯式資料庫產生。

如果檔案的格式不同 (例如 PostgreSQL),您必須將其轉換為 Avro 或 MySQL 格式。轉換完成後,您可以將這些檔案匯入 Dataproc Metastore。

Avro

以 Avro 為基礎的匯入作業僅支援 Hive 2.3.6 和 3.1.2 版。匯入 Avro 檔案時,Dataproc Metastore 會預期資料庫中的每個資料表都有一系列 <table-name>.avro 檔案。

如要匯入 Avro 檔案,Dataproc Metastore 服務可以使用 MySQL 或 Spanner 資料庫類型。

MySQL

所有 Hive 版本都支援以 MySQL 為基礎的匯入作業。匯入 MySQL 檔案時,Dataproc Metastore 會預期單一 SQL 檔案包含所有資料表資訊。系統也支援使用原生 SQL 從 Dataproc 叢集取得的 MySQL 傾印檔。

如要匯入 MySQL 檔案,Dataproc Metastore 服務必須使用 MySQL 資料庫類型。Spanner 資料庫類型不支援匯入 MySQL。

匯入注意事項

  • 匯入作業會覆寫 Dataproc Metastore 服務中儲存的所有現有中繼資料。

  • 中繼資料匯入功能只會匯入中繼資料,匯入作業不會複製 Apache Hive 在內部資料表中建立的資料。

  • 匯入作業不會轉換資料庫內容,也不會處理檔案遷移作業。如果將資料移至其他位置,您必須在 Dataproc Metastore 服務中手動更新資料表資料位置和結構定義。

  • 匯入作業不會還原或取代精細的身分與存取權管理政策。

  • 如果您使用 VPC Service Controls,則只能從與 Dataproc Metastore 服務位於相同服務範圍的 Cloud Storage 值區匯入資料。

事前準備

必要的角色

如要取得將中繼資料匯入 Dataproc Metastore 所需的權限,請要求管理員授予您下列 IAM 角色:

如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和機構的存取權」。

這些預先定義的角色具備將中繼資料匯入 Dataproc Metastore 的必要權限。如要查看確切的必要權限,請展開「必要權限」部分:

所需權限

如要將中繼資料匯入 Dataproc Metastore,您必須具備下列權限:

  • 如要匯入中繼資料,請按照下列步驟操作: metastore.imports.create 在 Metastore 服務上。
  • 如果是 MySQL,如要使用 Cloud Storage 物件 (SQL dump 檔案) 匯入資料,請授予使用者帳戶和 Dataproc Metastore 服務代理程式: storage.objects.get 權限,存取包含要匯入中繼資料 dump 的 Cloud Storage 值區。
  • 如果是 Avro,如要使用 Cloud Storage bucket 匯入資料,請將下列權限授予使用者帳戶和 Dataproc Metastore 服務代理程式: storage.objects.get 在包含要匯入的中繼資料傾印檔的 Cloud Storage bucket 上。

您或許還可透過自訂角色或其他預先定義的角色取得這些權限。

如要進一步瞭解特定 Dataproc Metastore 角色和權限,請參閱 Dataproc Metastore 身分與存取權管理總覽

匯入中繼資料

匯入作業分為兩個步驟。首先,請準備匯入檔案,然後將檔案匯入 Dataproc Metastore。

開始匯入時,Dataproc Metastore 會執行 Hive 中繼資料結構定義驗證。這項驗證會檢查 SQL 傾印檔案中的資料表,以及 Avro 的檔案名稱。如果缺少表格,匯入作業就會失敗,並顯示說明缺少表格的錯誤訊息。

如要在匯入前檢查 Hive 中繼資料的相容性,可以使用 Dataproc Metastore Toolkit

先準備匯入檔案再匯入

如要將檔案匯入 Dataproc Metastore,請先將中繼資料傾印檔案複製到 Cloud Storage,例如構件 Cloud Storage bucket

將檔案移至 Cloud Storage

  1. 建立要匯入 Dataproc Metastore 的外部資料庫資料庫轉儲。

    如需建立資料庫傾印的操作說明,請參閱下列頁面:

  2. 將檔案上傳至 Cloud Storage。

    請務必記下上傳檔案的 Cloud Storage 路徑,稍後需要使用該路徑執行匯入作業。

    • 如果要匯入 MySQL 檔案,請將 SQL 檔案上傳至 Cloud Storage bucket

    • 如果要匯入 Avro 檔案,請將檔案上傳至 Cloud Storage 資料夾

      • 即使 Hive 資料表為空白,匯入的 Avro 檔案也應包含每個 Hive 資料表的 Avro 檔案。
      • Avro 檔案名稱必須採用 <table-name>.avro 格式。<table-name> 必須為全大寫。例如:AUX_TABLE.avro

將檔案匯入 Dataproc Metastore

匯入中繼資料前,請先參閱匯入注意事項

匯入作業執行期間,您無法更新 Dataproc Metastore 服務,例如變更設定。不過,您仍可使用此服務執行一般作業,例如從附加的 Dataproc 或自行管理的叢集存取中繼資料。

控制台

  1. 在 Google Cloud 控制台中,開啟「Dataproc Metastore」頁面:

    開啟 Dataproc Metastore

  2. 在「Dataproc Metastore」頁面中,按一下要匯入中繼資料的服務名稱。

    「服務詳細資料」頁面隨即開啟。

    服務詳細資料頁面
    圖 1. Dataproc Metastore 服務詳細資料頁面。
  3. 按一下導覽列中的「匯入」

    系統會開啟「匯入」對話方塊。

  4. 輸入「匯入作業名稱」

  5. 在「目的地」部分,選擇「MySQL」或「Avro」

  6. 在「Destination URI」(目的地 URI) 欄位中,按一下「Browse」(瀏覽),然後選取要將檔案匯入其中的 Cloud Storage URI

    您也可以在提供的文字欄位中手動輸入 bucket 位置。請使用下列格式:bucket/objectbucket/folder/object

  7. 選用:輸入匯入作業的說明

    你可以在「服務詳細資料」頁面編輯說明。

  8. 如要更新服務,請按一下「匯入」

    匯入完成後,匯入的項目會顯示在「匯入/匯出」分頁的「服務詳細資料」頁面中。

gcloud CLI

  1. 如要匯入中繼資料,請執行下列 gcloud metastore services import gcs 指令:

    gcloud metastore services import gcs SERVICE_ID \
      --location=LOCATION \
      --import-id=IMPORT_ID \
      --description=DESCRIPTION \
      --dump-type=DUMP_TYPE \
      --database-dump=DATABASE_DUMP
    

    更改下列內容:

    • SERVICE_ID:Dataproc Metastore 服務的 ID 或完整名稱。
    • LOCATION:Dataproc Metastore 服務所在的 Google Cloud 區域。
    • IMPORT_ID:中繼資料匯入作業的 ID 或完整名稱。例如:import1
    • DESCRIPTION:選填:匯入作業的說明。 你之後可以使用 gcloud metastore services imports update IMPORT 編輯這項資訊。
    • DUMP_TYPE:要匯入的外部資料庫類型。可接受的值包括 mysqlavro。預設值為 mysql
    • DATABASE_DUMP:包含資料庫檔案的 Cloud Storage 路徑。路徑開頭必須為 gs://。如果是 Avro,請提供儲存 Avro 檔案的資料夾路徑 (Cloud Storage 資料夾)。如果是 MySQL,請提供 MySQL 檔案的路徑 (Cloud Storage 物件)。
  2. 確認匯入作業是否成功。

REST

按照 API 指示,使用 API Explorer 將中繼資料匯入服務

您可以使用 API 建立、列出、說明及更新匯入作業,但無法刪除匯入作業。不過,刪除 Dataproc Metastore 服務會一併刪除所有儲存的巢狀匯入項目。

匯入成功後,Dataproc Metastore 會自動返回有效狀態。如果匯入失敗,Dataproc Metastore 會還原為先前的正常狀態。

查看匯入紀錄

如要在 Google Cloud 控制台中查看 Dataproc Metastore 服務的匯入記錄,請完成下列步驟:

  1. 在 Google Cloud 控制台中,開啟「Dataproc Metastore」頁面。
  2. 按一下導覽列中的「匯入/匯出」

    「匯入記錄」表格會顯示匯入記錄。

    記錄最多會顯示最近 25 項匯入作業。

刪除 Dataproc Metastore 服務時,也會一併刪除所有相關的匯入記錄。

排解常見問題

常見問題包括:

如需解決常見疑難排解問題的更多說明,請參閱「匯入和匯出錯誤情境」。

後續步驟