Condividi tramite


Abilitare la federazione del metastore Hive per un metastore Hive esterno

Importante

Questa funzionalità si trova in anteprima pubblica.

Questo articolo illustra come eseguire la federazione di un metastore Hive esterno in modo che l'organizzazione possa lavorare con le tabelle metastore Hive usando Unity Catalog.

Per una panoramica sulla federazione del metastore Hive, consulta Federazione del metastore Hive: abilita Unity Catalog per governare le tabelle registrate in un metastore Hive.

Prima di iniziare

Esaminare l'elenco dei servizi e delle funzionalità supportati dalla federazione del metastore Hive: requisiti , funzionalità supportate e limitazioni.

Per ogni passaggio seguente sono elencati requisiti specifici.

Passaggio 1: Connettere il catalogo Unity al metastore Hive esterno

In questo passaggio, si crea una connessione , che è un oggetto proteggibile del Unity Catalog che specifica un percorso e i dati di accesso per un sistema di database, in questo caso il tuo metastore Hive.

Requisiti

È necessario disporre degli elementi seguenti:

  • Nome utente e password che concede l'accesso al sistema di database che ospita il metastore Hive.
  • URL del database (host e porta).
  • Nome del database.
  • Il privilegio CREATE CONNECTION nel metastore di Unity Catalog. Per impostazione predefinita, gli amministratori metastore hanno questo privilegio.

Creare la connessione

Per creare una connessione, puoi usare Esplora cataloghi o il comando SQL CREATE CONNECTION in un notebook di Azure Databricks o nell'editor di query SQL di Databricks.

Nota

È anche possibile usare l'API REST di Databricks o l'interfaccia della riga di comando di Databricks per creare una connessione. Vedere comando POST /api/2.1/unity-catalog/connections e i comandi del catalogo Unity.

Esploratore di Cataloghi

  1. Nell'area di lavoro di Azure Databricks fare clic sull'icona CatalogoCatalogo.
  2. Nella pagina Accesso rapido fare clic su Aggiungi dati > Aggiungi una connessione.
  3. Nella pagina Connessione di base della Configurazione guidata connessione immettere un nome di connessione descrittivo.
  4. Selezionare un tipo di connessione di metastore Hive e tipo metastore di esterno.
  5. (Facoltativo) Aggiungere un commento.
  6. Fare clic su Avanti.
  7. Nella pagina autenticazione immettere quanto segue per il database host:
    • Host: ad esempio, mysql-demo.lb123.us-west-2.rds.amazonaws.com
    • porta: ad esempio, 3306
    • Utente: ad esempio, mysql_user
    • password: ad esempio, password123
  8. Fare clic su Avanti.
  9. Nella pagina Dettagli connessione, inserisci le seguenti informazioni per il database host:
    • Versione: Le versioni del metastore Hive supportate includono la 0.13 e la 2.3.
    • Database: Il nome del database a cui ti stai collegando.
    • Tipo di database: ad esempio, MySQL.
  10. Fare clic su Crea connessione.
  11. Nella pagina informazioni di base del catalogo immettere un nome per il catalogo esterno.
  12. Per Percorsi autorizzati, scegliere i percorsi di archiviazione su cloud a cui è possibile accedere tramite il catalogo. Solo le tabelle che rientrano in questi percorsi possono essere sottoposte a query tramite il catalogo federato. I percorsi devono essere coperti da locazioni esterne. Per altre informazioni, vedere Quali sono i percorsi autorizzati?.
  13. (Facoltativo) Per posizione di archiviazione, scegli una posizione nell'archiviazione cloud in cui i dati selezionati verranno archiviati per le tabelle in questo catalogo. Se non specificato, il percorso predefinito sarà il percorso radice del metastore, se presente.If not specified, the location will default to the metastore root location, if present.
  14. Fai clic su Crea catalogo.
  15. Nella pagina Access selezionare le aree di lavoro in cui gli utenti possono accedere al catalogo creato. È possibile selezionare Tutte le aree di lavoro hanno accessooppure fare clic su Assegna alle aree di lavoro, selezionare le aree di lavoro e quindi fare clic su Assegna.
  16. Aggiungere un Proprietario capace di gestire l'accesso a tutti gli oggetti nel catalogo. Iniziare a digitare un utente o un gruppo nella casella di testo e quindi fare clic sull'utente o sul gruppo nei risultati restituiti.
  17. Concedere privilegi nel catalogo. Fare clic su Concedi:
    1. Specificare il Principals che avrà accesso agli oggetti nel catalogo. Iniziare a digitare un utente o un gruppo nella casella di testo e quindi fare clic sull'utente o sul gruppo nei risultati restituiti.
    2. Selezionare i set di impostazioni Privilegi da concedere a ogni utente o gruppo. A tutti gli utenti dell'account viene concesso BROWSE per impostazione predefinita.
      • Selezionare Lettore Dati dal menu a discesa per concedere privilegi read sugli oggetti nel catalogo.
      • Selezionare Editor Dati dal menu a discesa per concedere i privilegi read e modify sugli oggetti nel catalogo.
      • Selezionare manualmente i privilegi da concedere.
    3. Fare clic su Concedi.
  18. Fare clic su Avanti.
  19. Nella pagina Metadati, specificare le coppie chiave-valore dei tag. Per altre informazioni, vedere Applicare tag a oggetti protetti nel Catalogo Unity.
  20. (Facoltativo) Aggiungere un commento.
  21. Fare clic su Salva.

