Hive-tabellen en -weergaven upgraden naar Unity Catalog
In dit artikel wordt beschreven hoe u tabellen en weergaven bijwerkt die zijn geregistreerd in uw bestaande Hive-metastore in uw bestaande Hive-metastore naar Unity Catalog. U kunt een Hive-tabel upgraden naar een beheerde tabel of externe tabel in Unity Catalog.
Beheerde tabellen zijn de voorkeurswijze om tabellen te maken in Unity Catalog. Unity Catalog beheert hun levenscyclus, bestandsindeling en opslag volledig. Unity Catalog optimaliseert ook hun prestaties automatisch. Beheerde tabellen maken altijd gebruik van de Delta-tabelindeling .
Beheerde tabellen bevinden zich op een beheerde opslaglocatie die u reserveert voor Unity Catalog. Vanwege deze opslagvereiste moet u CLONE of CREATE TABLE AS SELECT (CTAS) gebruiken als u bestaande Hive-tabellen wilt kopiëren naar Unity Catalog als beheerde tabellen.
Externe tabellen zijn tabellen waarvan de levenscyclus van gegevens, de indeling van bestanden en de opslaglocatie niet worden beheerd door Unity Catalog. Er worden meerdere gegevensindelingen ondersteund voor externe tabellen.
Normaal gesproken gebruikt u alleen externe tabellen wanneer u ook directe toegang tot gegevens nodig hebt met behulp van niet-Databricks-rekenkracht (dus niet met Databricks-clusters of Databricks SQL-warehouses). Externe tabellen zijn ook handig in migratiescenario's, omdat u bestaande gegevens snel kunt registreren in Unity Catalog zonder dat u die gegevens hoeft te kopiëren. Dit komt doordat gegevens in externe tabellen zich niet hoeven te bevinden in gereserveerde beheerde opslag.
Zie Wat zijn tabellen en weergaven voor meer informatie over beheerde en externe tabellen in Unity Catalog.
Migratieopties voor Hive naar Unity Catalog
Wanneer u klaar bent om Hive-tabellen te migreren naar Unity Catalog, hebt u verschillende opties, afhankelijk van uw use-case:
Hulpprogramma voor migratie | Beschrijving | Vereisten voor Hive-tabellen | Unity Catalog-tabel gemaakt | Waarom moet ik het gebruiken? |
---|---|---|---|---|
UCX | Een uitgebreide set opdrachtregelprogramma's en andere hulpprogramma's waarmee de gereedheid van uw werkruimte voor Unity Catalog-migratie wordt beoordeeld en werkstromen worden uitgevoerd waarmee identiteiten, machtigingen, opslaglocaties en tabellen worden gemigreerd naar Unity Catalog. UCX is beschikbaar op GitHub op databrickslabs/ucx. | Beheerde of externe Hive-tabellen | Beheerd of extern | U wilt een uitgebreid hulpprogramma voor het plannen van een werkruimte-upgrade dat verder gaat dan het upgraden van Hive-tabellen naar Unity Catalog. U wilt werkruimten upgraden met grote hoeveelheden gegevens in de Hive-metastore. U bent vertrouwd met het uitvoeren van scripts. Als u een bulkupgrade van Hive-tabellen wilt uitvoeren naar beheerde tabellen in Unity Catalog, is dit uw enige optie. UCX, zoals alle Databricks Labs-projecten, is een openbare GitHub-opslagplaats en wordt niet rechtstreeks ondersteund door Databricks. |
Upgradewizard voor Unity Catalog | Een Catalogusverkenner-functie waarmee u volledige schema's (databases) en meerdere beheerde en externe tabellen uit uw Hive-metastore bulksgewijs kunt kopiëren naar de Unity Catalog-metastore als externe tabellen. De upgradewizard voert de SYNC opdracht uit op de tabellen die u selecteert, waardoor de oorspronkelijke Hive-tabellen intact blijven. U hebt de mogelijkheid om regelmatige upgrades te plannen om wijzigingen in de Hive-brontabellen op te halen. |
Beheerde of externe Hive-tabellen | Alleen extern | U wilt uw Hive-tabellen snel upgraden naar externe tabellen in Unity Catalog en u geeft de voorkeur aan een visuele interface. De mogelijkheid om regelmatige synchronisaties te plannen wanneer de Hive-brontabel wordt gewijzigd, is het een handig hulpprogramma voor het beheren van een 'hybride' Hive- en Unity Catalog-werkruimte tijdens de overgang naar Unity Catalog. |
SQL-opdracht SYNC | SYNC hiermee kunt u externe tabellen en beheerde tabellen kopiëren (als de beheerde tabellen worden opgeslagen buiten de Databricks-werkruimteopslag, ook wel DBFS-hoofdmap genoemd) in uw Hive-metastore naar externe tabellen in Unity Catalog. U kunt afzonderlijke tabellen of volledige schema's synchroniseren.SYNC is ontworpen om volgens een schema te worden uitgevoerd om nieuwe wijzigingen in de Hive-metastore op te halen en deze te synchroniseren met Unity Catalog. |
Beheerde of externe Hive-tabellen | Alleen extern | U wilt uw Hive-tabellen snel upgraden naar externe tabellen in Unity Catalog en u wilt liever SQL-opdrachten gebruiken in plaats van een visuele interface. Het plannen van regelmatige SYNC uitvoeringen om bestaande Unity Catalog-tabellen bij te werken wanneer de wijzigingen in de Hive-brontabel een handig hulpmiddel vormen voor het beheren van een 'hybride' Hive- en Unity Catalog-werkruimte tijdens de overgang naar Unity Catalog.Omdat u geen SYNC beheerde tabellen kunt upgraden die zich in de Databricks-werkruimteopslag bevinden, gebruikt u CREATE TABLE CLONE voor deze tabellen. |
SQL-opdracht CREATE TABLE CLONE | CREATE TABLE CLONE hiermee kunt u beheerde tabellen in uw Hive-metastore upgraden naar beheerde tabellen in Unity Catalog. U kunt afzonderlijke tabellen klonen.Diepe klonen kopiëren brontabelgegevens en metagegevens naar het kloondoel. |
Beheerde Hive-tabellen die de Delta-indeling hebben. | Alleen beheerd | U wilt beheerde Hive-tabellen migreren naar beheerde Tabellen in Unity Catalog om optimaal te profiteren van gegevensbeheer van Unity Catalog en uw Hive-tabellen voldoen aan de criteria die worden vermeld in de cel Hive-tabelvereisten. Als uw Hive-tabellen niet voldoen aan de 'Hive-tabelvereisten', kunt u de opdracht CREATE TABLE AS SELECT SQL gebruiken om een Hive-tabel bij te werken naar een beheerde tabel in Unity Catalog. Het is echter CLONE bijna altijd de voorkeur. Klonen heeft een eenvoudigere syntaxis dan CREATE TABLE AS SELECT : u hoeft geen partitionering, notatie, invarianten, nullability, stream en COPY INTO andere metagegevens op te geven, omdat deze zijn gekloond uit de brontabel. |
In dit artikel wordt beschreven hoe u alleen het UCX-gestuurde upgradeproces uitvoert. Databricks raadt UCX aan voor de meeste upgradescenario's voor werkruimten. Voor eenvoudigere gebruiksvoorbeelden kunt u echter de voorkeur geven aan een of meer van de hulpprogramma's die hier worden beschreven.
Voordat u begint
In deze sectie worden enkele van de gevolgen van de migratie beschreven waarvoor u moet worden voorbereid, samen met machtigingen en rekenvereisten.
Inzicht in de impact
Houd er rekening mee dat wanneer u uw workloads wijzigt om de nieuwe Unity Catalog-tabellen te gebruiken, u mogelijk een aantal gedragingen moet wijzigen:
- Unity Catalog beheert partities anders dan Hive. Hive-opdrachten die rechtstreeks partities bewerken, worden niet ondersteund in tabellen die worden beheerd door Unity Catalog.
- Tabelgeschiedenis wordt niet gemigreerd wanneer u deze uitvoert
CREATE TABLE CLONE
. Alle tabellen in de Hive-metastore die u naar Unity Catalog kloont, worden behandeld als nieuwe tabellen. U kunt geen Delta Lake-tijdreizen of andere bewerkingen uitvoeren die afhankelijk zijn van de geschiedenis van de premigratie.
Zie Werken met Unity Catalog en de verouderde Hive-metastore voor meer informatie.
Vereisten
Als u migraties wilt uitvoeren, moet u het volgende hebben:
Een werkruimte met een Unity Catalog-metastore en ten minste één Unity Catalog-catalogus. Zie Unity Catalog instellen en beheren.
Bevoegdheden voor de Unity Catalog-catalogi waarnaar u tabellen migreert. Deze bevoegdheidsvereisten worden opgesomd aan het begin van elke procedure die in dit artikel wordt behandeld.
Voor migratie naar externe tabellen van Unity Catalog: opslagreferenties en externe locaties die zijn gedefinieerd in Unity Catalog en de
CREATE EXTERNAL TABLE
bevoegdheid op de externe locatie.Toegang tot Azure Databricks-berekeningen die voldoen aan beide van de volgende vereisten:
- Ondersteunt Unity Catalog (SQL-warehouses of rekenresources die gebruikmaken van de modus voor één gebruiker of gedeelde toegang).
- Hiermee hebt u toegang tot de tabellen in de Hive-metastore.
Omdat rekenresources die gebruikmaken van de modus gedeelde toegang standaard zijn ingeschakeld voor verouderd toegangsbeheer voor tabellen, betekent dit dat als u die toegangsmodus gebruikt, u toegangsbeheerbevoegdheden voor tabellen moet hebben in de Hive-metastore waaruit u migreert. U kunt uzelf toegang verlenen met behulp van de volgende SQL-opdracht:
GRANT ALL PRIVILEGES ON catalog hive_metastore TO `<user>`
U kunt ook een rekenresource gebruiken in de modus voor toegang tot één gebruiker.
Zie Hive-metastore-bevoegdheden en beveiligbare objecten (verouderd) voor meer informatie over het beheren van bevoegdheden voor objecten in de Hive-metastore. Zie Bevoegdheden beheren in Unity Catalog voor meer informatie over het beheren van bevoegdheden voor objecten in de Unity Catalog-metastore.
Tabellen identificeren die worden beheerd door de Hive-metastore
Als u wilt bepalen of een tabel momenteel is geregistreerd in Unity Catalog, controleert u de catalogusnaam. Tabellen in de catalogus hive_metastore
worden geregistreerd in de hive-metastore in de werkruimte. Alle andere vermelde catalogi worden beheerd door Unity Catalog.
De tabellen in de hive_metastore
catalogus weergeven met Behulp van Catalog Explorer:
- Klik op Catalogus in de zijbalk.
- Blader in het catalogusvenster naar de
hive_metastore
catalogus en vouw de schemaknooppunten uit.
U kunt ook zoeken naar een specifieke tabel met behulp van het filterveld in het deelvenster Catalogus.
Een schema of meerdere tabellen van de Hive-metastore upgraden naar externe tabellen in Unity Catalog met behulp van de upgradewizard
U kunt volledige schema's (databases) en meerdere externe of beheerde tabellen uit uw Standaard Hive-metastore van Azure Databricks kopiëren naar de Unity Catalog-metastore met behulp van de upgradewizard van Catalog Explorer . De bijgewerkte tabellen zijn externe tabellen in Unity Catalog.
Zie De migratieopties van Hive naar Unity Catalog voor hulp bij het bepalen wanneer u de upgradewizard wilt gebruiken.
Vereisten
Vereisten voor gegevensindeling:
Rekenvereisten:
- Een rekenresource die ondersteuning biedt voor Unity Catalog. Zie voordat u begint.
Object- en machtigingsvereisten voor Unity Catalog:
- Een opslagreferentie voor een door Azure beheerde identiteit of service-principal waarmee Unity Catalog toegang krijgt tot het locatiepad van de tabellen.
- Een externe locatie die verwijst naar de opslagreferentie die u zojuist hebt gemaakt en het pad naar de gegevens in uw cloudtenant.
- De machtiging
CREATE EXTERNAL TABLE
op de externe locaties van de tabellen die moeten worden bijgewerkt.
Toegangsvereisten voor Hive-tabellen:
- Als uw rekenproces gebruikmaakt van de modus voor gedeelde toegang, hebt u toegang nodig tot de tabellen in de Hive-metastore, verleend met behulp van verouderd toegangsbeheer voor tabellen. Zie voordat u begint.
Upgradeproces
Klik op Catalogus in de zijbalk om Catalogusverkenner te openen.
Selecteer
hive_metastore
als uw catalogus en selecteer het schema (database) dat u wilt upgraden.Klik op Upgrade in de rechterbovenhoek van de detailweergave van het schema.
Selecteer alle tabellen die u wilt upgraden en klik op Volgende.
Alleen externe tabellen in indelingen die door Unity Catalog worden ondersteund, kunnen worden bijgewerkt met behulp van de upgradewizard. Zie Werken met externe tabellen.
Stel de doelcatalogus, het schema (database) en de eigenaar voor elke tabel in.
Gebruikers hebben toegang tot de zojuist gemaakte tabel in de context van hun bevoegdheden voor de catalogus en het schema.
Eigenaren van tabellen hebben alle bevoegdheden voor de tabel, inclusief
SELECT
enMODIFY
. Als u geen eigenaar selecteert, worden de beheerde tabellen met u als eigenaar gemaakt. Databricks raadt over het algemeen aan dat u tabeleigendom verleent aan groepen. Zie Het eigendom van Unity Catalog-objecten beheren voor meer informatie over het eigendom van objecten in Unity Catalog.Als u dezelfde catalogus en hetzelfde schema aan meerdere tabellen wilt toewijzen, selecteert u de tabellen en klikt u op de knop Bestemming instellen.
Als u dezelfde eigenaar aan meerdere tabellen wilt toewijzen, selecteert u de tabellen en klikt u op de knop Eigenaar instellen.
Controleer de tabelconfiguraties. Als u deze wilt wijzigen, klikt u op de knop Vorige .
Klik op Query maken voor upgrade.
Er wordt een queryeditor weergegeven met gegenereerde SQL-instructies.
Voer de query uit.
Wanneer de query is uitgevoerd, zijn de metagegevens van elke tabel gekopieerd uit de Hive-metastore naar Unity Catalog. Deze tabellen worden gemarkeerd als bijgewerkt in de upgradewizard.
Definieer gedetailleerd toegangsbeheer met behulp van het tabblad Machtigingen van elke nieuwe tabel.
(Optioneel) Voeg opmerkingen toe aan elke bijgewerkte Hive-tabel die gebruikers naar de nieuwe Unity Catalog-tabel wijst.
Ga terug naar de oorspronkelijke tabel in de
hive.metastore
catalogus om de tabelcommentaar toe te voegen.Als u de volgende syntaxis gebruikt in de tabelopmerking, notebooks en SQL-queryeditorquery's die verwijzen naar de afgeschafte Hive-tabel, worden de afgeschafte tabelnaam weergegeven met behulp van doorhalende tekst, de opmerking als waarschuwing weergegeven en geeft u een quick fix-koppeling naar Databricks Assistant op, waarmee uw code kan worden bijgewerkt om naar de nieuwe tabel te verwijzen.
This table is deprecated. Please use catalog.default.table instead of hive_metastore.schema.table.
Zie Opmerkingen toevoegen om aan te geven dat een Hive-tabel is gemigreerd.
Pas uw workloads aan om de nieuwe tabellen te gebruiken.
Als u een opmerking hebt toegevoegd aan de oorspronkelijke Hive-tabel, zoals in de optionele vorige stap, kunt u de koppeling Snelle oplossing en Databricks Assistant gebruiken om u te helpen werkbelastingen te vinden en te wijzigen.
Een enkele Hive-tabel upgraden naar een externe tabel van Unity Catalog met behulp van de upgradewizard
U kunt één tabel uit uw standaard Hive-metastore kopiëren naar de Unity Catalog-metastore met behulp van de upgradewizard in Catalog Explorer
Zie De migratieopties van Hive naar Unity Catalog voor hulp bij het bepalen wanneer u de upgradewizard wilt gebruiken.
Vereisten
Vereisten voor gegevensindeling:
Rekenvereisten:
- Een rekenresource die ondersteuning biedt voor Unity Catalog. Zie voordat u begint.
Object- en machtigingsvereisten voor Unity Catalog:
- Een opslagreferentie voor een door Azure beheerde identiteit of service-principal waarmee Unity Catalog toegang krijgt tot het locatiepad van de tabel.
- Een externe locatie die verwijst naar de opslagreferentie die u zojuist hebt gemaakt en het pad naar de gegevens in uw cloudtenant.
- De machtiging
CREATE EXTERNAL TABLE
op de externe locaties van de tabellen die moeten worden bijgewerkt.
Upgradeproces
Een externe tabel bijwerken:
Klik op Catalogus in de zijbalk om Catalog Explorer te openen.
Selecteer de database en vervolgens de tabel die u wilt upgraden.
Klik op Upgrade in de rechterbovenhoek van de tabeldetailweergave.
Selecteer de tabel die u wilt bijwerken en klik op Volgende.
Selecteer uw doelcatalogus, schema (database) en eigenaar.
Gebruikers hebben toegang tot de zojuist gemaakte tabel in de context van hun bevoegdheden voor de catalogus en het schema.
Eigenaren van tabellen hebben alle bevoegdheden voor de tabel, inclusief
SELECT
enMODIFY
. Als u geen eigenaar selecteert, wordt de beheerde tabel met u als eigenaar gemaakt. Databricks raadt over het algemeen aan dat u tabeleigendom verleent aan groepen. Zie Het eigendom van Unity Catalog-objecten beheren voor meer informatie over het eigendom van objecten in Unity Catalog.Klik op Upgrade in de rechterbovenhoek van de tabeldetailweergave.
Selecteer de tabel die u wilt bijwerken en klik op Volgende.
De metagegevens van de tabel worden nu gekopieerd naar Unity Catalog en er is een nieuwe tabel gemaakt. U kunt nu het tabblad Machtigingen gebruiken om gedetailleerd toegangsbeheer te definiëren.
Gebruik het tabblad Machtigingen om gedetailleerd toegangsbeheer te definiëren.
(Optioneel) Voeg een opmerking toe aan de Hive-tabel die gebruikers naar de nieuwe Unity Catalog-tabel wijst.
Ga terug naar de oorspronkelijke tabel in de
hive.metastore
catalogus om de tabelcommentaar toe te voegen.Als u de volgende syntaxis gebruikt in de tabelopmerking, notebooks en SQL-queryeditorquery's die verwijzen naar de afgeschafte Hive-tabel, worden de afgeschafte tabelnaam weergegeven met behulp van doorhalende tekst, de opmerking als waarschuwing weergegeven en geeft u een quick fix-koppeling naar Databricks Assistant op, waarmee uw code kan worden bijgewerkt om naar de nieuwe tabel te verwijzen.
This table is deprecated. Please use catalog.default.table instead of hive_metastore.schema.table.
Zie Opmerkingen toevoegen om aan te geven dat een Hive-tabel is gemigreerd.
Wijzig bestaande workloads om de nieuwe tabel te gebruiken.
Als u een opmerking hebt toegevoegd aan de oorspronkelijke Hive-tabel, zoals in de optionele vorige stap, kunt u de koppeling Snelle oplossing en Databricks Assistant gebruiken om u te helpen werkbelastingen te vinden en te wijzigen.
Notitie
Als u de oude tabel niet meer nodig hebt, kunt u deze verwijderen uit de Hive-metastore. Als u een externe tabel neerslaat, worden de gegevensbestanden in uw cloudtenant niet gewijzigd.
Een Hive-tabel upgraden naar een externe tabel van Unity Catalog met behulp van SYNC
U kunt de SYNC
SQL-opdracht gebruiken om externe tabellen in uw Hive-metastore te kopiëren naar externe tabellen in Unity Catalog. U kunt afzonderlijke tabellen of volledige schema's synchroniseren.
U kunt ook SYNC
beheerde Hive-tabellen kopiëren die buiten de Databricks-werkruimteopslag (ook wel DBFS-hoofdmap genoemd) zijn opgeslagen naar externe tabellen in Unity Catalog. U kunt deze niet gebruiken om beheerde Hive-tabellen te kopiëren die zijn opgeslagen in werkruimteopslag. Als u deze tabellen wilt kopiëren, gebruikt u IN plaats daarvan CREATE TABLE CLONE .
Met de SYNC
opdracht wordt een schrijfbewerking uitgevoerd naar elke brontabel die wordt bijgewerkt om extra tabeleigenschappen toe te voegen voor boekhouding, inclusief een record van de externe tabel van de Doel Unity Catalog.
SYNC
kan ook worden gebruikt om bestaande Unity Catalog-tabellen bij te werken wanneer de brontabellen in de Hive-metastore worden gewijzigd. Dit maakt het een goed hulpprogramma voor de overgang naar Unity Catalog geleidelijk.
Zie SYNC voor meer informatie. Zie De migratieopties van Hive naar Unity Catalog voor hulp bij het bepalen wanneer u de upgradewizard wilt gebruiken.
Vereisten
Vereisten voor gegevensindeling:
Rekenvereisten:
- Een rekenresource die ondersteuning biedt voor Unity Catalog. Zie voordat u begint.
Object- en machtigingsvereisten voor Unity Catalog:
- Een opslagreferentie voor een door Azure beheerde identiteit of service-principal waarmee Unity Catalog toegang krijgt tot het locatiepad van de tabellen.
- Een externe locatie die verwijst naar de opslagreferentie die u zojuist hebt gemaakt en het pad naar de gegevens in uw cloudtenant.
- De machtiging
CREATE EXTERNAL TABLE
op de externe locaties van de tabellen die moeten worden bijgewerkt.
Toegangsvereisten voor Hive-tabellen:
- Als uw rekenproces gebruikmaakt van de modus voor gedeelde toegang, hebt u toegang nodig tot de tabellen in de Hive-metastore, verleend met behulp van verouderd toegangsbeheer voor tabellen. Zie voordat u begint.
Upgradeproces
Als u tabellen in uw Hive-metastore wilt upgraden naar externe tabellen van Unity Catalog met behulp van SYNC
:
Voer in een notebook of de SQL-queryeditor een van de volgende handelingen uit:
Een externe Hive-tabel synchroniseren:
SYNC TABLE <uc-catalog>.<uc-schema>.<new-table> FROM hive_metastore.<source-schema>.<source-table> SET OWNER <principal>;
Synchroniseer een extern Hive-schema en alle bijbehorende tabellen:
SYNC SCHEMA <uc-catalog>.<new-schema> FROM hive_metastore.<source-schema> SET OWNER <principal>;
Synchroniseer een beheerde Hive-tabel die buiten de Databricks-werkruimteopslag is opgeslagen:
SYNC TABLE <uc-catalog>.<uc-schema>.<new-table> AS EXTERNAL FROM hive_metastore.<source-schema>.<source-table> SET OWNER <principal>;
Synchroniseer een schema dat beheerde Hive-tabellen bevat die buiten de Databricks-werkruimteopslag worden opgeslagen:
SYNC SCHEMA <uc-catalog>.<new-schema> AS EXTERNAL FROM hive_metastore.<source-schema> SET OWNER <principal>;
Gebruikers of groepen op accountniveau toegang verlenen tot de nieuwe tabel. Zie Bevoegdheden beheren in Unity Catalog.
(Optioneel) Voeg een opmerking toe aan de oorspronkelijke Hive-tabel die gebruikers naar de nieuwe Unity Catalog-tabel wijst.
Ga terug naar de oorspronkelijke tabel in de
hive.metastore
catalogus om de tabelcommentaar toe te voegen. Zie Opmerkingen toevoegen aan gegevens en AI-assets voor meer informatie over het toevoegen van tabelopmerkingen met Behulp van Catalog Explorer. Zie COMMENT ON voor meer informatie over het toevoegen van tabelopmerkingen met behulp van SQL-instructies in een notebook of de SQL-queryeditor.Als u de volgende syntaxis gebruikt in de tabelopmerking, notebooks en SQL-queryeditorquery's die verwijzen naar de afgeschafte Hive-tabel, worden de afgeschafte tabelnaam weergegeven met behulp van doorhalende tekst, de opmerking als waarschuwing weergegeven en geeft u een quick fix-koppeling naar Databricks Assistant op, waarmee uw code kan worden bijgewerkt om naar de nieuwe tabel te verwijzen.
This table is deprecated. Please use catalog.default.table instead of hive_metastore.schema.table.
Zie Opmerkingen toevoegen om aan te geven dat een Hive-tabel is gemigreerd.
Nadat de tabel is gemigreerd, moeten gebruikers hun bestaande query's en workloads bijwerken om de nieuwe tabel te gebruiken.
Als u een opmerking hebt toegevoegd aan de oorspronkelijke Hive-tabel, zoals in de optionele vorige stap, kunt u de koppeling Snelle oplossing en Databricks Assistant gebruiken om u te helpen werkbelastingen te vinden en te wijzigen.
Voordat u de oude tabel verwijdert, test u op afhankelijkheden door de toegang tot deze tabel in te trekken en gerelateerde query's en workloads opnieuw uit te voeren.
Verwijder de oude tabel niet als u nog steeds vertrouwt op afschaffingsopmerkingen om bestaande code te vinden en bij te werken die verwijst naar de oude tabel. Verwijder de oude tabel niet als deze tabel is gewijzigd sinds de oorspronkelijke synchronisatie:
SYNC
kan worden gebruikt om bestaande Unity Catalog-tabellen bij te werken met wijzigingen uit hive-brontabellen.
Een beheerde Hive-tabel upgraden naar een beheerde Unity Catalog-tabel met behulp van CLONE
Gebruik CREATE TABLE CLONE
dit om beheerde Delta-tabellen in uw Hive-metastore te upgraden naar beheerde tabellen in Unity Catalog. U kunt afzonderlijke tabellen klonen. U moet diepe klonen gebruiken wanneer u tabellen kloont van de verouderde Hive-metastore naar Unity Catalog.
Zie Migratieopties voor Hive naar Unity Catalog voor hulp bij het bepalen wanneer u wilt gebruiken.CLONE
Zie Een tabel klonen in Azure Databricks voor meer informatie.CLONE
Vereisten
Vereisten voor gegevensindeling:
- Beheerde Hive-tabellen in Delta-indeling.
Rekenvereisten:
- Een rekenresource die ondersteuning biedt voor Unity Catalog. Zie voordat u begint.
Machtigingsvereisten:
- De
USE CATALOG
enUSE SCHEMA
bevoegdheden voor de catalogus en het schema waaraan u de tabel toevoegt, samen metCREATE TABLE
het schema, of u moet de eigenaar van de catalogus of het schema zijn. Zie Unity Catalog-bevoegdheden en beveiligbare objecten. - Als uw rekenproces gebruikmaakt van de modus voor gedeelde toegang, hebt u toegang nodig tot de tabellen in de Hive-metastore, verleend met behulp van verouderd toegangsbeheer voor tabellen. Zie voordat u begint.
Upgradeproces
Beheerde tabellen in uw Hive-metastore upgraden naar beheerde tabellen in Unity Catalog:
Voer in een notebook of de SQL-queryeditor een van de volgende handelingen uit:
Kloon een beheerde tabel in de Hive-metastore:
CREATE OR REPLACE TABLE <uc-catalog>.<uc-schema>.<new-table> DEEP CLONE hive_metastore.<source-schema>.<source-table>;
Zie CREATE TABLE CLONE voor meer informatie over aanvullende parameters, waaronder tabeleigenschappen.
Gebruikers of groepen op accountniveau toegang verlenen tot de nieuwe tabel. Zie Bevoegdheden beheren in Unity Catalog.
(Optioneel) Voeg een opmerking toe aan de oorspronkelijke Hive-tabel die gebruikers naar de nieuwe Unity Catalog-tabel wijst.
Ga terug naar de oorspronkelijke tabel in de
hive.metastore
catalogus om de tabelcommentaar toe te voegen. Zie Opmerkingen toevoegen aan gegevens en AI-assets voor meer informatie over het toevoegen van tabelopmerkingen met Behulp van Catalog Explorer. Zie COMMENT ON voor meer informatie over het toevoegen van tabelopmerkingen met behulp van SQL-instructies in een notebook of de SQL-queryeditor.Als u de volgende syntaxis gebruikt in de tabelopmerking, notebooks en SQL-queryeditorquery's die verwijzen naar de afgeschafte Hive-tabel, worden de afgeschafte tabelnaam weergegeven met behulp van doorhalende tekst, de opmerking als waarschuwing weergegeven en geeft u een quick fix-koppeling naar Databricks Assistant op, waarmee uw code kan worden bijgewerkt om naar de nieuwe tabel te verwijzen.
This table is deprecated. Please use catalog.default.table instead of hive_metastore.schema.table.
Zie Opmerkingen toevoegen om aan te geven dat een Hive-tabel is gemigreerd.
Nadat de tabel is gemigreerd, moeten gebruikers hun bestaande query's en workloads bijwerken om de nieuwe tabel te gebruiken.
Als u een opmerking hebt toegevoegd aan de oorspronkelijke Hive-tabel, zoals in de optionele vorige stap, kunt u de koppeling Snelle oplossing en Databricks Assistant gebruiken om u te helpen werkbelastingen te vinden en te wijzigen.
Voordat u de oude tabel verwijdert, test u op afhankelijkheden door de toegang tot deze tabel in te trekken en gerelateerde query's en workloads opnieuw uit te voeren.
Verwijder de oude tabel niet als u nog steeds vertrouwt op afschaffingsopmerkingen om bestaande code te vinden en bij te werken die verwijst naar de oude tabel. Laat de oude tabel ook niet vallen als u een ondiepe kloon hebt uitgevoerd. Ondiepe kloongegevens uit de Hive-brontabel.
Een Hive-tabel upgraden naar een beheerde tabel in Unity Catalog met CREATE TABLE AS SELECT
Als u een tabel in uw Hive-metastore niet kunt migreren naar CREATE TABLE CLONE
een beheerde tabel in Unity Catalog, kunt u een nieuwe beheerde tabel maken in Unity Catalog door een query uit te voeren op de Hive-tabel met behulp van CREATE TABLE AS SELECT
. Zie De migratieopties van Hive naar Unity Catalog voor informatie over de verschillen tussen CREATE TABLE CLONE
enCREATE TABLE AS SELECT
.
Vereisten
Rekenvereisten:
- Een rekenresource die ondersteuning biedt voor Unity Catalog. Zie voordat u begint.
Machtigingsvereisten:
- De
USE CATALOG
enUSE SCHEMA
bevoegdheden voor de catalogus en het schema waaraan u de tabel toevoegt, samen metCREATE TABLE
het schema, of u moet de eigenaar van de catalogus of het schema zijn. Zie Unity Catalog-bevoegdheden en beveiligbare objecten. - Als uw rekenproces gebruikmaakt van de modus voor gedeelde toegang, hebt u toegang nodig tot de tabellen in de Hive-metastore, verleend met behulp van verouderd toegangsbeheer voor tabellen. Zie voordat u begint.
Upgradeproces
Als u een tabel in uw Hive-metastore wilt upgraden naar een beheerde tabel in Unity Catalog met behulp van CREATE TABLE AS SELECT
:
Maak een nieuwe Unity Catalog-tabel door een query uit te voeren op de bestaande tabel. Vervang de waarden van de tijdelijke aanduidingen:
<uc-catalog>
: De Unity Catalog-catalogus voor de nieuwe tabel.<uc-schema>
: Het Unity Catalog-schema voor de nieuwe tabel.<new-table>
: Een naam voor de Unity Catalog-tabel.<source-schema>
: Het schema voor de Hive-tabel, zoalsdefault
.<source-table>
: De naam van de Hive-tabel.
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>" )
Als u slechts enkele kolommen of rijen wilt migreren, wijzigt u de
SELECT
instructie.Notitie
De opdrachten die hier worden weergegeven, maken een beheerde tabel waarin gegevens worden gekopieerd naar een toegewezen beheerde opslaglocatie. Als u in plaats daarvan een externe tabel wilt maken, waarin de tabel is geregistreerd in Unity Catalog zonder de gegevens in de cloudopslag te verplaatsen, raadpleegt u Een enkele Hive-tabel upgraden naar een externe tabel van Unity Catalog met behulp van de upgradewizard. Zie ook Een beheerde opslaglocatie opgeven in Unity Catalog.
Gebruikers of groepen op accountniveau toegang verlenen tot de nieuwe tabel. Zie Bevoegdheden beheren in Unity Catalog.
(Optioneel) Voeg een opmerking toe aan de oorspronkelijke Hive-tabel die gebruikers naar de nieuwe Unity Catalog-tabel wijst.
Ga terug naar de oorspronkelijke tabel in de
hive.metastore
catalogus om de tabelcommentaar toe te voegen. Zie Opmerkingen toevoegen aan gegevens en AI-assets voor meer informatie over het toevoegen van tabelopmerkingen met Behulp van Catalog Explorer. Zie COMMENT ON voor meer informatie over het toevoegen van tabelopmerkingen met behulp van SQL-instructies in een notebook of de SQL-queryeditor.Als u de volgende syntaxis gebruikt in de tabelopmerking, notebooks en SQL-queryeditorquery's die verwijzen naar de afgeschafte Hive-tabel, worden de afgeschafte tabelnaam weergegeven met behulp van doorhalende tekst, de opmerking als waarschuwing weergegeven en geeft u een quick fix-koppeling naar Databricks Assistant op, waarmee uw code kan worden bijgewerkt om naar de nieuwe tabel te verwijzen.
This table is deprecated. Please use catalog.default.table instead of hive_metastore.schema.table.
Zie Opmerkingen toevoegen om aan te geven dat een Hive-tabel is gemigreerd.
Nadat de tabel is gemigreerd, moeten gebruikers hun bestaande query's en workloads bijwerken om de nieuwe tabel te gebruiken.
Als u een opmerking hebt toegevoegd aan de oorspronkelijke Hive-tabel, zoals in de optionele vorige stap, kunt u de koppeling Snelle oplossing en Databricks Assistant gebruiken om u te helpen werkbelastingen te vinden en te wijzigen.
Voordat u de oude tabel verwijdert, test u op afhankelijkheden door de toegang tot deze tabel in te trekken en gerelateerde query's en workloads opnieuw uit te voeren.
Verwijder de oude tabel niet als u nog steeds vertrouwt op afschaffingsopmerkingen om bestaande code te vinden en bij te werken die verwijst naar de oude tabel.
Een weergave upgraden naar Unity Catalog
Nadat u alle tabellen waarnaar wordt verwezen, hebt bijgewerkt naar dezelfde Unity Catalog-metastore, kunt u een nieuwe weergave maken die verwijst naar de nieuwe tabellen.
Opmerkingen toevoegen om aan te geven dat een Hive-tabel is gemigreerd
Wanneer u een opmerking toevoegt aan de afgeschafte Hive-tabel die gebruikers naar de nieuwe Unity Catalog-tabel, notebooks en SQL-queryeditorquery's wijst die verwijzen naar de afgeschafte Hive-tabel, worden de afgeschafte tabelnaam weergegeven met behulp van doorhalingstekst, de opmerking als waarschuwing weergegeven en geeft u een koppeling naar Databricks Assistant op, waarmee uw code kan worden bijgewerkt om naar de nieuwe tabel te verwijzen.
Uw opmerking moet de volgende indeling hebben:
This table is deprecated. Please use catalog.default.table instead of hive_metastore.schema.table.
Zie Opmerkingen toevoegen aan gegevens en AI-assets voor meer informatie over het toevoegen van tabelopmerkingen met Behulp van Catalog Explorer. Zie COMMENT ON voor meer informatie over het toevoegen van tabelopmerkingen met behulp van SQL-instructies in een notebook of de SQL-queryeditor.
Databricks Assistant gebruiken om een afgeschafte tabelreferentie bij te werken
Als u doorhalende tekst ziet op een tabelnaam in een notebookcel of instructie in de SQL-queryeditor, plaatst u de muisaanwijzer op de tabelnaam om een waarschuwingsbericht weer te geven. Als deze waarschuwingsmelding de tabel beschrijft als afgeschaft en de nieuwe tabelnaam weergeeft, klikt u op Snelle oplossing, gevolgd door afschaffing herstellen. Databricks Assistant wordt geopend en biedt als mogelijkheid om de afgeschafte tabelnaam te vervangen door de naam van de nieuwe Unity Catalog-tabel. Volg de aanwijzingen om de taak te voltooien.
Zie ook Databricks Assistant gebruiken.