Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Important
Deze functie bevindt zich in openbare preview-versie.
Important
Ondiepe kloonondersteuning verschilt voor beheerde en externe tabellen van Unity Catalog. Voor beheerde tabellen wordt Databricks Runtime 13.3 LTS en hoger gebruikt en voor externe tabellen wordt Databricks Runtime 14.3 LTS en hoger gebruikt.
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.
Gebruik een ondiepe kloon om Unity Catalog-tabellen te maken met bevoegdheden voor toegangsbeheer, onafhankelijk van hun brontabellen, zonder de onderliggende gegevensbestanden te kopiëren. Shallow clone in Unity Catalog wordt alleen ondersteund bij Delta Lake-tabellen. U kunt geen ondiepe kloon van een Iceberg of een andere niet-Delta-tabel maken.
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 | Vereiste toestemmingen |
|---|---|
| Bronstructuur | USE SCHEMA |
| Broncatalogus | USE CATALOG |
| Doelschema |
USE SCHEMA, CREATE TABLE |
| Doelcatalogus | USE CATALOG |
Net als bij andere CREATE TABLE-instructies bent u de eigenaar van de doeltabel wanneer u SHALLOW CLONE uitvoert. De eigenaar van een gekloonde doeltabel bepaalt de toegangsrechten voor die tabel onafhankelijk van de brontabel. De eigenaar van een gekloonde tabel kan afwijken van 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 | Vereiste toestemmingen |
|---|---|
| Bronstructuur | 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 een shallow clone wilt raadplegen in de standaardtoegangsmodus (voorheen de modus voor gedeelde toegang), moet u beschikken over de volgende machtigingen voor de tabel en de bovenliggende resources:
| Hulpbron | Vereiste toestemmingen |
|---|---|
| Catalog | USE CATALOG |
| Schema | USE SCHEMA |
| Table | SELECT |
U moet ook machtigingen hebben MODIFY voor het doel van de kloonbewerking om de volgende bewerkingen uit te voeren:
INSERTDELETEUPDATEMERGECREATE TABLEDROP TABLE
Werken met ondiepe gekloonde tabellen in de toegewezen toegangsmodus
Wanneer u werkt met ondiepe klonen in Unity Catalog in de modus voor toegewezen toegang (voorheen modus voor één gebruiker), moet u machtigingen hebben voor de resources van zowel de bron van de gekloonde tabel als de doeltabel.
Voor eenvoudige query's moet u, naast de vereiste machtigingen voor de doeltabel, machtigingen 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 het gebruik van Unity Catalog-klonen aan voor berekeningen met de standaardtoegangsmodus, omdat hierdoor onafhankelijke wijzigingen van machtigingen voor ondiepe kloondoelen van Unity Catalog en de bijbehorende brontabellen mogelijk zijn.
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 beschadigt de gekloonde tabel niet.
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 zowel ondiepe gekloonde tabellen als de brontabel.
Voor VACUUM op een ondiepe kloon in Unity Catalog is een geldig gegevensbestand elk bestand binnen de opgegeven retentiedrempel voor de brontabel of een gekloonde tabel. Beheerde tabellen en externe tabellen hebben iets ander gedrag.
Deze verbeterde tracering van metagegevens verandert hoe VACUUM bewerkingen van invloed zijn op onderliggende gegevensbestanden voor de Delta Lake-tabellen, met het volgende gedrag:
- Voor beheerde tabellen
VACUUMkunnen bewerkingen op de bron of het doel van een ondiepe kloonbewerking gegevensbestanden uit de brontabel verwijderen. - Voor externe tabellen
VACUUMverwijderen 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
VACUUMuitgevoerd op een gekloonde tabel, waarbij geldige gegevensbestanden voor andere gekloonde tabellen niet worden verwijderd.
Note
Databricks raadt u aan VACUUM nooit uit te voeren met een retentie-instelling van minder dan 7 dagen, om te voorkomen dat langlopende transacties die nog bezig zijn beschadigd raken. Als u een lagere retentiedrempel nodig hebt, kunt u overwegen hoe VACUUM ondiepe klonen in Unity Catalog verschillen van hoe VACUUM dit van invloed is op andere gekloonde tabellen op Azure Databricks. Zie Een tabel klonen in Azure Databricks voor meer informatie.
Zelfs als u een shallow-cloned tabel verwijdert, hebt u mogelijk toegang tot die shallow-cloned tabel via SELECT nodig om VACUUM op de basistabel uit te voeren. 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 na het verwijderen van een ondiepe gekloonde tabel ter ondersteuning van de UNDROP bewerking. In de standaardtoegangsmodus is deze machtiging echter niet vereist.
Verwijder de basistabel voor een ondiepe kloon
Als u de basistabel van een ondiepe kloon verwijdert, 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:
- Ondiepe klonen mislukken bij bewerkingen waarvoor gegevens of metagegevens moeten worden gelezen (bijvoorbeeld
SELECT,INSERT,UPDATE,DESCRIBE HISTORY,CLONE). - Om opschoning mogelijk te maken, zijn ondiepe klonen nog steeds zichtbaar via bewerkingen op metadata-niveau (bijvoorbeeld
SHOW TABLES,DROP TABLE).
- Ondiepe klonen mislukken bij bewerkingen waarvoor gegevens of metagegevens moeten worden gelezen (bijvoorbeeld
Dit gedrag is alleen van toepassing op beheerde tabellen van Unity Catalog. Zie DROP TABLE voor meer informatie.
Limitations
- Shallow clone wordt alleen ondersteund voor Delta Lake-tabellen. U kunt geen ondiepe kloon van een Iceberg of een andere niet-Delta-tabel maken.
- U kunt
CREATE OR REPLACEniet gebruiken om een bestaande shallow clone te overschrijven. GebruikDROP TABLEgevolgd doorCREATE TABLEof gebruik een nieuwe tabelnaam. - Ondiepe klonen van externe tabellen moeten ook externe tabellen zijn. Ondiepe klonen van beheerde tabellen moeten beheerde tabellen zijn.
- U kunt geen ondiepe klonen delen met Behulp van OpenSharing.
- 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 TABLEbewerkingen en dus worden ondiepe klonen van externe tabellen niet beïnvloed door de bron te verwijderen. - Met Unity Catalog kunnen gebruikers
UNDROPgedurende ongeveer 7 dagen na eenDROP TABLEopdracht 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 CatalogUNDROPondersteunt. Als de brontabel niet in dat venster wordt hersteld, houdt de ondiepe kloon op met functioneren wanneer de brongegevensbestanden worden verwijderd tijdens de afvalopruiming.