SQL

Eseguire il comando seguente in un notebook o nell'editor di query SQL di Databricks.

CREATE CONNECTION <connection-name> TYPE hive_metastore
OPTIONS (
  host '<hostname>',
  port '<port>',
  user '<user>',
  password '<password>',
  database '<database-name>',
  db_type 'MYSQL',
  version '2.3',
);

Includi warehouse_directory solo se non vuoi utilizzare la posizione predefinita della cartella del magazzino Hive per il metastore Hive.

È consigliabile usare Azure Databricks segreti anziché stringhe di testo non crittografato per valori sensibili come le credenziali. Per esempio:

CREATE CONNECTION <connection-name> TYPE hive_metastore
OPTIONS (
  host '<hostname>',
  port '<port>',
  user secret ('<secret-scope>','<secret-key-user>'),
  password secret ('<secret-scope>','<secret-key-password>'),
  database '<database-name>',
  db_type 'MYSQL',
  version '2.3'
)

Se è necessario usare stringhe di testo non crittografato nei comandi SQL del notebook, evitare di troncare la stringa eliminando caratteri speciali come $ con \. Ad esempio: \$.

Per informazioni sulla configurazione dei segreti, vedere Secret management.

Passaggio 2: Creare percorsi esterni per i dati nel metastore Hive

In questo passaggio, configuri una posizione esterna in Unity Catalog per regolare l'accesso agli spazi di archiviazione nel cloud che contengono i dati registrati nel metastore Hive esterno.

Percorsi esterni sono oggetti a protezione diretta del catalogo Unity che associano le credenziali di archiviazione ai percorsi dei contenitori di archiviazione cloud. Consultare Percorsi esterni e credenziali di archiviazione.

Requisiti

Per i requisiti di autorizzazione per l'archiviazione cloud e Azure Databricks, vedere "Prima di iniziare" in Creare una posizione esterna per connettere l'archiviazione cloud ad Azure Databricks.

Opzioni per la creazione dell'ubicazione esterna

Il processo consigliato da Databricks per la creazione di una posizione esterna in Unity Catalog dipende dalla situazione:

Abilitare la modalità di fallback in posizioni esterne

Non appena si crea una posizione esterna nel Catalogo Unity, l'accesso al percorso rappresentato da tale posizione esterna è governato dalle autorizzazioni del Catalogo Unity quando si eseguono query sul calcolo abilitato per il Catalogo Unity (singolo utente, condiviso o SQL warehouse). Ciò può interrompere i carichi di lavoro esistenti che non dispongono delle autorizzazioni corrette del catalogo Unity per accedere al percorso.

