Delen via


Ondiepe kloon voor Unity Catalog-tabellen

Belangrijk

Deze functie bevindt zich in openbare preview-versie.

Belangrijk

Ondiepe kloonondersteuning verschilt voor beheerde en externe tabellen van Unity Catalog. Voor beheerde tabellen gebruikt u Databricks Runtime 13.3 en hoger en voor externe tabellen gebruikt u Databricks Runtime 14.2 en hoger.

U kunt beheerde tabellen van Unity Catalog alleen klonen naar beheerde tabellen van Unity Catalog en externe tabellen van Unity Catalog naar externe tabellen van Unity Catalog. VACUUM gedrag verschilt tussen beheerde en externe tabellen. Zie Gebruik VACUUM met Unity Catalog voor ondiepe klonen.

U kunt ondiepe kloon gebruiken om nieuwe Unity Catalog-tabellen te maken op basis van bestaande Unity Catalog-tabellen. Met ondiepe kloonondersteuning voor Unity Catalog kunt u tabellen maken met bevoegdheden voor toegangsbeheer, onafhankelijk van hun bovenliggende tabellen zonder dat u onderliggende gegevensbestanden hoeft te kopiëren.

Zie Een tabel klonen in Azure Databricks voor meer informatie over het klonen van een tabel.

Een door Unity Catalog beheerde ondiepe kloon maken

Maak een ondiepe kloon van een beheerde tabel in Unity Catalog.

CREATE TABLE <catalog-name>.<schema-name>.<target-table-name>
SHALLOW CLONE <catalog-name>.<schema-name>.<source-table-name>

Als u een beheerde ondiepe kloon wilt maken in Unity Catalog, moet u de volgende bevoegdheden hebben voor de bron- en doelbronnen.

Hulpbron Benodigde toestemmingen
Bronschema USE SCHEMA
Broncatalogus USE CATALOG
Doelschema USE SCHEMA, CREATE TABLE
Doelcatalogus USE CATALOG

Net als bij andere tabel-aanmaakopdrachten wordt de gebruiker die een ondiepe kloon maakt eigenaar van de doeltabel. De eigenaar van een gekloonde doeltabel bepaalt de toegangsrechten voor die tabel onafhankelijk van de brontabel. Dit betekent dat de eigenaar van een gekloonde tabel mogelijk anders is dan de eigenaar van een brontabel.

Maak een externe ondiepe kloon van de Unity Catalog

Maak een externe ondiepe kloon van Unity Catalog door een externe locatie op te geven.

CREATE TABLE <catalog-name>.<schema-name>.<target-table-name>
SHALLOW CLONE <catalog-name>.<schema-name>.<source-table-name>
LOCATION 's3://<bucket-name>/<path-name>/<target-table-name>'

Als u een externe ondiepe kloon in Unity Catalog wilt maken, moet u de volgende bevoegdheden hebben voor de bron- en doelbronnen.

Hulpbron Benodigde toestemmingen
Bronschema USE SCHEMA
Broncatalogus USE CATALOG
Doelschema USE SCHEMA, CREATE TABLE
Doelcatalogus USE CATALOG
Doel externe locatie CREATE EXTERNAL TABLE

Werken met ondiepe gekloonde tabellen in de standaardtoegangsmodus

Als u het opvragen van een ondiepe kloon wilt uitvoeren in de standaard toegangsmodule (voorheen modus voor gedeelde toegang), moet u de volgende bevoegdheden hebben voor de tabel en de resources die het bevat.

Hulpbron Benodigde toestemmingen
Catalogus USE CATALOG
Schema USE SCHEMA
Tabel SELECT

Je moet ook MODIFY-machtigingen hebben voor de doellocatie van de kloonbewerking om de volgende acties uit te voeren.

  • Records invoegen
  • Gegevens verwijderen
  • Records bijwerken
  • MERGE
  • CREATE TABLE
  • DROP TABLE

Werken met ondiepe gekloonde tabellen in de toegewezen toegangsmodus

Als u werkt met ondiepe klonen van Unity Catalog in de exclusieve toegangsmodus (voorheen de modus voor toegang tot één gebruiker), moet u machtigingen hebben voor de resources van zowel de brontabel als de doeltabel.

Dit betekent dat u voor eenvoudige query's naast de vereiste machtigingen voor de doeltabel machtigingen moet hebben USE voor de broncatalogus en het schema en SELECT machtigingen voor de brontabel. Voor query's die records bijwerken of invoegen in de doeltabel, moet u ook machtigingen hebben MODIFY voor de brontabel.

Databricks raadt aan om te werken met Unity Catalog klonen op een rekenwerkplek met de standaardtoegangsmodus, omdat dit een onafhankelijke ontwikkeling van machtigingen voor de shallow clone-doelen van Unity Catalog en hun brontabellen mogelijk maakt.

Gebruik VACUUM met ondiepe clones van Unity Catalog

Wanneer u Unity Catalog-tabellen gebruikt voor de bron en het doel van een ondiepe kloonbewerking, beheert Unity Catalog de onderliggende gegevensbestanden om de betrouwbaarheid voor de bron en het doel van de kloonbewerking te verbeteren. Het uitvoeren van VACUUM op de bron van een ondiepe kloon, zorgt ervoor dat de gekloonde tabel niet beschadigd raakt.

