Google Cloud Dataproc Metastore 運算子¶
Dataproc Metastore 是一種完全託管、高度可用、自動修復的無伺服器 Apache Hive Metastore (HMS),可在 Google Cloud 上運行。它支援 HMS,是管理關聯實體元數據的關鍵組件,並提供開放原始碼資料生態系統中資料處理應用程式之間的互操作性。
有關該服務的更多資訊,請訪問Dataproc Metastore 生產文件 <產品文件
建立服務¶
在建立 Dataproc Metastore 服務之前,您需要定義服務。有關建立服務時可傳遞的可用欄位的更多資訊,請訪問Dataproc Metastore 建立服務 API。
一個簡單的服務配置範例如下
SERVICE = {
"name": "test-service",
}
使用此配置,我們可以建立服務: DataprocMetastoreCreateServiceOperator
create_service = DataprocMetastoreCreateServiceOperator(
task_id="create_service",
region=REGION,
project_id=PROJECT_ID,
service=SERVICE,
service_id=SERVICE_ID,
timeout=TIMEOUT,
)
取得服務¶
要取得服務,您可以使用
DataprocMetastoreGetServiceOperator
get_service = DataprocMetastoreGetServiceOperator(
task_id="get_service",
region=REGION,
project_id=PROJECT_ID,
service_id=SERVICE_ID,
)
更新服務¶
您可以通過提供服務配置和 updateMask 來更新服務。在 updateMask 參數中,您需要指定要更新的欄位路徑(相對於 Service)。有關 updateMask 和其他參數的更多資訊,請查看Dataproc Metastore 更新服務 API。
一個新的服務配置和 updateMask 的範例
SERVICE_TO_UPDATE = {
"labels": {
"mylocalmachine": "mylocalmachine",
"systemtest": "systemtest",
}
}
UPDATE_MASK = FieldMask(paths=["labels"])
要更新服務,您可以使用: DataprocMetastoreUpdateServiceOperator
update_service = DataprocMetastoreUpdateServiceOperator(
task_id="update_service",
project_id=PROJECT_ID,
service_id=SERVICE_ID,
region=REGION,
service=SERVICE_TO_UPDATE,
update_mask=UPDATE_MASK,
timeout=TIMEOUT,
)
刪除服務¶
要刪除服務,您可以使用
DataprocMetastoreDeleteServiceOperator
delete_service = DataprocMetastoreDeleteServiceOperator(
task_id="delete_service",
region=REGION,
project_id=PROJECT_ID,
service_id=SERVICE_ID,
timeout=TIMEOUT,
)
匯出服務元數據¶
要匯出元數據,您可以使用
DataprocMetastoreExportMetadataOperator
export_metadata = DataprocMetastoreExportMetadataOperator(
task_id="export_metadata",
destination_gcs_folder=DESTINATION_GCS_FOLDER,
project_id=PROJECT_ID,
region=REGION,
service_id=SERVICE_ID,
timeout=TIMEOUT,
)
還原服務¶
要還原服務,您可以使用
DataprocMetastoreRestoreServiceOperator
restore_service = DataprocMetastoreRestoreServiceOperator(
task_id="restore_metastore",
region=REGION,
project_id=PROJECT_ID,
service_id=SERVICE_ID,
backup_id=BACKUP_ID,
backup_region=REGION,
backup_project_id=PROJECT_ID,
backup_service_id=SERVICE_ID,
timeout=TIMEOUT,
)
建立元數據匯入¶
在建立 Dataproc Metastore 元數據匯入之前,您需要定義元數據匯入。有關建立元數據匯入時可傳遞的可用欄位的更多資訊,請訪問Dataproc Metastore 建立元數據匯入 API。
一個簡單的元數據匯入配置範例如下
METADATA_IMPORT = {
"name": "test-metadata-import",
"database_dump": {
"gcs_uri": GCS_URI,
"database_type": DB_TYPE,
},
}
要建立元數據匯入,您可以使用: DataprocMetastoreCreateMetadataImportOperator
import_metadata = DataprocMetastoreCreateMetadataImportOperator(
task_id="import_metadata",
project_id=PROJECT_ID,
region=REGION,
service_id=SERVICE_ID,
metadata_import=METADATA_IMPORT,
metadata_import_id=METADATA_IMPORT_ID,
timeout=TIMEOUT,
)
建立備份¶
在為服務建立 Dataproc Metastore 備份之前,您需要定義備份。有關建立備份時可傳遞的可用欄位的更多資訊,請訪問Dataproc Metastore 建立備份 API。
一個簡單的備份配置範例如下
BACKUP = {
"name": "test-backup",
}
使用此配置,我們可以建立備份: DataprocMetastoreCreateBackupOperator
backup_service = DataprocMetastoreCreateBackupOperator(
task_id="create_backup",
project_id=PROJECT_ID,
region=REGION,
service_id=SERVICE_ID,
backup=BACKUP,
backup_id=BACKUP_ID,
timeout=TIMEOUT,
)
刪除備份¶
要刪除備份,您可以使用
DataprocMetastoreDeleteBackupOperator
delete_backup = DataprocMetastoreDeleteBackupOperator(
task_id="delete_backup",
project_id=PROJECT_ID,
region=REGION,
service_id=SERVICE_ID,
backup_id=BACKUP_ID,
timeout=TIMEOUT,
)
列出備份¶
要列出備份,您可以使用
DataprocMetastoreListBackupsOperator
list_backups = DataprocMetastoreListBackupsOperator(
task_id="list_backups",
project_id=PROJECT_ID,
region=REGION,
service_id=SERVICE_ID,
)
檢查 Hive 分區是否存在¶
要檢查 Hive 分區是否已在 Metastore 中為給定表建立,您可以使用: MetastoreHivePartitionSensor
hive_partition_sensor = MetastoreHivePartitionSensor(
task_id="hive_partition_sensor",
service_id=METASTORE_SERVICE_ID,
region=REGION,
table=TABLE_NAME,
partitions=[PARTITION_1, PARTITION_2],
)