Quando una posizione esterna è in modalità di fallback, il sistema controlla innanzitutto i permessi del catalogo Unity dell'entità di query sulla posizione e, se non ha successo, fa ricorso all'uso di credenziali esistenti con ambito di cluster o di notebook, ad esempio profili di istanza o proprietà di configurazione di Apache Spark, in modo che gli attuali carichi di lavoro continuino a funzionare senza interruzioni.

La modalità di fallback è utile quando si sta eseguendo la migrazione del carico di lavoro legacy. Dopo aver aggiornato i carichi di lavoro per l'esecuzione con le autorizzazioni di Unity Catalog, dovresti disabilitare la modalità di fallback per impedire l'uso delle credenziali con ambito cluster legacy per aggirare la governance dei dati di Unity Catalog.

È possibile abilitare la modalità di fallback usando Esplora cataloghi o l'API REST dei percorsi esterni del catalogo Unity.

Autorizzazioni necessarie: Proprietario della località esterna.

Esploratore di Cataloghi

  1. Nell'area di lavoro di Azure Databricks fare clic sull'icona CatalogoCatalogo.
  2. Nella pagina accesso rapido, fare clic su Dati esterni >.
  3. Seleziona la posizione esterna che vuoi aggiornare.
  4. Attiva l'interruttore modalità di fallback e fai clic su Abilita per confermare.

API

Gli esempi curl seguenti illustrano come abilitare la modalità di fallback quando si crea una posizione esterna e quando si aggiorna una posizione esterna esistente.

Creazione di una nuova posizione esterna:

curl -X POST -H 'Authorization: Bearer <token>' \
https://<workspace-URL>/api/2.1/unity-catalog/external-locations \
--data
'{
  "name": "fallback_mode_enabled_external_location",
  "url": "abfss://container-name@storage-account.dfs.core.windows.net/external_location_container/url",
  "credential_name": "external_location_credential",
  "fallback": true
  "skip_validation": true
}'

Aggiornamento di una posizione esterna:

curl -X PATCH \
-H 'Authorization: Bearer <token>' \
-H 'Content-Type: application/json' \
https://<workspace-URL>/api/2.1/unity-catalog/external-locations/<external-location-name> \
--data
 '{
   "comment": "fallback mode enabled",
   "fallback": true
  }'

Passaggio 3: Creare un catalogo federato

In questo passaggio si usa la connessione creata nel passaggio 1 per creare un catalogo federato in Unity Catalog che punta alla posizione esterna creata nel passaggio 2. Un catalogo federato è un tipo di catalogo esterno. È un oggetto sicuro in Unity Catalog che rispecchia un database o un catalogo in un sistema di dati esterno, consentendo di eseguire query su tali dati nell'area di lavoro di Azure Databricks, con accesso gestito da Unity Catalog. In questo caso, il catalogo con mirroring sono i tuoi dati registrati in un metastore Hive.

Ogni volta che un utente o un flusso di lavoro interagisce con il catalogo federato, i metadati vengono sincronizzati dal metastore Hive.

Requisiti

requisiti di autorizzazione:

Per creare il catalogo straniero:

  • Il privilegio CREATE CATALOG nel metastore del catalogo Unity.
  • Proprietà della connessione o del privilegio CREATE FOREIGN CATALOG per la connessione.
  • Per immettere percorsi autorizzati per il catalogo esterno, è necessario disporre del privilegio CREATE FOREIGN SECURABLE in una posizione esterna che includa tali percorsi. Il proprietario della posizione esterna ha questo privilegio per impostazione predefinita.

Per lavorare con il catalogo esterno:

  • Proprietà del catalogo o USE CATALOG

requisiti di calcolo:

  • Per creare il catalogo usando Esplora cataloghi: nessun calcolo necessario.
  • Per creare il catalogo usando SQL: Databricks Runtime 13.3 LTS o versione successiva.
  • Per utilizzare il catalogo: un cluster condiviso con Databricks Runtime 13.3 LTS, 14.3 LTS, 15.1 o versioni successive.

