本頁說明如何從 Dataproc Metastore 匯出中繼資料。
匯出中繼資料功能可讓您以可攜式儲存格式儲存中繼資料。
匯出資料後,您可以將中繼資料匯入其他 Dataproc Metastore 服務或自行管理的 Hive Metastore (HMS)。
關於匯出中繼資料
從 Dataproc Metastore 匯出中繼資料時,服務會以下列其中一種檔案格式儲存資料:
- 儲存在資料夾中的一組 Avro 檔案。
- 儲存在 Cloud Storage 資料夾中的單一 MySQL 傾印檔案。
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 檔案,其中包含所有資料表資訊。
如要匯出 MySQL 檔案,Dataproc Metastore 服務必須使用 MySQL 資料庫類型。Spanner 資料庫類型不支援匯入 MySQL。
事前準備
必要的角色
如要取得將中繼資料匯出至 Dataproc Metastore 所需的權限,請要求管理員授予您下列 IAM 角色:
-
如要匯出中繼資料,請採取下列任一做法:
-
Dataproc Metastore 編輯者 (
roles/metastore.editor
) Dataproc Metastore 服務 -
Dataproc Metastore 管理員 (
roles/metastore.admin
) 在 Dataproc Metastore 服務上 -
Dataproc Metastore 中繼資料操作者 (
roles/metastore.metadataOperator
) Dataproc Metastore 服務
-
Dataproc Metastore 編輯者 (
-
如果是 MySQL 和 Avro,如要使用 Cloud Storage 物件匯出資料,請按照下列步驟操作:
將 Storage Creator 角色 (
roles/storage.objectCreator
) 授予使用者帳戶和 Dataproc Metastore 服務代理程式 在 Cloud Storage 值區上
如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和機構的存取權」。
這些預先定義的角色具備將中繼資料匯出至 Dataproc Metastore 所需的權限。如要查看確切的必要權限,請展開「必要權限」部分:
所需權限
如要將中繼資料匯出至 Dataproc Metastore,您必須具備下列權限:
-
如要匯出中繼資料:
metastore.services.export
在 Metastore 服務上 -
如果是 MySQL 和 Avro,如要使用 Cloud Storage 物件匯出,請將下列權限授予使用者帳戶和 Dataproc Metastore 服務代理程式:
storage.objects.create
Cloud Storage bucket
匯出中繼資料
匯出中繼資料前,請注意下列事項:
- 匯出作業執行期間,您無法更新 Dataproc Metastore 服務,例如變更設定。不過,您仍可將其用於一般作業,例如從附加的 Dataproc 或自行管理的叢集存取中繼資料。
- 中繼資料匯出功能只會匯出中繼資料,匯出作業不會複製 Apache Hive 在內部資料表中建立的資料。
如要從 Dataproc Metastore 服務匯出中繼資料,請按照下列步驟操作。
控制台
在 Google Cloud 控制台中,開啟「Dataproc Metastore」頁面:
在「Dataproc Metastore」頁面中,按一下要匯出中繼資料的服務名稱。
「服務詳細資料」頁面隨即開啟。
Dataproc Metastore 服務詳細資料頁面 按一下導覽列中的「匯出」。
系統隨即開啟「匯出中繼資料」頁面。
在「目的地」部分,選擇「MySQL」或「Avro」。
在「Destination URI」(目的地 URI) 欄位中,按一下「Browse」(瀏覽),然後選取要匯出檔案的 Cloud Storage URI。
您也可以在提供的文字欄位中輸入 bucket 位置。請使用下列格式:
bucket/object
或bucket/folder/object
。如要開始匯出,請按一下「提交」。
完成後,匯出作業會顯示在「匯入/匯出」分頁的「服務詳細資料」頁面表格中。
匯出完成後,Dataproc Metastore 會自動返回有效狀態,無論匯出作業是否成功。
gcloud CLI
如要從服務匯出中繼資料,請執行下列
gcloud metastore services export gcs
指令:gcloud metastore services export gcs SERVICE \ --location=LOCATION \ --destination-folder=gs://bucket-name/path/to/folder \ --dump-type=DUMP_TYPE
更改下列內容:
- :Dataproc Metastore 服務的名稱。
SERVICE
LOCATION
:Dataproc Metastore 服務所在的 Google Cloud 區域。bucket-name/path/to/folder
:您要儲存匯出內容的 Cloud Storage 目的地資料夾。DUMP_TYPE
:匯出作業產生的資料庫傾印類型。可接受的值包括mysql
和avro
。 預設值為mysql
。
- :Dataproc Metastore 服務的名稱。
確認匯出作業是否成功。
匯出完成後,Dataproc Metastore 會自動返回有效狀態,無論匯出作業是否成功。
REST
按照 API 指示,使用 API Explorer 將中繼資料匯出至服務。
匯出完成後,服務會自動返回有效狀態,無論匯出作業是否成功。
查看匯出記錄
如要在Google Cloud 控制台中查看 Dataproc Metastore 服務的匯出記錄,請完成下列步驟:
- 在 Google Cloud 控制台中,開啟「Dataproc Metastore」頁面。
按一下導覽列中的「匯入/匯出」。
匯出記錄會顯示在「匯出記錄」表格中。
記錄最多會顯示最近 25 項匯出作業。
刪除 Dataproc Metastore 服務時,系統也會一併刪除所有相關的匯出記錄。
排解常見問題
常見問題包括:
如需解決常見疑難排解問題的更多說明,請參閱「匯入和匯出錯誤情境」。