Configura Lakehouse cross-cloud per Databricks Unity Catalog

Questo documento descrive come configurare un Lakehouse cross-cloud per interrogare i dati da un catalogo Databricks Unity Catalog direttamente in Google Cloud. Questa funzionalità unifica l'analisi dei dati integrando le sorgenti di dati esterne con l'ambienteGoogle Cloud esistente.

Successivamente, puoi utilizzare Lakehouse for Apache Iceberg per gestire l'accesso ai tuoi dati federati.

Prima di iniziare

  1. Consulta la panoramica di Lakehouse per capire come Lakehouse gestisce l'accesso ai dati.
  2. Leggi l'articolo Informazioni sul lakehouse cross-cloud per capire come funziona.
  3. Esamina i cataloghi supportati per verificare i requisiti relativi alle posizioni esterne e le configurazioni supportate.
  4. Scopri come utilizzare i secret regionali di Secret Manager. Questo è necessario per configurare un lakehouse cross-cloud con Databricks Unity Catalog utilizzando l'autenticazione basata su secret.
  5. Genera un service principal OAuth (ID client e, facoltativamente, client secret) all'interno del tuo provider di cataloghi remoto che abbia accesso in lettura al catalogo di destinazione. Questo processo non rientra nell'ambito di questa documentazione.
  6. (Facoltativo) Se prevedi di instradare le query su un interconnessione privata tra il tuo VPC Google Cloud e il VPC del tuo provider cloud remoto (ad esempio AWS), assicurati di avere un account attivo con il tuo provider remoto, esegui il provisioning di un'interconnessione cross-cloud dedicata o di un'interconnessione cross-cloud partner, stabilisci sessioni BGP con il tuo router Cloud e verifica di disporre delle autorizzazioni IAM richieste in entrambi gli ambienti cloud.
  7. Accedi al tuo account Google Cloud . Se non conosci Google Cloud, crea un account per valutare le prestazioni dei nostri prodotti in scenari reali. I nuovi clienti ricevono anche 300 $di crediti senza costi per l'esecuzione, il test e il deployment dei carichi di lavoro.
  8. Verify that billing is enabled for your Google Cloud project.

  9. Enable the BigLake, Secret Manager APIs.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the APIs

  10. Verify that billing is enabled for your Google Cloud project.

  11. Enable the BigLake, Secret Manager APIs.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the APIs

Ruoli obbligatori

