將 Hive 受管理資料表遷移至 Google Cloud
本文說明如何將 Hive 管理的資料表遷移至 Google Cloud。
您可以使用 BigQuery 資料移轉服務中的 Hive 受管理資料表遷移連接器,將 Hive Metastore 管理的資料表從內部部署和雲端環境無縫遷移至 Google Cloud,並支援 Hive 和 Iceberg 格式。Hive 代管資料表遷移連接器支援儲存在下列資料來源中的檔案:
- HDFS
- Amazon S3
- Azure Blob 儲存體或 Azure Data Lake Storage Gen2
使用 Hive 代管資料表遷移連接器,您可以向 Dataproc Metastore、BigLake metastore 或 BigLake metastore Iceberg REST 目錄註冊 Hive 代管資料表,同時使用 Cloud Storage 做為檔案儲存空間。
下圖概略說明從 Hadoop 叢集遷移資料表的程序。

限制
Hive 受管理資料表移轉作業有下列限制:
- 如要遷移 Apache Iceberg 資料表,您必須向 BigLake metastore 註冊資料表,允許開放原始碼引擎 (例如 Apache Spark 或 Flink) 寫入資料,並允許 BigQuery 讀取資料。
- 如要遷移 Hive 代管資料表,您必須向 Dataproc Metastore 註冊資料表,允許開放原始碼引擎寫入存取權,並允許 BigQuery 讀取存取權。
- 您必須使用 bq 指令列工具,將 Hive 受管理資料表遷移至 BigQuery。
事前準備
排定 Hive 受管理資料表轉移作業之前,請先執行下列操作:
產生 Apache Hive 的中繼資料檔案
執行 dwh-migration-dumper 工具,擷取 Apache Hive 的中繼資料。這項工具會產生名為 hive-dumper-output.zip 的檔案,並儲存至 Cloud Storage bucket (本文稱為 DUMPER_BUCKET)。
啟用 API
在Google Cloud 專案中啟用下列 API:
- Data Transfer API
- Storage Transfer API
啟用 Data Transfer API 時,系統會建立服務代理程式。
設定權限
- 建立服務帳戶,並授予 BigQuery 管理員角色 (
roles/bigquery.admin)。這個服務帳戶用於建立移轉設定。 啟用 Data Transfer API 時,系統會建立服務代理人 (P4SA)。為服務帳戶指派下列角色:
roles/metastore.metadataOwnerroles/storagetransfer.adminroles/serviceusage.serviceUsageConsumerroles/storage.objectAdmin- 如要遷移 BigLake Iceberg 資料表的中繼資料,您也必須授予
roles/bigquery.admin角色。 - 如果您要將中繼資料遷移至 BigLake metastore Iceberg REST Catalog,也必須授予
roles/biglake.admin角色。
- 如要遷移 BigLake Iceberg 資料表的中繼資料,您也必須授予
使用下列指令,將
roles/iam.serviceAccountTokenCreator角色授予服務代理程式:gcloud iam service-accounts add-iam-policy-binding SERVICE_ACCOUNT --member serviceAccount:service-PROJECT_NUMBER@gcp-sa-bigquerydatatransfer.iam.gserviceaccount.com --role roles/iam.serviceAccountTokenCreator
為 HDFS 資料湖泊設定 Storage Transfer Agent
如果檔案儲存在 HDFS 中,則為必要項目。如要設定 HDFS 資料湖泊移轉作業所需的儲存空間移轉代理程式,請按照下列步驟操作:
- 設定權限,在 Hadoop 叢集上執行 Storage 移轉代理程式。
- 在內部部署代理程式機器上安裝 Docker。
- 在 Google Cloud 專案中建立 Storage 移轉服務代理程式集區。
- 在您的地端代理程式電腦上安裝代理程式。
設定 Amazon S3 的 Storage 移轉服務權限
如果檔案儲存在 Amazon S3,則為必填欄位。從 Amazon S3 轉移資料時,不需要代理程式,但需要特定權限。 如要設定 Storage 移轉服務以進行 Amazon S3 移轉作業,請按照下列步驟操作:
- 設定無代理程式轉移權限。
- 設定 AWS Amazon S3 的存取憑證。
- 設定存取憑證後,請記下存取金鑰 ID 和私密存取金鑰。
- 如果 AWS 專案使用 IP 限制,請將 Storage Transfer Service 工作人員使用的 IP 範圍加入 IP 許可清單。
設定 Microsoft Azure 儲存體的 Storage 移轉服務權限
如果檔案儲存在 Azure Blob 儲存體或 Azure Data Lake Storage Gen2,則必須提供這項資訊。從 Microsoft Azure Storage 轉移資料時,不需要代理程式,但需要特定權限。如要設定 Storage Transfer Service,以便移轉 Microsoft Azure 儲存空間,請按照下列步驟操作:
- 設定無代理程式轉移權限。
- 為 Microsoft Azure 儲存體帳戶產生共用存取簽章 (SAS) 權杖。
- 產生 SAS 權杖後,請記下該權杖。
- 如果 Microsoft Azure 儲存空間帳戶使用 IP 限制,請將 Storage 移轉服務工作站使用的 IP 範圍加入 IP 許可清單。
排定 Hive 代管資料表轉移作業
選取下列其中一個選項:
控制台
前往 Google Cloud 控制台的「資料移轉」頁面。
按一下「建立轉移作業」。
在「來源類型」部分,從「來源」清單中選取「Hive Managed Tables」。
在「位置」下方選取位置類型,然後選取區域。
在「Transfer config name」(轉移設定名稱) 部分,「Display name」(顯示名稱) 請輸入資料移轉作業的名稱。
在「Schedule options」(排程選項) 部分執行下列操作:
- 在「Repeat frequency」(重複頻率) 清單選取選項,指定這項資料移轉作業的執行頻率。如要指定自訂重複頻率,請選取「Custom」(自訂)。如果選取「On-demand」(隨選),這項移轉作業會在您手動觸發後執行。
- 視情況選取「Start now」(立即開始) 或「Start at set time」(在所設時間開始執行),並提供開始日期和執行時間。
在「Data source details」(資料來源詳細資料) 部分執行下列操作:
- 在「Table name patterns」(資料表名稱格式) 部分,提供符合 HDFS 資料庫中資料表的名稱或格式,指定要轉移的 HDFS 資料湖資料表。您必須使用 Java 規則運算式語法指定表格模式。例如:
db1..*會比對 db1 中的所有資料表。db1.table1;db2.table2會比對 db1 中的 table1 和 db2 中的 table2。
- 在「BQMS discovery dump gcs path」(BQMS 探索傾印 GCS 路徑) 欄位中,輸入包含
hive-dumper-output.zip檔案的 bucket 路徑,該檔案是在為 Apache Hive 建立中繼資料檔案時產生。 - 從下拉式清單中選擇 Metastore 類型:
DATAPROC_METASTORE:選取這個選項,將中繼資料儲存在 Dataproc Metastore 中。您必須在「Dataproc metastore url」(Dataproc Metastore 網址) 中提供 Dataproc Metastore 的網址。BIGLAKE_METASTORE:選取這個選項,將中繼資料儲存在 BigLake metastore。您必須在「BigQuery 資料集」中提供 BigQuery 資料集。BIGLAKE_REST_CATALOG:選取這個選項,將中繼資料儲存在 BigLake metastore Iceberg REST 目錄中。
在「Destination gcs path」(目的地 GCS 路徑) 中,輸入 Cloud Storage bucket 的路徑,用來儲存遷移的資料。
選用:在「服務帳戶」中,輸入要用於這項資料移轉作業的服務帳戶。服務帳戶應屬於建立移轉設定和目的地資料集的Google Cloud 專案。
選用:您可以啟用「使用翻譯輸出內容」,為每個要遷移的資料表設定專屬的 Cloud Storage 路徑和資料庫。如要執行這項操作,請在「BQMS translation output gcs path」(BQMS 翻譯輸出內容 GCS 路徑) 欄位中,提供包含翻譯結果的 Cloud Storage 資料夾路徑。詳情請參閱「設定翻譯輸出內容」。
- 如果您指定 Translation 輸出 Cloud Storage 路徑,系統會從該路徑中的檔案取得目的地 Cloud Storage 路徑和 BigQuery 資料集。
在「儲存空間類型」部分,選取下列其中一個選項:
HDFS:如果檔案儲存空間是HDFS,請選取這個選項。在「STS agent pool name」(STS 代理程式集區名稱) 欄位中,您必須提供設定 Storage Transfer Agent 時建立的代理程式集區名稱。S3:如果檔案儲存空間是Amazon S3,請選取這個選項。在「Access key ID」(存取金鑰 ID) 和「Secret access key」(私密存取金鑰) 欄位中,您必須提供設定存取憑證時建立的存取金鑰 ID 和私密存取金鑰。AZURE:如果檔案儲存空間是Azure Blob Storage,請選取這個選項。在「SAS token」(SAS 權杖) 欄位中,您必須提供設定存取憑證時建立的 SAS 權杖。
- 在「Table name patterns」(資料表名稱格式) 部分,提供符合 HDFS 資料庫中資料表的名稱或格式,指定要轉移的 HDFS 資料湖資料表。您必須使用 Java 規則運算式語法指定表格模式。例如:
bq
如要排定 Hive 受管理資料表移轉作業,請輸入 bq mk 指令並加上移轉建立作業旗標 --transfer_config:
bq mk --transfer_config --data_source=hadoop --display_name='TRANSFER_NAME' --service_account_name='SERVICE_ACCOUNT' --project_id='PROJECT_ID' --location='REGION' --params='{"table_name_patterns":"LIST_OF_TABLES", "table_metadata_path":"gs://DUMPER_BUCKET/hive-dumper-output.zip", "target_gcs_file_path":"gs://MIGRATION_BUCKET", "metastore":"METASTORE", "destination_dataproc_metastore":"DATAPROC_METASTORE_URL", "destination_bigquery_dataset":"BIGLAKE_METASTORE_DATASET", "translation_output_gcs_path":"gs://TRANSLATION_OUTPUT_BUCKET/metadata/config/default_database/", "storage_type":"STORAGE_TYPE", "agent_pool_name":"AGENT_POOL_NAME", "aws_access_key_id":"AWS_ACCESS_KEY_ID", "aws_secret_access_key":"AWS_SECRET_ACCESS_KEY", "azure_sas_token":"AZURE_SAS_TOKEN" }'
更改下列內容:
TRANSFER_NAME:移轉設定的顯示名稱。移轉作業名稱可以是任意值,日後需要修改移轉作業時,能夠據此識別即可。SERVICE_ACCOUNT:用於驗證轉移作業的服務帳戶名稱。服務帳戶應由用於建立轉移作業的project_id擁有,且應具備所有必要權限。PROJECT_ID:您的 Google Cloud 專案 ID。如未提供--project_id指定特定專案,系統會使用預設專案。REGION:這項移轉設定的位置。LIST_OF_TABLES:要轉移的實體清單。使用階層式命名規格 -database.table。這個欄位支援 RE2 規則運算式,可指定資料表。例如:db1..*:指定資料庫中的所有資料表db1.table1;db2.table2:資料表清單
DUMPER_BUCKET:包含hive-dumper-output.zip檔案的 Cloud Storage bucket。MIGRATION_BUCKET:所有基礎檔案的載入目的地 GCS 路徑。METASTORE:要遷移的中繼資料存放區類型。將此值設為下列其中一個值:DATAPROC_METASTORE:將中繼資料轉移至 Dataproc Metastore。BIGLAKE_METASTORE:將中繼資料轉移至 BigLake metastore。BIGLAKE_REST_CATALOG:將中繼資料轉移至 BigLake metastore Iceberg REST 目錄。
DATAPROC_METASTORE_URL:Dataproc Metastore 的網址。如果metastore為DATAPROC_METASTORE,則為必要欄位。BIGLAKE_METASTORE_DATASET:BigLake 中繼存放區的 BigQuery 資料集。如果metastore為BIGLAKE_METASTORE,則為必要欄位。TRANSLATION_OUTPUT_BUCKET:(選用) 指定用於儲存翻譯輸出內容的 Cloud Storage bucket。詳情請參閱「使用翻譯輸出內容」。STORAGE_TYPE:指定資料表的基礎檔案儲存空間。支援的類型為HDFS、S3和AZURE。AGENT_POOL_NAME:用於建立代理程式的代理程式集區名稱。如果storage_type為HDFS,則為必要欄位。AWS_ACCESS_KEY_ID:存取憑證中的存取金鑰 ID。如果storage_type為S3,則為必要欄位。AWS_SECRET_ACCESS_KEY:存取憑證中的私密存取金鑰。如果storage_type為S3,則為必要欄位。AZURE_SAS_TOKEN:來自存取憑證的 SAS 權杖。如果storage_type為AZURE,則為必要欄位。
執行這項指令,即可建立移轉設定,並開始移轉 Hive 受管理資料表。根據預設,系統每隔 24 小時就會執行移轉作業,但您可以使用移轉排程選項進行設定。
轉移完成後,Hadoop 叢集中的資料表就會遷移至 MIGRATION_BUCKET。
資料擷取選項
以下各節提供更多資訊,說明如何設定 Hive 受管理資料表移轉作業。
增量轉移
如果移轉設定採用週期性時間表,後續每次移轉都會更新 Google Cloud 上的資料表,反映來源資料表的最新變更。舉例來說,所有插入、刪除或更新作業 (含結構定義變更) 都會反映在 Google Cloud 中,每次轉移都會更新。
轉移排程選項
根據預設,系統會排定每 24 小時執行一次移轉作業。如要設定移轉作業的執行頻率,請在移轉設定中加入 --schedule 標記,並使用schedule 語法指定移轉排程。
Hive 受管理資料表的轉移作業執行間隔至少須為 24 小時。
如要進行一次性移轉,您可以在移轉設定中新增 end_time 旗標,只執行一次移轉。
設定翻譯輸出內容
您可以為每個遷移的資料表設定專屬的 Cloud Storage 路徑和資料庫。如要這麼做,請按照下列步驟產生表格對應 YAML 檔案,以便在轉移設定中使用。
在
DUMPER_BUCKET中建立設定 YAML 檔案 (後置字元為config.yaml),其中包含下列內容:type: object_rewriter relation: - match: relationRegex: ".*" external: location_expression: "'gs://MIGRATION_BUCKET/' + table.schema + '/' + table.name"
- 請將
MIGRATION_BUCKET改成 Cloud Storage 值區名稱,這是要遷移的資料表檔案目的地。location_expression欄位是一般運算語言 (CEL) 運算式。
- 請將
在
DUMPER_BUCKET中建立另一個設定 YAML 檔案 (後置字元為config.yaml),其中包含下列內容:type: experimental_object_rewriter relation: - match: schema: SOURCE_DATABASE outputName: database: null schema: TARGET_DATABASE
- 請將
SOURCE_DATABASE和TARGET_DATABASE替換為來源資料庫名稱,以及 Dataproc Metastore 資料庫或 BigQuery 資料集 (視所選中繼存放區而定)。如果您要為 BigLake 中繼資料存放區設定資料庫,請確認 BigQuery 資料集存在。
如要進一步瞭解這些設定 YAML,請參閱建立設定 YAML 檔案的指南。
- 請將
使用下列指令產生資料表對應 YAML 檔案:
curl -d '{ "tasks": { "string": { "type": "HiveQL2BigQuery_Translation", "translation_details": { "target_base_uri": "TRANSLATION_OUTPUT_BUCKET", "source_target_mapping": { "source_spec": { "base_uri": "DUMPER_BUCKET" } }, "target_types": ["metadata"] } } } }' \ -H "Content-Type:application/json" \ -H "Authorization: Bearer TOKEN" -X POST https://bigquerymigration.googleapis.com/v2alpha/projects/PROJECT_ID/locations/LOCATION/workflows
更改下列內容:
TRANSLATION_OUTPUT_BUCKET:(選用) 指定 Cloud Storage bucket 做為翻譯輸出內容的儲存位置。詳情請參閱「使用翻譯輸出內容」。DUMPER_BUCKET:Cloud Storage bucket 的基本 URI,其中包含hive-dumper-output.zip和設定 YAML 檔案。TOKEN:OAuth 權杖。您可以在指令列中透過gcloud auth print-access-token指令產生這項檔案。PROJECT_ID:用於處理翻譯作業的專案。LOCATION:處理作業的位置。例如eu或us。
監控這項工作的狀態。完成後,系統會為
TRANSLATION_OUTPUT_BUCKET中預先定義路徑內的資料庫中每個資料表產生對應檔案。
使用 cron 指令協調執行傾印器
您可以透過 cron 工作執行 dwh-migration-dumper 工具,自動執行增量轉移作業。自動擷取中繼資料可確保 Hadoop 的最新傾印檔可用於後續的增量轉移作業。
事前準備
使用這個自動化指令碼前,請先完成傾印程式安裝先決條件。如要執行指令碼,您必須安裝 dwh-migration-dumper 工具,並設定必要的 IAM 權限。
排定自動化動作的執行時間
將下列指令碼儲存至本機檔案。這個指令碼的設計用途是透過
cronDaemon 進行設定和執行,自動擷取及上傳傾印器輸出內容:#!/bin/bash # Exit immediately if a command exits with a non-zero status. set -e # Treat unset variables as an error when substituting. set -u # Pipelines return the exit status of the last command to exit with a non-zero status. set -o pipefail # These values are used if not overridden by command-line options. DUMPER_EXECUTABLE="DUMPER_PATH/dwh-migration-dumper" GCS_BASE_PATH="gs://PATH_TO_DUMPER_OUTPUT" LOCAL_BASE_DIR="LOCAL_BASE_DIRECTORY_PATH" # Function to display usage information usage() { echo "Usage: $0 [options]" echo "" echo "Runs the dwh-migration-dumper tool and uploads its output to provided GCS path." echo "" echo "Options:" echo " --dumper-executable
The full path to the dumper executable. (Required)" echo " --gcs-base-pathThe base GCS path for output files. (Required)" echo " --local-base-dirThe local base directory for logs and temp files. (Required)" echo " -h, --help Display this help message and exit." exit 1 } # This loop processes command-line options and overrides the default configuration. while [[ "$#" -gt 0 ]]; do case $1 in --dumper-executable) DUMPER_EXECUTABLE="$2" shift # past argument shift # past value ;; --gcs-base-path) GCS_BASE_PATH="$2" shift shift ;; --local-base-dir) LOCAL_BASE_DIR="$2" shift shift ;; -h|--help) usage ;; *) echo "Unknown option: $1" usage ;; esac done # This runs AFTER parsing arguments to ensure no placeholder values are left. if [[ "$DUMPER_EXECUTABLE" == "DUMPER_PATH"* || "$GCS_BASE_PATH" == "gs://PATH_TO_DUMPER_OUTPUT" || "$LOCAL_BASE_DIR" == "LOCAL_BASE_DIRECTORY_PATH" ]]; then echo "ERROR: One or more configuration variables have not been set. Please provide them as command-line arguments or edit the script." >&2 echo "Run with --help for more information." >&2 exit 1 fi # Create unique timestamp and directories for this run EPOCH=$(date +%s) LOCAL_LOG_DIR="${LOCAL_BASE_DIR}/logs" mkdir -p "${LOCAL_LOG_DIR}" # Ensures the base and logs directories exist # Define the unique log and zip file path for this run LOG_FILE="${LOCAL_LOG_DIR}/dumper_execution_${EPOCH}.log" ZIP_FILE_NAME="hive-dumper-output_${EPOCH}.zip" LOCAL_ZIP_PATH="${LOCAL_BASE_DIR}/${ZIP_FILE_NAME}" echo "Script execution started. All subsequent output will be logged to: ${LOG_FILE}" # --- Helper Functions --- log() { echo "$(date '+%Y-%m-%d %H:%M:%S') - $@" >> "${LOG_FILE}"} cleanup() { local path_to_remove="$1" log "Cleaning up local file/directory: ${path_to_remove}..." rm -rf "${path_to_remove}" } # This function is called when the script exits to ensure cleanup and logging happen reliably. handle_exit() { local exit_code=$? # Only run the failure logic if the script is exiting with an error if [[ ${exit_code} -ne 0 ]]; then log "ERROR: Script is exiting with a failure code (${exit_code})." local gcs_log_path_on_failure="${GCS_BASE_PATH}/logs/$(basename "${LOG_FILE}")" log "Uploading log file to ${gcs_log_path_on_failure} for debugging..." # Attempt to upload the log file on failure, but don't let this command cause the script to exit. gsutil cp "${LOG_FILE}" "${gcs_log_path_on_failure}" > /dev/null 2>&1 || log "WARNING: Failed to upload log file to GCS." else # SUCCESS PATH log "Script finished successfully. Now cleaning up local zip file...." # Clean up the local zip file ONLY on success cleanup "${LOCAL_ZIP_PATH}" fi log "*****Script End*****" exit ${exit_code} } # Trap the EXIT signal to run the handle_exit function, ensuring cleanup always happens. trap handle_exit EXIT # Validates the dumper log file based on a strict set of rules. validate_dumper_output() { local log_file_to_check="$1" # Check for the specific success message from the dumper tool. if grep -q "Dumper execution: SUCCEEDED" "${log_file_to_check}"; then log "Validation Successful: Found 'Dumper execution: SUCCEEDED' message." return 0 # Success else log "ERROR: Validation failed. The 'Dumper execution: SUCCEEDED' message was not found." return 1 # Failure fi } # --- Main Script Logic --- log "*****Script Start*****" log "Dumper Executable: ${DUMPER_EXECUTABLE}" log "GCS Base Path: ${GCS_BASE_PATH}" log "Local Base Directory: ${LOCAL_BASE_DIR}" # Use an array to build the command safely dumper_command_args=( "--connector" "hiveql" "--output" "${LOCAL_ZIP_PATH}" ) log "Starting dumper tool execution..." log "COMMAND: ${DUMPER_EXECUTABLE} ${dumper_command_args[*]}" "${DUMPER_EXECUTABLE}" "${dumper_command_args[@]}" >> "${LOG_FILE}" 2>&1 log "Dumper process finished." # Validate the output from the dumper execution for success or failure. validate_dumper_output "${LOG_FILE}" # Upload the ZIP file to GCS gcs_zip_path="${GCS_BASE_PATH}/${ZIP_FILE_NAME}" log "Uploading ${LOCAL_ZIP_PATH} to ${gcs_zip_path}..." if [ ! -f "${LOCAL_ZIP_PATH}" ]; then log "ERROR: Expected ZIP file ${LOCAL_ZIP_PATH} not found after dumper execution." # The script will exit here with an error code, and the trap will run. exit 1 fi gsutil cp "${LOCAL_ZIP_PATH}" "${gcs_zip_path}" >> "${LOG_FILE}" 2>&1 log "Upload to GCS successful." # The script will now exit with code 0. The trap will call cleanup and log the script end.執行下列指令,讓指令碼變成可執行:
chmod +x PATH_TO_SCRIPT
使用
crontab排定指令碼,並將變數替換為適合您工作的值。新增項目來排定工作。 下列範例會在每天凌晨 2:30 執行指令碼:# Run the Hive dumper daily at 2:30 AM for incremental BigQuery transfer. 30 2 * * * PATH_TO_SCRIPT \ --dumper-executable PATH_TO_DUMPER_EXECUTABLE \ --gcs-base-path GCS_PATH_TO_UPLOAD_DUMPER_OUTPUT \ --local-base-dir LOCAL_PATH_TO_SAVE_INTERMEDIARY_FILES
建立移轉作業時,請確保
table_metadata_path欄位設為您為GCS_PATH_TO_UPLOAD_DUMPER_OUTPUT設定的相同 Cloud Storage 路徑。這是包含傾印輸出 ZIP 檔案的路徑。
排程注意事項
為避免資料過時,請務必在排定的轉移作業開始前準備好中繼資料傾印。請視情況設定 cron 工作頻率。
建議您手動執行幾次指令碼,判斷傾印工具產生輸出內容的平均時間。請利用這個時間點設定 cron 排程,確保排程安全地在 DTS 轉移作業執行前完成,並確保資料是最新狀態。
監控 Hive 代管資料表轉移作業
排定 Hive 受管理資料表轉移作業後,您可以使用 bq 指令列工具指令監控轉移工作。如要瞭解如何監控轉移作業,請參閱「查看轉移作業」。
追蹤表格遷移狀態
您也可以執行 dwh-dts-status 工具,監控轉移設定或特定資料庫中所有轉移資料表的狀態。您也可以使用 dwh-dts-status 工具列出專案中的所有移轉設定。
事前準備
使用 dwh-dts-status 工具前,請先完成下列步驟:
如要取得
dwh-dts-status工具,請從dwh-migration-toolsGitHub 存放區下載dwh-migration-tool套件。使用下列指令驗證帳戶: Google Cloud
gcloud auth application-default login詳情請參閱「應用程式預設憑證的運作方式」。
確認使用者具備
bigquery.admin和logging.viewer角色。如要進一步瞭解 IAM 角色,請參閱「存取權控管參考資料」。
列出專案中的所有移轉設定
如要列出專案中的所有移轉設定,請使用下列指令:
./dwh-dts-status --list-transfer-configs --project-id=[PROJECT_ID] --location=[LOCATION]
更改下列內容:
PROJECT_ID:執行轉移作業的 Google Cloud 專案 ID。LOCATION:建立轉移設定的位置。
這項指令會輸出表格,其中列出移轉設定名稱和 ID。
查看設定中所有表格的狀態
如要查看移轉設定中所有資料表的狀態,請使用下列指令:
./dwh-dts-status --list-status-for-config --project-id=[PROJECT_ID] --config-id=[CONFIG_ID] --location=[LOCATION]
更改下列內容:
PROJECT_ID:執行轉移作業的 Google Cloud 專案 ID。LOCATION:建立轉移設定的位置。CONFIG_ID:指定轉移設定的 ID。
這項指令會輸出表格,列出指定移轉設定中的資料表及其移轉狀態。轉移狀態可以是下列任一值:PENDING、RUNNING、SUCCEEDED、FAILED、CANCELLED。
查看資料庫中所有資料表的狀態
如要查看從特定資料庫轉移的所有資料表狀態,請使用下列指令:
./dwh-dts-status --list-status-for-database --project-id=[PROJECT_ID] --database=[DATABASE]
更改下列內容:
PROJECT_ID:執行轉移作業的 Google Cloud 專案 ID。DATABASE:指定資料庫的名稱。
這項指令會輸出表格,列出指定資料庫中的資料表及其移轉狀態。轉移狀態可以是下列任一值:PENDING、RUNNING、SUCCEEDED、FAILED、CANCELLED。