Aggiornare tabelle e viste Hive a Unity Catalog

Questo articolo descrive come aggiornare tabelle e viste registrate nel metastore Hive locale dell'area di lavoro esistente a Unity Catalog. È possibile aggiornare una tabella Hive a una tabella gestita o a una tabella esterna in Unity Catalog.

  • Le tabelle gestite rappresentano il modo migliore per creare tabelle nel catalogo unity. Il catalogo Unity gestisce completamente il ciclo di vita, il layout dei file e l'archiviazione. Unity Catalog ottimizza anche le prestazioni automaticamente. Le tabelle gestite usano sempre il formato di tabella Delta .

    Le tabelle gestite si trovano in una posizione di archiviazione gestita che si riserva per il catalogo unity. A causa di questo requisito di archiviazione, è necessario usare CLONE o CREATE TABLE AS edizione Standard LECT (CTAS) se si desidera copiare le tabelle Hive esistenti in Unity Catalog come tabelle gestite.

  • Le tabelle esterne sono tabelle il cui ciclo di vita dei dati, il layout di file e il percorso di archiviazione non sono gestiti da Unity Catalog. Per le tabelle esterne sono supportati più formati di dati.

    In genere si usano tabelle esterne solo quando è necessario l'accesso diretto ai dati usando risorse di calcolo non Databricks, ovvero non usando cluster Databricks o databricks SQL Warehouse. Le tabelle esterne sono utili anche negli scenari di migrazione, perché è possibile registrare rapidamente i dati esistenti in Unity Catalog senza dover copiare i dati. Ciò è dovuto al fatto che i dati nelle tabelle esterne non devono risiedere nell'archiviazione gestita riservata.

Per altre informazioni sulle tabelle gestite ed esterne nel catalogo unity, vedere Tabelle.

Opzioni di migrazione da Hive a Unity Catalog

Quando si è pronti per eseguire la migrazione di tabelle Hive a Unity Catalog, sono disponibili diverse opzioni, a seconda del caso d'uso:

Strumento di migrazione Descrizione Requisiti delle tabelle Hive Tabella del catalogo Unity creata Perché dovrei usarlo?
UCX Un set completo di utilità della riga di comando e altri strumenti che valutano l'idoneità dell'area di lavoro per la migrazione del catalogo Unity ed eseguono flussi di lavoro che eseguono la migrazione di identità, autorizzazioni, posizioni di archiviazione e tabelle a Catalogo Unity. UCX è disponibile in GitHub in databrickslabs/ucx. Tabelle Hive gestite o esterne Gestito o esterno Si vuole uno strumento di pianificazione completo dell'aggiornamento dell'area di lavoro che va oltre l'aggiornamento delle tabelle Hive al catalogo Unity. Si vogliono aggiornare le aree di lavoro con grandi quantità di dati nel metastore Hive. Si hanno familiarità con l'esecuzione di script. Se si vuole eseguire un aggiornamento in blocco delle tabelle Hive alle tabelle gestite di Unity Catalog, questa è l'unica opzione. UCX, come tutti i progetti di Databricks Labs, è un repository GitHub pubblico e non supportato direttamente da Databricks.
Aggiornamento guidato catalogo Unity Una funzionalità di Esplora cataloghi che consente di copiare in blocco interi schemi (database) e più tabelle gestite ed esterne dal metastore Hive al metastore di Unity Catalog come tabelle esterne. La procedura guidata di aggiornamento esegue il SYNC comando sulle tabelle selezionate, lasciando intatte le tabelle Hive originali. È possibile pianificare aggiornamenti regolari per raccogliere le modifiche apportate alle tabelle Hive di origine. Tabelle Hive gestite o esterne Solo esterno Si vuole aggiornare rapidamente le tabelle Hive a tabelle esterne nel catalogo unity e si preferisce un'interfaccia visiva. La possibilità di pianificare le sincronizzazioni regolari quando le modifiche alla tabella Hive di origine lo rendono uno strumento utile per la gestione di un'area di lavoro Hive e Unity Catalog "ibrida" durante la transizione a Unity Catalog.
Comando SYNC SQL SYNC consente di copiare tabelle esterne e tabelle gestite (se le tabelle gestite vengono archiviate all'esterno dell'archiviazione dell'area di lavoro di Databricks, talvolta note come radice DBFS) nel metastore Hive in tabelle esterne nel catalogo Unity. È possibile sincronizzare singole tabelle o interi schemi.

SYNC è progettato per essere eseguito in base a una pianificazione per raccogliere nuove modifiche nel metastore Hive e sincronizzarle con Unity Catalog.
Tabelle Hive gestite o esterne Solo esterno Si vuole aggiornare rapidamente le tabelle Hive a tabelle esterne nel catalogo unity e si preferisce usare i comandi SQL anziché un'interfaccia visiva.

La pianificazione delle esecuzioni regolari SYNC per aggiornare le tabelle del catalogo Unity esistenti quando le modifiche alla tabella Hive di origine lo rendono uno strumento utile per gestire un'area di lavoro Hive e Unity Catalog "ibrida" durante la transizione al catalogo Unity.

Poiché non è possibile usare SYNC per aggiornare le tabelle gestite presenti nell'archiviazione dell'area di lavoro di Databricks, usare CREATE TABLE CLONE per tali tabelle.
Comando CREATE TABLE CLONE SQL CREATE TABLE CLONE consente di aggiornare le tabelle gestite nel metastore Hive alle tabelle gestite in Unity Catalog. È possibile clonare singole tabelle.

I cloni profondi sono preferiti, perché copiano i dati della tabella di origine nella destinazione clone oltre ai metadati della tabella esistenti.
Tabelle Hive gestite in formato Delta, Parquet o Iceberg. La clonazione di tabelle di origine Parquet e Iceberg presenta alcuni requisiti e limitazioni specifici: vedere Requisiti e limitazioni per la clonazione di tabelle Parquet e Iceberg. Solo gestito Si vuole eseguire la migrazione di tabelle gestite Hive alle tabelle gestite di Unity Catalog per sfruttare appieno la governance dei dati di Unity Catalog e le tabelle Hive soddisfano i criteri elencati nella cella "Requisiti della tabella Hive".

Se le tabelle Hive non soddisfano i "requisiti della tabella Hive", è possibile usare il comando CREATE TABLE AS edizione Standard LECT SQL per aggiornare una tabella Hive a una tabella gestita del catalogo Unity. Tuttavia CLONE , è quasi sempre preferito. La clonazione ha una sintassi più semplice di CREATE TABLE AS SELECT: non è necessario specificare partizionamento, formato, invarianti, valori Null, flusso, COPY INTOe altri metadati, perché vengono clonati dalla tabella di origine.

Questo articolo descrive come eseguire tutto il processo di aggiornamento basato su UCX. Databricks consiglia UCX per la maggior parte degli scenari di aggiornamento dell'area di lavoro. Tuttavia, per casi d'uso più semplici, è possibile preferire uno o più degli strumenti descritti qui.

Prima di iniziare

Questa sezione descrive alcuni degli effetti della migrazione da preparare, insieme alle autorizzazioni e ai requisiti di calcolo.

Comprendere l'impatto

Tenere presente che quando si modificano i carichi di lavoro per usare le nuove tabelle del catalogo Unity, potrebbe essere necessario modificare alcuni comportamenti:

  • Unity Catalog gestisce le partizioni in modo diverso rispetto a Hive. I comandi Hive che modificano direttamente le partizioni non sono supportati nelle tabelle gestite dal catalogo Unity.
  • La cronologia delle tabelle non viene eseguita durante l'esecuzione CREATE TABLE CLONEdi . Tutte le tabelle nel metastore Hive clonato in Unity Catalog vengono considerate come nuove tabelle. Non è possibile eseguire il viaggio in tempo Delta Lake o altre operazioni che si basano sulla cronologia di pre-migrazione.

Per altre informazioni, vedere Usare il catalogo unity e il metastore Hive legacy.

Requisiti

Per eseguire le migrazioni, è necessario disporre di:

  • Area di lavoro con un metastore del catalogo Unity e almeno un catalogo di Catalogo Unity. Vedere Configurare e gestire il catalogo Unity.

  • Privilegi per i cataloghi di Catalogo Unity a cui si sta eseguendo la migrazione delle tabelle. Questi requisiti dei privilegi vengono enumerati all'inizio di ogni procedura descritta in questo articolo.

  • Per la migrazione a tabelle esterne del catalogo Unity: credenziali di archiviazione e posizioni esterne definite nel catalogo unity e privilegi CREATE EXTERNAL TABLE per la posizione esterna.

  • Accesso all'ambiente di calcolo di Azure Databricks che soddisfa entrambi i requisiti seguenti:

    • Supporta il catalogo Unity (sql warehouse o risorse di calcolo che usano la modalità di accesso condiviso o utente singolo).
    • Consente l'accesso alle tabelle nel metastore Hive.

    Poiché le risorse di calcolo che usano la modalità di accesso condiviso sono abilitate per il controllo di accesso alle tabelle legacy per impostazione predefinita, ciò significa che se si usa tale modalità di accesso, è necessario disporre dei privilegi di controllo di accesso alle tabelle nel metastore Hive da cui si esegue la migrazione. È possibile concedere a se stessi l'accesso usando il comando SQL seguente:

    GRANT all_privileges ON catalog hive_metastore TO `<user>`
    

    In alternativa, è possibile usare una risorsa di calcolo in modalità di accesso utente singolo.

Per altre informazioni sulla gestione dei privilegi per gli oggetti nel metastore Hive, vedere Privilegi del metastore Hive e oggetti a protezione diretta (legacy). Per altre informazioni sulla gestione dei privilegi per gli oggetti nel metastore del catalogo Unity, vedere Gestire i privilegi in Unity Catalog.

Identificare le tabelle gestite dal metastore Hive

Per determinare se una tabella è attualmente registrata in Unity Catalog, controllare il nome del catalogo. Le tabelle nel catalogo hive_metastore vengono registrate nel metastore Hive locale dell'area di lavoro. Tutti gli altri cataloghi elencati sono regolati da Unity Catalog.

Per visualizzare le tabelle nel hive_metastore catalogo tramite Esplora cataloghi:

  1. Fare clic su Icona catalogoCatalogo nella barra laterale.
  2. Nel riquadro del catalogo passare al hive_metastore catalogo ed espandere i nodi dello schema.

È anche possibile cercare una tabella specifica usando il campo filtro nel riquadro Catalogo.

Aggiornare uno schema o più tabelle dal metastore Hive alle tabelle esterne del catalogo Unity tramite l'aggiornamento guidato

È possibile copiare schemi completi (database) e più tabelle esterne o gestite dal metastore Hive predefinito di Azure Databricks nel metastore di Unity Catalog usando l'aggiornamento guidato di Esplora cataloghi . Le tabelle aggiornate saranno tabelle esterne nel catalogo unity.

Per informazioni su quando usare l'aggiornamento guidato, vedere Opzioni di migrazione da Hive a Unity Catalog.

Requisiti

Requisiti per il formato dei dati:

Requisiti di calcolo:

Requisiti di autorizzazione e oggetti catalogo Unity:

  • Credenziali di archiviazione per un'identità gestita di Azure o un'entità servizio che autorizza Unity Catalog ad accedere al percorso della posizione delle tabelle.
  • Posizione esterna che fa riferimento alle credenziali di archiviazione appena create e al percorso dei dati nel tenant cloud.
  • CREATE EXTERNAL TABLE autorizzazione nella posizione esterna delle tabelle da aggiornare.

Requisiti di accesso alle tabelle Hive:

  • Se il calcolo usa la modalità di accesso condiviso, è necessario accedere alle tabelle nel metastore Hive, concesso usando il controllo di accesso alle tabelle legacy. Vedere Prima di iniziare.

Processo di aggiornamento

  1. Fare clic su Icona catalogoCatalogo nella barra laterale per aprire Esplora cataloghi.

  2. Selezionare hive_metastore come catalogo e selezionare lo schema (database) da aggiornare.

    Seleziona database

  3. Fare clic su Aggiorna in alto a destra nella visualizzazione dettagli dello schema.

  4. Selezionare tutte le tabelle da aggiornare e fare clic su Avanti.

    È possibile aggiornare solo le tabelle esterne in formati supportati da Unity Catalog tramite la procedura guidata di aggiornamento.

  5. Impostare il catalogo di destinazione, lo schema (database) e il proprietario per ogni tabella.

    Gli utenti potranno accedere alla tabella appena creata nel contesto dei relativi privilegi nel catalogo e nello schema.

    I proprietari di tabelle dispongono di tutti i privilegi per la tabella, inclusi SELECT e MODIFY. Se non si seleziona un proprietario, le tabelle gestite vengono create con l'utente come proprietario. Databricks consiglia in genere di concedere la proprietà della tabella ai gruppi. Per altre informazioni sulla proprietà degli oggetti in Unity Catalog, vedere Gestire la proprietà degli oggetti del catalogo Unity.

    Per assegnare lo stesso catalogo e lo stesso schema a più tabelle, selezionare le tabelle e fare clic sul pulsante Imposta destinazione .

    Per assegnare lo stesso proprietario a più tabelle, selezionare le tabelle e fare clic sul pulsante Imposta proprietario .

  6. Esaminare le configurazioni della tabella. Per modificarle, fare clic sul pulsante Indietro .

  7. Fare clic su Crea query per l'aggiornamento.

    Viene visualizzato un editor di query con istruzioni SQL generate.

  8. Esegui la query.

    Al termine della query, i metadati di ogni tabella sono stati copiati dal metastore Hive in Unity Catalog. Queste tabelle sono contrassegnate come aggiornate nella procedura guidata di aggiornamento.

  9. Definire il controllo di accesso con granularità fine usando la scheda Autorizzazioni di ogni nuova tabella.

  10. (Facoltativo) Aggiungere commenti a ogni tabella Hive aggiornata che punta gli utenti alla nuova tabella del catalogo Unity.

    Tornare alla tabella originale nel hive.metastore catalogo per aggiungere il commento della tabella.

    Se si usa la sintassi seguente nel commento della tabella, i notebook e le query dell'editor di query SQL che fanno riferimento alla tabella Hive deprecata visualizzeranno il nome deprecato della tabella usando il testo barrato, visualizzare il commento come avviso e fornire un collegamento Correzione rapida a Databricks Assistant, che può aggiornare il codice per fare riferimento alla nuova tabella.

    This table is deprecated. Please use catalog.default.table instead of hive_metastore.schema.table.
    

    Vedere Aggiungere commenti per indicare che è stata eseguita la migrazione di una tabella Hive.

  11. Modificare i carichi di lavoro per usare le nuove tabelle.

    Se è stato aggiunto un commento alla tabella Hive originale come quella elencata nel passaggio precedente facoltativo, è possibile usare il collegamento Correzione rapida e l'Assistente Databricks per trovare e modificare i carichi di lavoro.

Aggiornare una singola tabella Hive a una tabella esterna del catalogo Unity usando la procedura guidata di aggiornamento

È possibile copiare una singola tabella dal metastore Hive predefinito al metastore del catalogo Unity usando l'aggiornamento guidato in Esplora cataloghi

Per informazioni su quando usare l'aggiornamento guidato, vedere Opzioni di migrazione da Hive a Unity Catalog.

Requisiti

Requisiti per il formato dei dati:

Requisiti di calcolo:

Requisiti di autorizzazione e oggetti catalogo Unity:

  • Credenziali di archiviazione per un'identità gestita di Azure o un'entità servizio che autorizza Unity Catalog ad accedere al percorso della tabella.
  • Posizione esterna che fa riferimento alle credenziali di archiviazione appena create e al percorso dei dati nel tenant cloud.
  • CREATE EXTERNAL TABLE autorizzazione nella posizione esterna delle tabelle da aggiornare.

Processo di aggiornamento

Per aggiornare una tabella esterna:

  1. Fare clic su Icona catalogoCatalogo nella barra laterale per aprire Esplora cataloghi.

  2. Selezionare il database, quindi la tabella da aggiornare.

  3. Fare clic su Aggiorna nell'angolo superiore destro della visualizzazione dettagli tabella.

  4. Selezionare la tabella da aggiornare e fare clic su Avanti.

  5. Selezionare il catalogo di destinazione, lo schema (database) e il proprietario.

    Gli utenti potranno accedere alla tabella appena creata nel contesto dei relativi privilegi nel catalogo e nello schema.

    I proprietari di tabelle dispongono di tutti i privilegi per la tabella, inclusi SELECT e MODIFY. Se non si seleziona un proprietario, la tabella gestita viene creata con l'utente come proprietario. Databricks consiglia in genere di concedere la proprietà della tabella ai gruppi. Per altre informazioni sulla proprietà degli oggetti in Unity Catalog, vedere Gestire la proprietà degli oggetti del catalogo Unity.

  6. Fare clic su Aggiorna nell'angolo superiore destro della visualizzazione dettagli tabella.

  7. Selezionare la tabella da aggiornare e fare clic su Avanti.

    I metadati della tabella vengono ora copiati in Unity Catalog ed è stata creata una nuova tabella. È ora possibile usare la scheda Autorizzazioni per definire il controllo di accesso con granularità fine.

  8. Usare la scheda Autorizzazioni per definire il controllo di accesso con granularità fine.

  9. (Facoltativo) Aggiungere un commento alla tabella Hive che punta gli utenti alla nuova tabella del catalogo Unity.

    Tornare alla tabella originale nel hive.metastore catalogo per aggiungere il commento della tabella.

    Se si usa la sintassi seguente nel commento della tabella, i notebook e le query dell'editor di query SQL che fanno riferimento alla tabella Hive deprecata visualizzeranno il nome deprecato della tabella usando il testo barrato, visualizzare il commento come avviso e fornire un collegamento Correzione rapida a Databricks Assistant, che può aggiornare il codice per fare riferimento alla nuova tabella.

    This table is deprecated. Please use catalog.default.table instead of hive_metastore.schema.table.
    

    Vedere Aggiungere commenti per indicare che è stata eseguita la migrazione di una tabella Hive.

  10. Modificare i carichi di lavoro esistenti per usare la nuova tabella.

    Se è stato aggiunto un commento alla tabella Hive originale come quella elencata nel passaggio precedente facoltativo, è possibile usare il collegamento Correzione rapida e l'Assistente Databricks per trovare e modificare i carichi di lavoro.

    Nota

    Se la tabella precedente non è più necessaria, è possibile eliminarla dal metastore Hive. L'eliminazione di una tabella esterna non modifica i file di dati nel tenant cloud.

Aggiornare una tabella Hive a una tabella esterna del catalogo Unity usando SYNC

È possibile usare il SYNC comando SQL per copiare tabelle esterne nel metastore Hive in tabelle esterne nel catalogo unity. È possibile sincronizzare singole tabelle o interi schemi.

È anche possibile usare SYNC per copiare tabelle gestite Hive archiviate all'esterno dell'archiviazione dell'area di lavoro di Databricks (talvolta denominata radice DBFS) in tabelle esterne in Unity Catalog. Non è possibile usarlo per copiare le tabelle gestite Hive archiviate nell'archiviazione dell'area di lavoro. Per copiare tali tabelle, usare invece CREATE TABLE CLONE .

Il SYNC comando esegue un'operazione di scrittura in ogni tabella di origine che aggiorna per aggiungere proprietà di tabella aggiuntive per la contabilità, incluso un record della tabella esterna del catalogo Unity di destinazione.

SYNC può essere usato anche per aggiornare le tabelle del catalogo Unity esistenti quando vengono modificate le tabelle di origine nel metastore Hive. Questo lo rende uno strumento efficace per la transizione graduale al catalogo Unity.

Per informazioni dettagliate, vedere SYNC. Per informazioni su quando usare l'aggiornamento guidato, vedere Opzioni di migrazione da Hive a Unity Catalog.

Requisiti

Requisiti per il formato dei dati:

Requisiti di calcolo:

Requisiti di autorizzazione e oggetti catalogo Unity:

  • Credenziali di archiviazione per un'identità gestita di Azure o un'entità servizio che autorizza Unity Catalog ad accedere al percorso della posizione delle tabelle.
  • Posizione esterna che fa riferimento alle credenziali di archiviazione appena create e al percorso dei dati nel tenant cloud.
  • CREATE EXTERNAL TABLE autorizzazione nella posizione esterna delle tabelle da aggiornare.

Requisiti di accesso alle tabelle Hive:

  • Se il calcolo usa la modalità di accesso condiviso, è necessario accedere alle tabelle nel metastore Hive, concesso usando il controllo di accesso alle tabelle legacy. Vedere Prima di iniziare.

Processo di aggiornamento

Per aggiornare le tabelle nel metastore Hive alle tabelle esterne del catalogo Unity usando SYNC:

  1. In un notebook o nell'editor di query SQL eseguire una delle operazioni seguenti:

    Sincronizzare una tabella Hive esterna:

    SYNC TABLE <uc-catalog>.<uc-schema>.<new-table> FROM hive_metastore.<source-schema>.<source-table>
    SET OWNER <principal>;
    

    Sincronizzare uno schema Hive esterno e tutte le relative tabelle:

    SYNC SCHEMA <uc-catalog>.<new-schema> FROM hive_metastore.<source-schema>
    SET OWNER <principal>;
    

    Sincronizzare una tabella Hive gestita archiviata all'esterno dell'archiviazione dell'area di lavoro di Databricks:

    SYNC TABLE <uc-catalog>.<uc-schema>.<new-table> AS EXTERNAL FROM hive_metastore.<source-schema>.<source-table>
    SET OWNER <principal>;
    

    Sincronizzare uno schema contenente tabelle Hive gestite archiviate all'esterno dell'archiviazione dell'area di lavoro di Databricks:

    SYNC SCHEMA <uc-catalog>.<new-schema> AS EXTERNAL FROM hive_metastore.<source-schema>
    SET OWNER <principal>;
    
  2. Concedere agli utenti o ai gruppi a livello di account l'accesso alla nuova tabella. Vedere Gestire i privilegi nel catalogo unity.

  3. (Facoltativo) Aggiungere un commento alla tabella Hive originale che punta gli utenti alla nuova tabella del catalogo Unity.

    Tornare alla tabella originale nel hive.metastore catalogo per aggiungere il commento della tabella. Per informazioni su come aggiungere commenti di tabella tramite Esplora cataloghi, vedere Aggiungere commenti markdown agli oggetti dati tramite Esplora cataloghi. Per informazioni su come aggiungere commenti di tabella usando istruzioni SQL in un notebook o nell'editor di query SQL, vedere COMMENT ON.

    Se si usa la sintassi seguente nel commento della tabella, i notebook e le query dell'editor di query SQL che fanno riferimento alla tabella Hive deprecata visualizzeranno il nome deprecato della tabella usando il testo barrato, visualizzare il commento come avviso e fornire un collegamento Correzione rapida a Databricks Assistant, che può aggiornare il codice per fare riferimento alla nuova tabella.

    This table is deprecated. Please use catalog.default.table instead of hive_metastore.schema.table.
    

    Vedere Aggiungere commenti per indicare che è stata eseguita la migrazione di una tabella Hive.

  4. Dopo la migrazione della tabella, gli utenti devono aggiornare le query e i carichi di lavoro esistenti per usare la nuova tabella.

    Se è stato aggiunto un commento alla tabella Hive originale come quella elencata nel passaggio precedente facoltativo, è possibile usare il collegamento Correzione rapida e l'Assistente Databricks per trovare e modificare i carichi di lavoro.

  5. Prima di eliminare la tabella precedente, testare le dipendenze revocando l'accesso e rieseguando query e carichi di lavoro correlati.

    Non eliminare la tabella precedente se si fa ancora affidamento su commenti deprecati per trovare e aggiornare il codice esistente che fa riferimento alla tabella precedente. Analogamente, non eliminare la tabella precedente se la tabella è cambiata dopo la sincronizzazione originale: SYNC può essere usata per aggiornare le tabelle del catalogo Unity esistenti con modifiche dalle tabelle Hive di origine.

Aggiornare una tabella gestita hive a una tabella gestita del catalogo Unity usando CLONE

Usare CREATE TABLE CLONE per aggiornare le tabelle gestite nel metastore Hive alle tabelle gestite nel catalogo unity. È possibile clonare singole tabelle. I cloni profondi copiano i dati della tabella di origine nella destinazione clone oltre ai metadati della tabella esistenti. Usare il clone completo se si intende eliminare la tabella di origine Hive. I cloni superficiali non copiano i file di dati nella destinazione clone, ma consentono l'accesso tramite riferimento ai dati di origine: i metadati della tabella sono equivalenti all'origine. I cloni superficiali sono più economici da creare, ma richiedono che gli utenti che eseguono query sui dati nella destinazione clone abbiano accesso anche ai dati di origine.

Per informazioni su quando usare CLONE, vedere Opzioni di migrazione da Hive a Unity Catalog. Per informazioni sulla scelta del tipo di clone da usare, vedere Clonare una tabella in Azure Databricks.

Requisiti

Requisiti per il formato dei dati:

Requisiti di calcolo:

Requisiti di autorizzazione:

  • Privilegi USE CATALOG e USE SCHEMA per il catalogo e lo schema a cui si aggiunge la tabella, insieme CREATE TABLE allo schema oppure è necessario essere il proprietario del catalogo o dello schema. Vedere Privilegi del catalogo Unity e oggetti a protezione diretta.
  • Se il calcolo usa la modalità di accesso condiviso, è necessario accedere alle tabelle nel metastore Hive, concesso usando il controllo di accesso alle tabelle legacy. Vedere Prima di iniziare.

Processo di aggiornamento

Per aggiornare le tabelle gestite nel metastore Hive alle tabelle gestite nel catalogo unity:

  1. In un notebook o nell'editor di query SQL eseguire una delle operazioni seguenti:

    Clonare in modo completo una tabella gestita nel metastore Hive:

    CREATE OR REPLACE TABLE <uc-catalog>.<uc-schema>.<new-table>
    DEEP CLONE hive_metastore.<source-schema>.<source-table>;
    

    Clonare superficialmente una tabella gestita nel metastore Hive:

    CREATE OR REPLACE TABLE <uc-catalog>.<uc-schema>.<new-table>
    SHALLOW CLONE hive_metastore.<source-schema>.<source-table>;
    

    Per informazioni su parametri aggiuntivi, incluse le proprietà della tabella, vedere CREATE TABLE CLONE.

  2. Concedere agli utenti o ai gruppi a livello di account l'accesso alla nuova tabella. Vedere Gestire i privilegi nel catalogo unity.

  3. (Facoltativo) Aggiungere un commento alla tabella Hive originale che punta gli utenti alla nuova tabella del catalogo Unity.

    Tornare alla tabella originale nel hive.metastore catalogo per aggiungere il commento della tabella. Per informazioni su come aggiungere commenti di tabella tramite Esplora cataloghi, vedere Aggiungere commenti markdown agli oggetti dati tramite Esplora cataloghi. Per informazioni su come aggiungere commenti di tabella usando istruzioni SQL in un notebook o nell'editor di query SQL, vedere COMMENT ON.

    Se si usa la sintassi seguente nel commento della tabella, i notebook e le query dell'editor di query SQL che fanno riferimento alla tabella Hive deprecata visualizzeranno il nome deprecato della tabella usando il testo barrato, visualizzare il commento come avviso e fornire un collegamento Correzione rapida a Databricks Assistant, che può aggiornare il codice per fare riferimento alla nuova tabella.

    This table is deprecated. Please use catalog.default.table instead of hive_metastore.schema.table.
    

    Vedere Aggiungere commenti per indicare che è stata eseguita la migrazione di una tabella Hive.

  4. Dopo la migrazione della tabella, gli utenti devono aggiornare le query e i carichi di lavoro esistenti per usare la nuova tabella.

    Se è stato aggiunto un commento alla tabella Hive originale come quella elencata nel passaggio precedente facoltativo, è possibile usare il collegamento Correzione rapida e l'Assistente Databricks per trovare e modificare i carichi di lavoro.

  5. Prima di eliminare la tabella precedente, testare le dipendenze revocando l'accesso e rieseguando query e carichi di lavoro correlati.

    Non eliminare la tabella precedente se si fa ancora affidamento su commenti deprecati per trovare e aggiornare il codice esistente che fa riferimento alla tabella precedente. Analogamente, non eliminare la tabella precedente se è stato eseguito un clone superficiale. Superficiale clona i dati di riferimento dalla tabella Hive di origine.

Aggiornare una tabella Hive a una tabella gestita del catalogo Unity usando CREATE TABLE AS edizione Standard LECT

Se non è possibile usare o non si preferisce usare CREATE TABLE CLONE per eseguire la migrazione di una tabella nel metastore Hive a una tabella gestita in Unity Catalog, è possibile creare una nuova tabella gestita nel catalogo unity eseguendo una query sulla tabella Hive usando CREATE TABLE AS SELECT. Per informazioni sulle differenze tra CREATE TABLE CLONE e , vedere Opzioni di migrazione da Hive CREATE TABLE AS SELECTa Unity Catalog.

Requisiti

Requisiti di calcolo:

Requisiti di autorizzazione:

  • Privilegi USE CATALOG e USE SCHEMA per il catalogo e lo schema a cui si aggiunge la tabella, insieme CREATE TABLE allo schema oppure è necessario essere il proprietario del catalogo o dello schema. Vedere Privilegi del catalogo Unity e oggetti a protezione diretta.
  • Se il calcolo usa la modalità di accesso condiviso, è necessario accedere alle tabelle nel metastore Hive, concesso usando il controllo di accesso alle tabelle legacy. Vedere Prima di iniziare.

Processo di aggiornamento

Per aggiornare una tabella nel metastore Hive a una tabella gestita nel catalogo unity usando CREATE TABLE AS SELECT:

  1. Creare una nuova tabella del catalogo Unity eseguendo una query sulla tabella esistente. Sostituire i valori segnaposto:

    • <uc-catalog>: catalogo di Unity Catalog per la nuova tabella.
    • <uc-schema>: schema del catalogo Unity per la nuova tabella.
    • <new-table>: nome per la tabella del catalogo Unity.
    • <source-schema>: schema per la tabella Hive, ad esempio default.
    • <source-table>: nome della tabella Hive.

    SQL

    CREATE TABLE <uc-catalog>.<new-schema>.<new-table>
    AS SELECT * FROM hive_metastore.<source-schema>.<source-table>;
    

    Python

    df = spark.table("hive_metastore.<source-schema>.<source-table>")
    
    df.write.saveAsTable(
      name = "<uc-catalog>.<uc-schema>.<new-table>"
    )
    

    R

    %r
    library(SparkR)
    
    df = tableToDF("hive_metastore.<source-schema>.<source-table>")
    
    saveAsTable(
      df = df,
      tableName = "<uc-catalog>.<uc-schema>.<new-table>"
    )
    

    Scala

    val df = spark.table("hive_metastore.<source-schema>.<source-table>")
    
    df.write.saveAsTable(
      tableName = "<uc-catalog>.<uc-schema>.<new-table>"
    )
    

    Se si desidera eseguire la migrazione solo di alcune colonne o righe, modificare l'istruzione SELECT .

    Nota

    I comandi presentati qui creano una tabella gestita in cui i dati vengono copiati in un percorso di archiviazione gestito dedicato. Se invece si vuole creare una tabella esterna, in cui la tabella viene registrata in Unity Catalog senza spostare i dati nell'archiviazione cloud, vedere Aggiornare una singola tabella Hive a una tabella esterna di Unity Catalog usando l'aggiornamento guidato. Vedere anche Specificare un percorso di archiviazione gestito nel catalogo unity.

  2. Concedere agli utenti o ai gruppi a livello di account l'accesso alla nuova tabella. Vedere Gestire i privilegi nel catalogo unity.

  3. (Facoltativo) Aggiungere un commento alla tabella Hive originale che punta gli utenti alla nuova tabella del catalogo Unity.

    Tornare alla tabella originale nel hive.metastore catalogo per aggiungere il commento della tabella. Per informazioni su come aggiungere commenti di tabella tramite Esplora cataloghi, vedere Aggiungere commenti markdown agli oggetti dati tramite Esplora cataloghi. Per informazioni su come aggiungere commenti di tabella usando istruzioni SQL in un notebook o nell'editor di query SQL, vedere COMMENT ON.

    Se si usa la sintassi seguente nel commento della tabella, i notebook e le query dell'editor di query SQL che fanno riferimento alla tabella Hive deprecata visualizzeranno il nome deprecato della tabella usando il testo barrato, visualizzare il commento come avviso e fornire un collegamento Correzione rapida a Databricks Assistant, che può aggiornare il codice per fare riferimento alla nuova tabella.

    This table is deprecated. Please use catalog.default.table instead of hive_metastore.schema.table.
    

    Vedere Aggiungere commenti per indicare che è stata eseguita la migrazione di una tabella Hive.

  4. Dopo la migrazione della tabella, gli utenti devono aggiornare le query e i carichi di lavoro esistenti per usare la nuova tabella.

    Se è stato aggiunto un commento alla tabella Hive originale come quella elencata nel passaggio precedente facoltativo, è possibile usare il collegamento Correzione rapida e l'Assistente Databricks per trovare e modificare i carichi di lavoro.

  5. Prima di eliminare la tabella precedente, testare le dipendenze revocando l'accesso e rieseguando query e carichi di lavoro correlati.

    Non eliminare la tabella precedente se si fa ancora affidamento su commenti deprecati per trovare e aggiornare il codice esistente che fa riferimento alla tabella precedente.

Aggiornare una visualizzazione a Unity Catalog

Dopo aver aggiornato tutte le tabelle a cui si fa riferimento a una vista allo stesso metastore del catalogo Unity, è possibile creare una nuova vista che fa riferimento alle nuove tabelle.

Aggiungere commenti per indicare che è stata eseguita la migrazione di una tabella Hive

Quando si aggiunge un commento alla tabella Hive deprecata che punta gli utenti alla nuova tabella di Catalogo Unity, ai notebook e alle query dell'editor di query SQL che fanno riferimento alla tabella Hive deprecata visualizzerà il nome deprecato della tabella usando il testo barrato, visualizzare il commento come avviso e fornire un collegamento correzione rapida a Databricks Assistant, che può aggiornare il codice per fare riferimento alla nuova tabella.

Avviso di deprecazione della tabella Hive

Il commento deve usare il formato seguente:

This table is deprecated. Please use catalog.default.table instead of hive_metastore.schema.table.

Per informazioni su come aggiungere commenti di tabella tramite Esplora cataloghi, vedere Aggiungere commenti markdown agli oggetti dati tramite Esplora cataloghi. Per informazioni su come aggiungere commenti di tabella usando istruzioni SQL in un notebook o nell'editor di query SQL, vedere COMMENT ON.

Usare Databricks Assistant per aggiornare un riferimento alla tabella deprecato

Se viene visualizzato il testo barrato su un nome di tabella in una cella o un'istruzione del notebook nell'editor di query SQL, passare il puntatore del mouse sul nome della tabella per visualizzare un avviso. Se l'avviso di avviso descrive la tabella come deprecata e visualizza il nuovo nome della tabella, fare clic su Correzione rapida e quindi su Correggi deprecazione. Si apre Databricks Assistant, che consente di sostituire il nome della tabella deprecato con il nuovo nome della tabella del catalogo Unity. Seguire le istruzioni per completare l'attività.

Video che mostra l'aggiornamento della tabella Hive con Databricks Assistant

Vedere anche Usare l'assistente Databricks.