Creare il catalogo straniero

Per creare un catalogo estero, è possibile usare Esplora cataloghi o il comando SQL CREATE FOREIGN CATALOG in un notebook di Azure Databricks o nell'editor di query SQL.

Nota

È anche possibile usare l'API del Catalogo Unity. Vedere Creare un catalogo nella documentazione di riferimento dell'API REST di Databricks.

  1. Nell'area di lavoro di Azure Databricks, fare clic sull'icona CatalogoCatalogo per aprire Esplora catalogo.

  2. Nella pagina Accesso rapido fare clic sul pulsante aggiungi dati Aggiungi dati e selezionare Aggiungi un catalogo .

  3. Immettere un nome Catalogo e selezionare un Tipo di Esterno.

  4. Selezionare la connessione creata nel passaggio 1 dal menu a tendina.

  5. Nel campo Percorsi autorizzati immettere i percorsi delle posizioni di archiviazione cloud definite come posizioni esterne nel passaggio 2. Ad esempio, abfss://container@storageaccount.dfs.core.windows.net/demo,abfss://container@storageaccount.dfs.core.windows.net/depts/finance.

    I percorsi autorizzati sono un livello di sicurezza aggiunto solo per i cataloghi federati. Consultare Quali sono i percorsi consentiti?.

  6. Fare clic su Crea.

  7. (Facoltativo) Fare clic su Configura per aprire una procedura guidata che ti guida nella concessione delle autorizzazioni sul catalogo e nell'aggiunta di tag. È anche possibile eseguire questi passaggi in un secondo momento.

    Consulta Gestire i privilegi in Unity Catalog e Applicare tag a oggetti securabili nel catalogo Unity.

  8. (Facoltativo) Associare il catalogo a aree di lavoro specifiche.

    Per impostazione predefinita, è possibile accedere ai cataloghi da qualsiasi area di lavoro collegata al metastore del catalogo Unity (limitato dai privilegi utente). Se si vuole consentire l'accesso solo da aree di lavoro specifiche, passare alla scheda aree di lavoro e assegnare le aree di lavoro. Consulta Limitare l'accesso al catalogo a aree di lavoro specifiche.

  9. Popolare il catalogo federato con i metadati del metastore Hive.

    Ogni volta che un utente o un flusso di lavoro interagisce con il catalogo federato, i metadati vengono sincronizzati dal metastore Hive. La prima interazione popola il catalogo in Unity Catalog e ne rende visibile il contenuto nell'interfaccia utente di Esplora cataloghi. È possibile popolare il catalogo selezionando e avviando una risorsa di calcolo supportata in Esplora cataloghi. È necessario essere il proprietario del catalogo (che si è in virtù della creazione del catalogo) o un utente con il privilegio USE CATALOG.

    Eseguire il comando SQL seguente in un notebook o nell'editor di query SQL. Gli elementi tra parentesi quadre sono facoltativi. Sostituire i valori segnaposto:

    • <catalog-name>: Nome del catalogo in Azure Databricks.
    • <connection-name>: nome dell'oggetto connessione creato nel passaggio 1.
    • <path1>,<path2>: Percorsi alle posizioni di archiviazione cloud che hai definito come posizioni esterne nel passaggio 2. Ad esempio, abfss://container@storageaccount.dfs.core.windows.net/demo,abfss://container@storageaccount.dfs.core.windows.net/depts/finance. I percorsi autorizzati sono un livello di sicurezza aggiunto solo per i cataloghi federati. Consultare Quali sono i percorsi consentiti?.
    CREATE FOREIGN CATALOG [IF NOT EXISTS] <catalog-name> USING CONNECTION <connection-name>
    OPTIONS (authorized_paths '<path1>,<path2>');
    

    Ogni volta che un utente o un flusso di lavoro interagisce con il catalogo federato, i metadati vengono sincronizzati dal metastore Hive.

Vedere anche Gestire e usare cataloghi stranieri.