Normaal gesproken wordt bij VACUUM het identificeren van geldige bestanden voor een bepaalde retentiedrempel alleen de metagegevens voor de huidige tabel overwogen. Ondiepe kloonondersteuning voor Unity Catalog houdt echter de relaties tussen alle gekloonde tabellen en de brongegevensbestanden bij, zodat geldige bestanden worden uitgebreid met gegevensbestanden die nodig zijn voor het retourneren van query's voor ondiepe gekloonde tabellen en de brontabel.

Dit betekent dat voor ondiepe kloonsemantiek VACUUM van Unity Catalog een geldig gegevensbestand een bestand is binnen de opgegeven bewaardrempel voor de brontabel of een gekloonde tabel. Beheerde tabellen en externe tabellen hebben iets andere semantiek.

Dit verbeterde bijhouden van metagegevens verandert hoe VACUUM bewerkingen van invloed zijn op onderliggende gegevensbestanden voor de Delta-tabellen, met de volgende semantiek.

  • Voor beheerde tabellen kunnen bewerkingen tegen de bron of het doel van een oppervlakkige kloonbewerking gegevensbestanden uit de brontabel verwijderen.
  • Voor externe tabellen VACUUM verwijderen bewerkingen alleen gegevensbestanden uit de brontabel wanneer ze worden uitgevoerd op basis van de brontabel.
  • Alleen gegevensbestanden die niet als geldig worden beschouwd voor de brontabel of een ondiepe kloon van de bron worden verwijderd.
  • Als er meerdere ondiepe klonen zijn gedefinieerd op basis van één brontabel, wordt VACUUM uitgevoerd op een gekloonde tabel, waarbij geldige gegevensbestanden voor andere gekloonde tabellen niet worden verwijderd.

Notitie

Databricks raadt aan om VACUUM nooit uit te voeren met een bewaarinstelling van minder dan 7 dagen om te voorkomen dat lopende langetermijntransacties worden beschadigd. Als u VACUUM wilt uitvoeren met een lagere retentiedrempel, moet u begrijpen hoe VACUUM op ondiepe klonen in Unity Catalog verschilt van de interactie van VACUUM met andere gekloonde tabellen in Azure Databricks. Zie Een tabel klonen in Azure Databricks voor meer informatie.

Zelfs als een ondiepe gekloonde tabel wordt verwijderd, hebt u mogelijk toegang nodig SELECT tot die ondiepe gekloonde tabel om op de basistabel uit te voeren VACUUM . Databricks leest het Delta-logboek van de ondiepe kloon om te verifiëren naar welke basistabelgegevensbestanden de kloon nog steeds verwijst voordat ze worden opgeschoond. Databricks onderhoudt deze koppeling 7 dagen nadat een ondiepe gekloonde tabel is verwijderd om de UNDROP bewerking te ondersteunen. In de standaardtoegangsmodus is deze machtiging echter niet vereist.

Verwijder de basistabel voor een ondiepe kloon

Als de basistabel van een ondiepe kloon wordt verwijderd, wordt de kloon onbruikbaar. Standaard blokkeert Databricks het verwijderen van een basistabel als er nog steeds ondiepe kloons naar verwijzen.

Als u deze beveiliging wilt overschrijven, gebruikt u de DROP TABLE ... FORCE syntaxis. Als u het volgende gebruikt FORCE:

  • De basistabel wordt onmiddellijk verwijderd.
  • Alle verwijzingen naar ondiepe klonen worden verbroken en:
    • Mislukte bewerkingen waarvoor het lezen van gegevens of metagegevens is vereist (bijvoorbeeld SELECT, INSERTUPDATE, DESCRIBE HISTORY, ). CLONE
    • Zijn nog steeds zichtbaar via bewerkingen op metagegevensniveau (bijvoorbeeld SHOW TABLES, DROP TABLE) om opschoning toe te staan.

Dit gedrag is alleen van toepassing op beheerde tabellen van Unity Catalog. Zie DROP TABLE voor meer informatie.

Beperkingen

  • Ondiepe klonen van externe tabellen moeten ook externe tabellen zijn. Ondiepe klonen van beheerde tabellen moeten beheerde tabellen zijn.
  • U kunt REPLACE of CREATE OR REPLACE niet gebruiken om een bestaande ondiepe kloon te overschrijven. In plaats daarvan DROP de ondiepe kloon en voert u een nieuwe CREATE-instructie uit.
  • U kunt geen ondiepe klonen delen met Delta Sharing.
  • U kunt ondiepe kloons niet nesten, wat betekent dat u geen ondiepe kloon van een ondiepe kloon kunt maken.
  • Bij beheerde tabellen verstoort het verwijderen van de brontabel de werking van de doeltabel voor shallow clones. De onderliggende gegevensbestanden voor externe tabellen worden niet verwijderd door DROP TABLE bewerkingen en dus worden ondiepe klonen van externe tabellen niet beïnvloed door de bron te verwijderen.
  • Met Unity Catalog kunnen gebruikers UNDROP gedurende ongeveer 7 dagen na een DROP TABLE opdracht tabellen beheren. In Databricks Runtime 13.3 LTS en hoger blijven beheerde ondiepe klonen van een verwijderde brontabel gedurende een periode van 7 dagen functioneren, zolang Unity Catalog UNDROP ondersteunt. Als de brontabel niet in dat venster wordt hersteld, houdt de ondiepe kloon op met functioneren wanneer de brongegevensbestanden worden verwijderd tijdens de afvalopruiming.