Esegui la migrazione dei metadati dai cataloghi di dati esterni alle tabelle del catalogo REST di Lakehouse per Apache Iceberg
Questo documento mostra come eseguire la migrazione dei metadati dai cataloghi di dati esterni alle tabelle del catalogo REST di Lakehouse per Apache Iceberg. BigQuery Migration Service supporta la migrazione dei metadati dai seguenti metastore esterni:
- Apache Hive Metastore
- Cataloghi REST Apache Iceberg
Limitazioni
- Le migrazioni dei metadati dai cataloghi di dati esterni alle tabelle del catalogo REST di Lakehouse per Apache Iceberg sono una sincronizzazione una tantum. Questa funzionalità non supporta sincronizzazioni continue o periodiche, quindi le scritture effettuate dopo la migrazione non sono visibili finché non esegui di nuovo la migrazione.
- Gli spazi dei nomi nidificati non sono supportati.
- Il catalogo REST Iceberg supporta solo i file di dati Parquet.
- Lakehouse senza confini non supporta le tabelle Apache Iceberg V3.
- Le migrazioni dei metadati dai cataloghi di dati esterni alle tabelle del catalogo REST di Lakehouse per Apache Iceberg supportano solo migrazioni fino a 10.000 tabelle. Se il tuo workload richiede l'elaborazione di più di 10.000 tabelle, ti consigliamo di suddividerlo in più migrazioni.
- Le migrazioni dei metadati dai cataloghi di dati esterni alle tabelle del catalogo REST di Lakehouse per Apache Iceberg non supportano l'utilizzo di criteri dell'organizzazione per applicare la condivisione con limitazioni del dominio.
Prima di iniziare
Prima di poter eseguire la migrazione dei metadati dai cataloghi di dati esterni, devi completare i passaggi nelle sezioni seguenti.
Abilita API
Abilita le API BigLake, BigQuery Data Transfer, BigQuery Migration, Secret Manager e Storage Transfer, se non sono già abilitate.
Ruoli richiesti per abilitare le API
Per abilitare le API, devi disporre dell'autorizzazione serviceusage.services.enable. Se hai creato il progetto, probabilmente disponi già di questa autorizzazione tramite il ruolo Proprietario (roles/owner). In caso contrario, puoi ottenere questa autorizzazione tramite il ruolo Amministratore utilizzo dei servizi (roles/serviceusage.serviceUsageAdmin). Scopri come concedere i ruoli.
Un agente di servizio viene creato quando abiliti l'API Data Transfer.
Configura autorizzazioni
- All'utente o al account di servizio che crea il trasferimento deve essere concesso il ruolo
Amministratore BigQuery (
roles/bigquery.admin). Se utilizzi un account di servizio, questo viene utilizzato solo per creare il trasferimento. Un service agent (P4SA) viene creato quando viene abilitata l'API Data Transfer.
Per assicurarti che l'agente di servizio disponga delle autorizzazioni necessarie per eseguire un trasferimento di Hive Metastore, chiedi all'amministratore di concedere all'agente di servizio i seguenti ruoli IAM sul progetto:
- Amministratore Storage Transfer (
roles/storagetransfer.admin) - Service Usage Consumer (
roles/serviceusage.serviceUsageConsumer) - Storage Admin (
roles/storage.admin) -
Per eseguire la migrazione dei metadati al catalogo runtime Lakehouse (catalogo REST Iceberg o catalogo Hive):
BigLake Admin (
roles/biglake.admin)
Per saperne di più sulla concessione dei ruoli, consulta Gestisci l'accesso a progetti, cartelle e organizzazioni.
L'amministratore potrebbe anche essere in grado di concedere all'agente di servizio le autorizzazioni richieste tramite ruoli personalizzati o altri ruoli predefiniti.
- Amministratore Storage Transfer (
Se utilizzi un account di servizio, concedi all'agente di servizio il ruolo
roles/iam.serviceAccountTokenCreatorcon il seguente comando: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
Concedi al service agent Storage Transfer Service (
project-PROJECT_NUMBER@storage-transfer-service.iam.gserviceaccount.com) i seguenti ruoli nel progetto:roles/storage.admin- Se esegui la migrazione da on-premise/HDFS, devi anche
concedere il ruolo
roles/storagetransfer.serviceAgent.
Puoi anche configurare autorizzazioni più granulari. Per saperne di più, consulta la seguente guida:
Ruoli e autorizzazioni utente richiesti
Per assicurarti che il service agent disponga delle autorizzazioni necessarie per creare, modificare ed eseguire tabelle di catalogo REST Lakehouse per la migrazione di Apache Iceberg, chiedi all'amministratore di concedere i seguenti ruoli IAM al service agent sull'utente:
- Utente Service Account (
roles/iam.serviceAccountUser) - Editor Migration Management (
roles/bigquerymigration.migrationEditor)
Per saperne di più sulla concessione dei ruoli, consulta Gestisci l'accesso a progetti, cartelle e organizzazioni.
L'amministratore potrebbe anche essere in grado di concedere all'agente di servizio le autorizzazioni richieste tramite ruoli personalizzati o altri ruoli predefiniti.
Ruoli e autorizzazioni del account di servizio richiesti
Per assicurarti che il account di servizio fornito dal cliente disponga delle autorizzazioni necessarie per creare, modificare ed eseguire tabelle di catalogo REST Lakehouse per la migrazione di Apache Iceberg, chiedi all'amministratore di concedere i seguenti ruoli IAMaccount di servizioount fornito dal cliente:
-
Accesso al collegamento di rete:
Compute Network Admin (
roles/compute.networkAdmin) sul account di servizio -
Accesso a BigQuery Data Transfer Service:
Amministratore BigQuery (
roles/bigquery.admin) sull'account di servizio -
Accesso alle risorse della lakehouse:
Editor BigLake (
roles/biglake.editor) sul account di servizio -
Accesso ai secret:
Secret Manager Secret Accessor (
roles/secretmanager.secretAccessor) sul secret fornito dal cliente
Per saperne di più sulla concessione dei ruoli, consulta Gestisci l'accesso a progetti, cartelle e organizzazioni.
L'amministratore potrebbe anche essere in grado di concedere al account di servizio fornito dal cliente le autorizzazioni richieste tramite ruoli personalizzati o altri ruoli predefiniti.
Devi anche creare un'identità di servizio per BigQuery Migration Service e concederle il ruolo roles/iam.serviceAccountTokenCreator.
Per creare l'identità del servizio, esegui questo comando:
gcloud beta services identity create --service=bigquerymigration.googleapis.com --project=PROJECT_ID
Per concedere il ruolo all'agente di servizio, esegui questo comando:
gcloud iam service-accounts add-iam-policy-binding SERVICE_ACCOUNT --member serviceAccount:service-PROJECT_NUMBER@gcp-sa-bqms.iam.gserviceaccount.com --role roles/iam.serviceAccountTokenCreator --project PROJECT_ID
Sostituisci quanto segue:
SERVICE_ACCOUNT: l'ID del account di servizio fornito dal clientePROJECT_ID: l'ID progettoPROJECT_NUMBER: il numero del progetto
Configura secret
Se esegui la migrazione a un catalogo REST Apache Iceberg, devi creare un secret per autorizzare la migrazione. Il secret deve essere formattato nel seguente formato:
{
"client_id": "CLIENT_ID",
"client_secret": "CLIENT_SECRET",
"polaris_realm": "POLARIS_REALM",
"scope": "SCOPE"
}Sostituisci quanto segue:
CLIENT_ID: l'ID client OAuth2.0CLIENT_SECRET: il client secret OAuth2.0POLARIS_REALM: il realm per il catalogo Polaris. Questo campo è obbligatorio solo per Apache Polaris. Ad esempio,FINANCE.SCOPE: (facoltativo) l'ambito OAuth 2.0. Il valore predefinito èPRINCIPAL_ROLE:ALL.
Crea un catalogo Lakehouse
Crea un catalogo Lakehouse. I metadati di cui è stata eseguita la migrazione vengono archiviati nel bucket Cloud Storage che hai specificato quando hai creato il catalogo.
Esegui la migrazione dei metadati
Per avviare una migrazione dei metadati alle tabelle del catalogo REST Iceberg di Lakehouse, procedi nel seguente modo:
Nella console Google Cloud , vai alla pagina Migrazione > Servizi.
In Registra o migra la lakehouse aperta, fai clic su Crea migrazione.
In Configurazione della migrazione, segui questi passaggi:
- Per il tipo di catalogo, seleziona un catalogo esterno.
In Regione, seleziona una regione. La regione selezionata determina dove vengono eseguiti l'orchestrazione della migrazione e il trasferimento dei dati. Determina inoltre dove il servizio di migrazione utilizza o crea risorse, ad esempio allegati di rete o secret.
Sono supportati solo i secret regionali. La regione del secret deve corrispondere a quella in questo campo.
In Nome visualizzato migrazione, inserisci un nome per questa migrazione.
Nella sezione Configurazione sistema di origine, segui questi passaggi:
- In URL, inserisci l'URL dell'endpoint di base che funge da punto di accesso per il metastore Apache Iceberg o Apache Hive.
- Per Service account, seleziona un account di servizio dall'elenco. Se non specificata, questa migrazione viene eseguita utilizzando le credenziali utente.
- (Facoltativo) Per Collegamento di rete, seleziona un collegamento di rete.
Fai clic su Continua.
Al termine della migrazione dei metadati, i metadati dei cataloghi esterni vengono archiviati nel bucket Cloud Storage specificato durante la creazione del catalogo Lakehouse.
Prezzi
Il trasferimento dei metadati alle tabelle del catalogo REST Iceberg di Lakehouse non comporta costi. Una volta trasferiti i metadati, vengono applicati i prezzi di Lakehouse.