Per ottenere le autorizzazioni necessarie per configurare Lakehouse cross-cloud, chiedi all'amministratore di concederti i seguenti ruoli IAM nel progetto:

  • Gestisci i cataloghi lakehouse: BigLake Admin (roles/biglake.admin)
  • Gestisci i secret: Amministratore Secret Manager (roles/secretmanager.admin) (obbligatorio solo se utilizzi l'autenticazione basata sui secret)
  • Instrada il traffico tramite l'interconnessione privata: Compute Network Admin (roles/compute.networkAdmin), Service Directory Viewer (roles/servicedirectory.viewer) e Service Directory PSC Authorized Service (roles/servicedirectory.pscAuthorizedService)

Per saperne di più sulla concessione dei ruoli, consulta Gestisci l'accesso a progetti, cartelle e organizzazioni.

Potresti anche riuscire a ottenere le autorizzazioni richieste tramite i ruoli personalizzati o altri ruoli predefiniti.

Dettagli del catalogo supportati

Questa guida fornisce istruzioni per configurare Lakehouse cross-cloud con un catalogo Databricks Unity Catalog su Amazon Web Services (AWS) o Google Cloud. Per informazioni dettagliate sui requisiti relativi alle posizioni esterne e sulle configurazioni supportate, consulta Cataloghi supportati.

Limitazioni e considerazioni

Questa sezione elenca le limitazioni e le considerazioni per l'utilizzo di Lakehouse cross-cloud.

  • Provider cloud supportati:l'utilizzo di un interconnessione privata con il tuo Lakehouse cross-cloud è supportato con i seguenti provider cloud remoti: Amazon Web Services (AWS). Puoi utilizzare un Dedicated Cross-Cloud Interconnect o un Partner Cross-Cloud Interconnect.
  • Sono supportati solo i cataloghi Databricks Unity Catalog che utilizzano una posizione esterna su AWS o una posizione esterna su Google Cloud. I cataloghi Unity Catalog che utilizzano l'archiviazione predefinita su AWS o l'archiviazione predefinita su Google Cloud non sono supportati.
  • Devi attivare l'accesso ai dati esterni nel metastore utilizzato da Unity Catalog, che è disattivato per impostazione predefinita.
  • Routing di rete:se non è configurata un'interconnessione privata (ad esempio Dedicated CCI o Partner CCI), le query vengono instradate su internet pubblico. Ciò potrebbe comportare tariffe per traffico in uscita più elevate dal tuo cloud provider remoto e un rendimento meno prevedibile.
  • Aggiornamento dei dati:il flag --refresh-interval per il catalogo federato determina la frequenza di sincronizzazione dei metadati. Un intervallo più breve fornisce dati più aggiornati, ma potrebbe comportare costi API aggiuntivi da parte del fornitore del catalogo remoto.
  • Report sulle metriche Iceberg: il report sulle metriche Iceberg non è disponibile per i cataloghi federati. Imposta la proprietà rest-metrics-reporting-enabled su false nel client Iceberg quando accedi a un catalogo federato.

Flusso di lavoro generale

Per configurare e utilizzare Lakehouse cross-cloud, segui questi passaggi generali:

  • (Facoltativo) Configura Cross-Cloud Interconnect: configura una connessione privata tra il tuo VPC Google Cloud e il tuo provider di servizi cloud remoto.
  • Configura la federazione:configura l'autenticazione e crea un catalogo federato in Lakehouse.
    • OpenID Connect (OIDC) (consigliato): crea il catalogo federato in Lakehouse specificando l'ID applicazione del service principal remoto, quindi configura una policy di federazione in Databricks utilizzando l'ID univoco del account di servizio di catalogo Lakehouse.
    • Autenticazione basata su secret: crea un secret in Secret Manager con le credenziali del catalogo remoto. Quindi, crea un catalogo federato in Lakehouse e concedi l'accesso al secret al account di servizio del catalogo.
  • Verifica la connessione:verifica che Lakehouse possa connettersi correttamente al catalogo remoto.
  • Esegui query sui dati:esegui query sui dati federati utilizzando BigQuery o Managed Service for Apache Spark. Per saperne di più, consulta Utilizzare Lakehouse cross-cloud.
  • Configura le autorizzazioni:utilizza Identity and Access Management (IAM) per gestire chi può visualizzare ed eseguire query sui dati federati.

Configura Cross-Cloud Interconnect (facoltativo)

Per impostazione predefinita, le query al catalogo remoto vengono inviate tramite la rete internet pubblica. Per migliorare la sicurezza e la conformità, fornire prestazioni prevedibili e ridurre i costi di trasferimento dei dati, utilizza un interconnessione privata. In questo modo viene stabilita una connessione di rete privata dedicata tra la tua Google Cloud Virtual Private Cloud (VPC) e la rete del tuo provider di servizi cloud remoto (ad esempio AWS).

Puoi eseguire il provisioning e configurare una delle seguenti opzioni di interconnessione privata tra il tuo Google Cloud VPC e il VPC del tuo provider di servizi cloud remoto (ad esempio AWS):

Stabilisci sessioni BGP tra il tuo router Cloud in Google Cloud e il VPC del tuo fornitore di servizi cloud remoto per garantire lo scambio di route.

Per abilitare le query private, devi configurare un percorso da Lakehouse al bucket di archiviazione remoto (ad esempio, un bucket AWS Amazon S3) tramite l'interconnessione privata. Esistono due flussi architetturali che puoi seguire per configurare questo routing:

  • Routing del bilanciatore del carico di rete proxy interno regionale: questo flusso utilizza un bilanciatore del carico di rete proxy interno regionaleGoogle Cloud per distribuire le richieste tra i gruppi di endpoint di rete (NEG) di connettività ibrida che puntano a più interfacce di rete elastiche (ENI) AWS. Questo flusso è essenziale per il bilanciamento del carico, la scalabilità e l'alta affidabilità. È obbligatorio per l'interconnessione interaziendale partner e consigliato per l'interconnessione interaziendale dedicata per il bilanciamento del carico, la scalabilità e l'alta affidabilità.
  • Routing diretto degli endpoint: questo flusso connette Service Directory direttamente a un singolo indirizzo IP dell'endpoint VPC di interfaccia AWS. Questo flusso funziona solo per l'API CCI dedicata e non è supportato per l'API CCI partner.

Seleziona il flusso di configurazione che corrisponde ai requisiti dell'architettura:

Bilanciatore del carico di rete proxy interno regionale

Per configurare un bilanciatore del carico di rete proxy interno regionale per distribuire le richieste su più interfacce di rete AWS per alta affidabilità e bilanciamento del carico, segui questi passaggi:

Configura la rete AWS

Innanzitutto, crea un endpoint VPC di interfaccia Amazon S3 (AWS PrivateLink):

  1. Nella console AWS VPC, crea un endpoint di interfaccia per Amazon S3.
  2. Per il nome del servizio, specifica com.amazonaws.<var>AWS_REGION</var>.s3.
  3. Seleziona il VPC e le subnet connessi tramite Direct Connect al tuo VPC Google Cloud .
  4. Collega i gruppi di sicurezza all'endpoint per controllare l'accesso in entrata.
  5. Vengono eseguito il provisioning delle interfacce di rete elastiche (ENI) in ogni subnet selezionata. Prendi nota degli indirizzi IP privati di queste interfacce di rete.

Poi, configura i gruppi di sicurezza:

  • Assicurati che il gruppo o i gruppi di sicurezza collegati alle ENI dell'endpoint Amazon S3 consentano il traffico TCP in entrata sulla porta 443 dagli intervalli IP pertinenti del tuo VPC Google Cloud .

Configurare Google Cloud il networking

Segui le istruzioni per configurare un bilanciatore del carico di rete proxy interno regionale per endpoint ibridi.

Quando segui le istruzioni, assicurati di:

  • Crea NEG di connettività ibrida (NON_GCP_PRIVATE_IP_PORT) e aggiungi gli indirizzi IP privati delle ENI AWS che hai creato in precedenza.
  • Utilizza la porta TCP 443 per i NEG, il controllo di integrità e la regola di forwarding.
  • Configura il bilanciatore del carico nella stessa regione del catalogo federato. Google Cloud

Dopo aver creato la regola di forwarding per il bilanciatore del carico, prendi nota dell'indirizzo IP interno assegnato. Questo è il tuo ILB_IP_ADDRESS.

Configurare Service Directory

Registra l'indirizzo IP del bilanciamento del carico interno in Service Directory, in modo che Lakehouse possa rilevarlo.

  1. Crea uno spazio dei nomi per il tuo cloud remoto:

    gcloud service-directory namespaces create NAMESPACE \
        --project=PROJECT_ID \
        --location=REGION

    Sostituisci quanto segue:

    • NAMESPACE: un identificatore univoco per il tuo spazio dei nomi.
    • PROJECT_ID: il tuo Google Cloud ID progetto.
    • REGION: la Google Cloud regione. Ad esempio, us-east4. Deve trovarsi nella stessa regione del catalogo federato.
  2. Crea un servizio nello spazio dei nomi Service Directory:

    gcloud service-directory services create SERVICE_NAME \
        --namespace=NAMESPACE \
        --project=PROJECT_ID \
        --location=REGION

    Sostituisci quanto segue:

    • SERVICE_NAME: un identificatore univoco per il tuo servizio.
  3. Crea un endpoint per il bilanciatore del carico interno nel servizio:

    gcloud service-directory endpoints create ENDPOINT_NAME \
        --project=PROJECT_ID \
        --namespace=NAMESPACE \
        --service=SERVICE_NAME \
        --location=REGION \
        --network=projects/PROJECT_NUMBER/global/networks/VPC_NETWORK \
        --address=ILB_IP_ADDRESS \
        --port=443

    Sostituisci quanto segue:

    • ENDPOINT_NAME: un identificatore univoco per l'endpoint.
    • PROJECT_NUMBER: il tuo Google Cloud numero di progetto. Utilizza il numero del progetto nel flag --network.
    • ILB_IP_ADDRESS: l'indirizzo IP interno della regola di forwarding del bilanciamento del carico interno.

Endpoint diretto

Per configurare Service Directory in modo da instradare il traffico direttamente a un singolo indirizzo IP dell'endpoint VPC di interfaccia AWS, segui questi passaggi:

  1. Crea un endpoint VPC di interfaccia per Amazon S3 all'interno del tuo VPC AWS. Prendi nota dell'indirizzo IP e della porta di questo endpoint.
  2. Crea uno spazio dei nomi per il tuo cloud remoto:

    gcloud service-directory namespaces create NAMESPACE \
        --project=PROJECT_ID \
        --location=REGION

    Sostituisci quanto segue:

    • NAMESPACE: un identificatore univoco per il tuo spazio dei nomi.
    • PROJECT_ID: il tuo Google Cloud ID progetto.
    • REGION: la Google Cloud regione. Ad esempio, us-east4. Deve trovarsi nella stessa regione del catalogo federato.
  3. Crea un servizio nello spazio dei nomi Service Directory:

    gcloud service-directory services create SERVICE_NAME \
        --namespace=NAMESPACE \
        --project=PROJECT_ID \
        --location=REGION

    Sostituisci quanto segue:

    • SERVICE_NAME: un identificatore univoco per il tuo servizio.
  4. Crea un endpoint nel servizio contenente le informazioni di routing per l'endpoint VPC dell'interfaccia Amazon S3:

    gcloud service-directory endpoints create ENDPOINT_NAME \
        --service=SERVICE_NAME \
        --namespace=NAMESPACE \
        --project=PROJECT_ID \
        --location=REGION \
        --address=S3_VPCE_IP_ADDRESS \
        --port=S3_VPCE_PORT \
        --network=projects/PROJECT_NUMBER/global/networks/VPC_NETWORK

    Sostituisci quanto segue:

    • ENDPOINT_NAME: un identificatore univoco per l'endpoint.
    • S3_VPCE_IP_ADDRESS: l'indirizzo IP dell'endpoint VPC di interfaccia Amazon S3. Ad esempio, 10.0.1.45.
    • S3_VPCE_PORT: il numero di porta dell'endpoint VPC di interfaccia Amazon S3. Ad esempio, 443.
    • PROJECT_NUMBER: il tuo Google Cloud numero di progetto. Utilizza il numero del progetto nel flag --network.
    • VPC_NETWORK: il nome della rete VPC associata al tuo interconnessione privata. Google Cloud

Configura la federazione

Per eseguire query sui dati, devi configurare un catalogo federato Lakehouse che si connette al catalogo remoto.

Configura l'autenticazione

La federazione richiede l'autenticazione al catalogo remoto come service principal Databricks. Scegli una delle seguenti opzioni di autenticazione:

OIDC

OpenID Connect (OIDC) consente l'autenticazione senza secret tramite la federazione di token OAuth di Databricks.

  1. Crea un'entità di servizio nel tuo account Databricks con accesso in lettura al catalogo Unity Catalog di destinazione.
  2. Salva l'ID applicazione (UUID) per l'entità servizio. Ti servirà per un passaggio successivo.

Basato su secret

Questa opzione utilizza un ID client OAuth e un client secret archiviati in modo sicuro utilizzando i secret di Secret Manager regionali.

  1. Crea un file JSON denominato credentials.json con il payload:

    {
    "client_id": "CLIENT_ID",
    "client_secret": "CLIENT_SECRET"
    }

    Sostituisci quanto segue:

    • CLIENT_ID: l'ID client OAuth per il tuo service principal Databricks.
    • CLIENT_SECRET: il client secret OAuth per il tuo service principal Databricks.
  2. Configura l'endpoint regionale per Secret Manager:

    Per impostazione predefinita, Secret Manager utilizza un endpoint globale. Tuttavia, Lakehouse cross-cloud richiede che i segreti vengano archiviati nella stessa regione del catalogo Lakehouse. Per interagire con i secret regionali utilizzando l'interfaccia a riga di comando gcloud, devi sostituire l'endpoint API predefinito per la sessione o il profilo corrente. Per evitare problemi di connettività, il segreto e il catalogo devono essere creati nella stessa regione. Ad esempio, secretmanager.us-east4.rep.googleapis.com.

    gcloud config set api_endpoint_overrides/secretmanager https://secretmanager.REGION.rep.googleapis.com/

    Sostituisci quanto segue:

    • REGION: la regione Google Cloud in cui è archiviato il secret di Secret Manager. Ad esempio: us-east4. Per evitare problemi di connettività, il secret e il catalogo devono essere creati nella stessa regione. Ad esempio secretmanager.us-east4.rep.googleapis.com.
  3. Carica il payload in Secret Manager:

    gcloud secrets create DATABRICKS_SECRET_NAME \
    --location="REGION" \
    --project="PROJECT_ID" \
    --data-file=credentials.json

    Sostituisci quanto segue:

    • DATABRICKS_SECRET_NAME: un nome per il secret Databricks.

Crea un catalogo federato

Crea il catalogo federato utilizzando il comando gcloud biglake iceberg catalogs create.

Considerazioni:

Console

Per creare un catalogo federato utilizzando l'autenticazione basata su secret:

  1. Nella console Google Cloud , vai a Lakehouse.

    Vai a Lakehouse

  2. Fai clic su Crea catalogo.

  3. Fai clic su Catalogo federato.

    Vengono visualizzati i dettagli della Configurazione catalogo.

  4. Per Origine del catalogo federato, seleziona Unity (Databricks).

  5. Per Posizione dei dati, seleziona la regione Lakehouse in cui vuoi creare il catalogo federato. Ad esempio, us-east4. Per ridurre al minimo la latenza (anche su internet pubblico), procedi nel seguente modo quando selezioni una regione:

    • Se il catalogo Unity Catalog si trova su AWS, seleziona la regioneGoogle Cloud più vicina alla tua regione AWS.
    • Se il catalogo Unity Catalog si trova su Google Cloud, seleziona esattamente la stessa regione.
  6. Fai clic su Continua.

    Vengono visualizzati i dettagli Dettagli connessione.

  7. Nella sezione Dettagli catalogo remoto, nel campo Nome istanza Unity, inserisci il nome dell'istanza Databricks di destinazione. Ad esempio: abcd.cloud.databricks.com.

  8. Nel campo Nome Unity Catalog, inserisci il nome del catalogo Databricks Unity Catalog di destinazione con cui stabilire la federazione.

  9. Seleziona un'opzione per Metodo di autenticazione:

    • Per OIDC, inserisci l'ID applicazione per l'entità di servizio.
    • In Secret, inserisci il nome del secret. Utilizza il formato seguente: projects/PROJECT_ID/locations/REGION/secrets/DATABRICKS_SECRET_NAME.
  10. (Facoltativo) Nel campo Nome di Service Directory, inserisci il percorso del servizio Service Directory. Ad esempio: projects/PROJECT_ID/locations/REGION/namespaces/NAMESPACE/services/SERVICE_NAME. Questo è obbligatorio solo se stai configurando un Cross-Cloud Interconnect.

  11. Fai clic su Crea.

gcloud CLI

OIDC

Se utilizzi OIDC, devi specificare unity-service-principal-application-id.

Rete internet pubblica (nessun CCI)

gcloud biglake iceberg catalogs create FEDERATED_CATALOG_NAME \
    --project="PROJECT_ID" \
    --primary-location="REGION" \
    --catalog-type="federated" \
    --federated-catalog-type="unity" \
    --unity-service-principal-application-id="UNITY_SERVICE_PRINCIPAL_APPLICATION_ID" \
    --unity-instance-name="UNITY_INSTANCE_NAME" \
    --unity-catalog-name="UNITY_CATALOG_NAME" \
    --refresh-interval="REFRESH_INTERVAL" \
    --namespace-filters="NAMESPACE_FILTERS"

Sostituisci quanto segue:

  • PROJECT_ID: il tuo ID progetto Google Cloud .
  • REGION: la regione Lakehouse in cui viene creato il catalogo federato. Ad esempio, us-east4. Per ridurre al minimo la latenza, procedi nel seguente modo quando selezioni una regione:
    • Se il catalogo Unity Catalog si trova su AWS, seleziona la regioneGoogle Cloud più vicina alla tua regione AWS.
    • Se il catalogo Unity Catalog si trova su Google Cloud, seleziona la stessa regione.
  • UNITY_SERVICE_PRINCIPAL_APPLICATION_ID: l'ID applicazione (UUID) del tuo service principal Databricks.
  • UNITY_INSTANCE_NAME: il nome dell'istanza Databricks di destinazione. Ad esempio: abcd.cloud.databricks.com.
  • UNITY_CATALOG_NAME: il nome del catalogo Databricks Unity Catalog di destinazione a cui federare.
  • REFRESH_INTERVAL: (facoltativo) specifica la frequenza di aggiornamento delle informazioni del catalogo. Imposta questo valore come durata, ad esempio, 330s o 5m30s. Intervalli più brevi aggiornano i dati più spesso, ma possono costare di più in chiamate API. Intervalli più lunghi possono costare meno, ma i dati su cui viene eseguita la query potrebbero non riflettere il set di dati più recente. Se omesso o se il valore è impostato su 0s, l'aggiornamento dei metadati in background non verrà avviato. Rimarrà disabilitato finché l'intervallo di aggiornamento non verrà aggiornato a un valore positivo.
  • NAMESPACE_FILTERS: (Facoltativo) un elenco separato da virgole di spazi dei nomi da federare. Ad esempio, ns1,ns2. Se omesso, verranno inclusi tutti gli spazi dei nomi.

Di proprietà del cliente (CCI)

Se hai configurato un'interconnessione privata (ad esempio Dedicated CCI o Partner CCI), fornisci il riferimento al servizio Service Directory in modo che Lakehouse instradi il traffico in modo privato.

gcloud biglake iceberg catalogs create FEDERATED_CATALOG_NAME \
    --project="PROJECT_ID" \
    --primary-location="REGION" \
    --catalog-type="federated" \
    --federated-catalog-type="unity" \
    --unity-service-principal-application-id="UNITY_SERVICE_PRINCIPAL_APPLICATION_ID" \
    --unity-instance-name="UNITY_INSTANCE_NAME" \
    --unity-catalog-name="UNITY_CATALOG_NAME" \
    --refresh-interval="REFRESH_INTERVAL" \
    --namespace-filters="NAMESPACE_FILTERS" \
    --service-directory-name="projects/PROJECT_ID/locations/REGION/namespaces/NAMESPACE/services/SERVICE_NAME"

Sostituisci quanto segue:

  • PROJECT_ID: il tuo ID progetto Google Cloud .
  • PROJECT_NUMBER: il tuo numero di progetto Google Cloud .
  • REGION: la regione Lakehouse in cui viene creato il catalogo federato. Ad esempio, us-east4. Per ridurre al minimo la latenza, procedi nel seguente modo quando selezioni una regione:
    • Se il catalogo Unity Catalog si trova su AWS, seleziona la regioneGoogle Cloud più vicina alla tua regione AWS.
    • Se il catalogo Unity Catalog si trova su Google Cloud, seleziona la stessa regione. Nota: deve essere la stessa regione dello spazio dei nomi e del secret regionale di Service Directory.
  • UNITY_SERVICE_PRINCIPAL_APPLICATION_ID: l'ID applicazione (UUID) del tuo service principal Databricks.
  • UNITY_INSTANCE_NAME: il nome dell'istanza Databricks di destinazione. Ad esempio: abcd.cloud.databricks.com.
  • UNITY_CATALOG_NAME: il nome del catalogo Databricks Unity Catalog di destinazione da federare.
  • REFRESH_INTERVAL: (facoltativo) specifica la frequenza di aggiornamento delle informazioni del catalogo. Imposta questo valore come durata, ad esempio, 330s o 5m30s. Intervalli più brevi aggiornano i dati più spesso, ma possono costare di più in chiamate API. Intervalli più lunghi possono costare meno, ma i dati su cui viene eseguita la query potrebbero non riflettere il set di dati più recente. Se omesso o se il valore è impostato su 0s, l'aggiornamento dei metadati in background non verrà avviato. Rimarrà disabilitato finché l'intervallo di aggiornamento non verrà aggiornato a un valore positivo.
  • NAMESPACE_FILTERS: (Facoltativo) un elenco separato da virgole di spazi dei nomi da federare. Ad esempio, ns1,ns2. Se omesso, verranno inclusi tutti gli spazi dei nomi.
  • NAMESPACE: lo spazio dei nomi di Service Directory che hai creato durante la configurazione dell'interconnessione privata.
  • SERVICE_NAME: il nome del servizio Service Directory che hai creato durante la configurazione dell'interconnessione privata.

Basato su secret

Se utilizzi l'autenticazione basata su secret, devi specificare secret-name.

Rete internet pubblica (nessun CCI)

gcloud biglake iceberg catalogs create FEDERATED_CATALOG_NAME \
    --project="PROJECT_ID" \
    --primary-location="REGION" \
    --catalog-type="federated" \
    --federated-catalog-type="unity" \
    --secret-name="projects/PROJECT_ID/locations/REGION/secrets/DATABRICKS_SECRET_NAME" \
    --unity-instance-name="UNITY_INSTANCE_NAME" \
    --unity-catalog-name="UNITY_CATALOG_NAME" \
    --refresh-interval="REFRESH_INTERVAL" \
    --namespace-filters="NAMESPACE_FILTERS"

Sostituisci quanto segue:

  • PROJECT_ID: il tuo ID progetto Google Cloud .
  • REGION: la regione Lakehouse in cui viene creato il catalogo federato. Ad esempio, us-east4. Per ridurre al minimo la latenza, procedi nel seguente modo quando selezioni una regione:
    • Se il catalogo Unity Catalog si trova su AWS, seleziona la regioneGoogle Cloud più vicina alla tua regione AWS.
    • Se il catalogo Unity Catalog si trova su Google Cloud, seleziona la stessa regione.
  • DATABRICKS_SECRET_NAME: il nome del secret Databricks.
  • UNITY_INSTANCE_NAME: il nome dell'istanza Databricks di destinazione. Ad esempio: abcd.cloud.databricks.com.
  • UNITY_CATALOG_NAME: il nome del catalogo Databricks Unity Catalog di destinazione a cui federare.
  • REFRESH_INTERVAL: (facoltativo) specifica la frequenza di aggiornamento delle informazioni del catalogo. Imposta questo valore come durata, ad esempio, 330s o 5m30s. Intervalli più brevi aggiornano i dati più spesso, ma possono costare di più in chiamate API. Intervalli più lunghi possono costare meno, ma i dati su cui viene eseguita la query potrebbero non riflettere il set di dati più recente. Se omesso o se il valore è impostato su 0s, l'aggiornamento dei metadati in background non verrà avviato. Rimarrà disabilitato finché l'intervallo di aggiornamento non verrà aggiornato a un valore positivo.
  • NAMESPACE_FILTERS: (Facoltativo) un elenco separato da virgole di spazi dei nomi da federare. Ad esempio, ns1,ns2. Se omesso, verranno inclusi tutti gli spazi dei nomi.

Di proprietà del cliente (CCI)

gcloud biglake iceberg catalogs create FEDERATED_CATALOG_NAME \
    --project="PROJECT_ID" \
    --primary-location="REGION" \
    --catalog-type="federated" \
    --federated-catalog-type="unity" \
    --secret-name="projects/PROJECT_ID/locations/REGION/secrets/DATABRICKS_SECRET_NAME" \
    --unity-instance-name="UNITY_INSTANCE_NAME" \
    --unity-catalog-name="UNITY_CATALOG_NAME" \
    --refresh-interval="REFRESH_INTERVAL" \
    --namespace-filters="NAMESPACE_FILTERS" \
    --service-directory-name="projects/PROJECT_ID/locations/REGION/namespaces/NAMESPACE/services/SERVICE_NAME"

Sostituisci quanto segue:

  • PROJECT_ID: il tuo ID progetto Google Cloud .
  • PROJECT_NUMBER: il tuo numero di progetto Google Cloud .
  • REGION: la regione Lakehouse in cui viene creato il catalogo federato. Ad esempio, us-east4. Per ridurre al minimo la latenza, procedi nel seguente modo quando selezioni una regione:
    • Se il catalogo Unity Catalog si trova su AWS, seleziona la regioneGoogle Cloud più vicina alla tua regione AWS.
    • Se il catalogo Unity Catalog si trova su Google Cloud, seleziona la stessa regione. Nota: deve essere la stessa regione dello spazio dei nomi e del secret regionale di Service Directory.
  • DATABRICKS_SECRET_NAME: il nome del secret Databricks.
  • UNITY_INSTANCE_NAME: il nome dell'istanza Databricks di destinazione. Ad esempio: abcd.cloud.databricks.com.
  • UNITY_CATALOG_NAME: il nome del catalogo Databricks Unity Catalog di destinazione da federare.
  • REFRESH_INTERVAL: (facoltativo) specifica la frequenza di aggiornamento delle informazioni del catalogo. Imposta questo valore come durata, ad esempio, 330s o 5m30s. Intervalli più brevi aggiornano i dati più spesso, ma possono costare di più in chiamate API. Intervalli più lunghi possono costare meno, ma i dati su cui viene eseguita la query potrebbero non riflettere il set di dati più recente. Se omesso o se il valore è impostato su 0s, l'aggiornamento dei metadati in background non verrà avviato. Rimarrà disabilitato finché l'intervallo di aggiornamento non verrà aggiornato a un valore positivo.
  • NAMESPACE_FILTERS: (Facoltativo) un elenco separato da virgole di spazi dei nomi da federare. Ad esempio, ns1,ns2. Se omesso, verranno inclusi tutti gli spazi dei nomi.
  • NAMESPACE: lo spazio dei nomi di Service Directory che hai creato durante la configurazione dell'interconnessione privata.
  • SERVICE_NAME: il nome del servizio Service Directory che hai creato durante la configurazione dell'interconnessione privata.

Completa la configurazione dell'autenticazione

Completa la configurazione in base all'opzione di autenticazione scelta:

OIDC

Quando viene creato il catalogo, Lakehouse esegue il provisioning di un account di servizio univoco. Devi recuperare l'ID numerico univoco del account di servizio e utilizzarlo per configurare un criterio di federazione per il service principal Databricks.

  1. Recupera l'ID univoco numerico del account di servizio del catalogo Lakehouse:

    gcloud biglake iceberg catalogs describe FEDERATED_CATALOG_NAME \
      --project="PROJECT_ID" \
      --location="REGION" \
      --format='value(biglake-service-account-id)'
  2. Nel tuo account Databricks, configura una policy di federazione per il Service Principal che hai creato in precedenza. Utilizza i seguenti valori:

    • URL emittente: https://accounts.google.com
    • Soggetto: l'ID univoco numerico del account di servizio del catalogo Lakehouse recuperato nel passaggio precedente.
    • Pubblico: https://accounts.cloud.databricks.com

    Assicurati che l'entità di servizio Databricks abbia accesso in lettura al catalogo e allo spazio di lavoro di destinazione.

Basato su secret

Quando viene creato il catalogo, Lakehouse esegue il provisioning di un account di servizio univoco (restituito come biglake-service-account nella descrizione della risorsa).

Devi concedere a questo account di servizio l'autorizzazione per accedere al secret che hai creato in precedenza. Tieni presente che la propagazione delle norme IAM può richiedere alcuni minuti.

Concedi al account di servizio del catalogo l'autorizzazione ad accedere al secret.

gcloud config set api_endpoint_overrides/secretmanager https://secretmanager.REGION.rep.googleapis.com/
gcloud secrets add-iam-policy-binding DATABRICKS_SECRET_NAME \
--project="PROJECT_ID" \
--location="REGION" \
--member="serviceAccount:$(gcloud biglake iceberg catalogs describe FEDERATED_CATALOG_NAME \
    --project="PROJECT_ID" \
    --location="REGION" \
    --format='value(biglake-service-account)')" \
--role="roles/secretmanager.secretAccessor"

Per verificare che il account di servizio di catalogo federato abbia accesso al secret, esegui questo comando:

gcloud config set api_endpoint_overrides/secretmanager https://secretmanager.REGION.rep.googleapis.com/
gcloud secrets get-iam-policy DATABRICKS_SECRET_NAME \
   --project="PROJECT_ID" \
   --location="REGION"

Nell'output, verifica che al account di servizio biglake-service-account sia assegnato il ruolo roles/secretmanager.secretAccessor.

Verificare la connessione

Verifica che il ciclo di aggiornamento dei metadati in background del catalogo sia stato completato correttamente e che gli spazi dei nomi siano sincronizzati.

  1. Verifica che lo stato di aggiornamento indichi esito positivo:

    gcloud biglake iceberg catalogs describe FEDERATED_CATALOG_NAME \
      --project="PROJECT_ID" \
      --location="REGION"
  2. Verifica che gli schemi remoti vengano visualizzati come spazi dei nomi sincronizzati:

    gcloud biglake iceberg namespaces list \
      --catalog="FEDERATED_CATALOG_NAME" \
      --project="PROJECT_ID" \
      --location="REGION"

Passaggi successivi