Hoe werken paden voor gegevens die worden beheerd door Unity Catalog?
In dit artikel worden beperkingen voor padovergangen in Unity Catalog uitgelegd, op pad gebaseerde toegangspatronen voor gegevensbestanden in Unity Catalog-objecten en wordt beschreven hoe Unity Catalog paden voor tabellen en volumes beheert.
Notitie
Volumes worden alleen ondersteund in Databricks Runtime 13.3 LTS en hoger. In Databricks Runtime 12.2 LTS en hieronder kunnen bewerkingen op /Volumes
basis van paden slagen, maar ze kunnen alleen gegevens schrijven naar tijdelijke opslagschijven die zijn gekoppeld aan rekenclusters in plaats van gegevens te behouden naar Unity Catalog-volumes zoals verwacht.
Paden voor Unity Catalog-objecten mogen niet overlappen
Unity Catalog dwingt gegevensbeheer af door te voorkomen dat beheerde mappen met gegevens elkaar overlappen. Unity Catalog dwingt de volgende regels af:
- Externe locaties mogen geen andere externe locaties overlappen.
- Tabellen en volumes slaan gegevensbestanden op externe locaties of de hoofdlocatie van de metastore op.
- Volumes mogen geen andere volumes overlappen.
- Tabellen mogen geen andere tabellen overlappen.
- Tabellen en volumes kunnen elkaar niet overlappen.
- Beheerde opslaglocaties kunnen elkaar niet overlappen. Zie Een beheerde opslaglocatie opgeven in Unity Catalog.
- Externe volumes mogen beheerde opslaglocaties niet overlappen.
- Externe tabellen kunnen beheerde opslaglocaties niet overlappen.
Deze regels betekenen dat de volgende beperkingen bestaan in Unity Catalog:
- U kunt geen externe locatie definiëren binnen een andere externe locatie.
- U kunt geen volume binnen een ander volume definiëren.
- U kunt een tabel in een andere tabel niet definiëren.
- U kunt geen tabel definiëren voor gegevensbestanden of mappen binnen een volume.
- U kunt geen volume definiëren in een map in een tabel.
Notitie
U kunt altijd op pad gebaseerde toegang gebruiken om gegevensbestanden van volumes te schrijven of te lezen, waaronder Delta Lake. U kunt deze gegevensbestanden niet registreren als tabellen in de Unity Catalog-metastore.
Paden voor beheerde tabellen en beheerde volumes worden volledig beheerd door Unity Catalog
Wanneer u een beheerde tabel of een beheerd volume maakt, maakt Unity Catalog een nieuwe map in de opslaglocatie die is geconfigureerd voor Unity Catalog die is gekoppeld aan het bijbehorende schema. De naam van deze map wordt willekeurig gegenereerd om mogelijke conflicten met andere mappen die al aanwezig zijn te voorkomen.
Dit gedrag verschilt van hoe Hive-metastore beheerde tabellen maakt. Databricks raadt aan om altijd te communiceren met beheerde tabellen van Unity Catalog met behulp van tabelnamen en beheerde Volumes van Unity Catalog met behulp van volumepaden.
Paden voor externe tabellen en externe volumes worden beheerd door Unity Catalog
Wanneer u een externe tabel of een extern volume maakt, geeft u een pad op binnen een externe locatie die wordt beheerd door Unity Catalog.
Belangrijk
Databricks raadt aan nooit een extern volume of externe tabel te maken in de hoofdmap van een externe locatie. Maak in plaats daarvan externe volumes en externe tabellen in submappen binnen een externe locatie. Deze aanbevelingen moeten helpen voorkomen dat per ongeluk overlappende paden worden gebruikt. Zie Paden voor Unity Catalog-objecten kunnen elkaar niet overlappen.
Voor gebruiksgemak raadt Databricks aan om met externe tabellen van Unity Catalog te communiceren met behulp van tabelnamen en externe volumes van Unity Catalog met behulp van volumepaden.
Gebruikers met voldoende bevoegdheden voor het bijbehorende Unity Catalog-object hebben ook toegang tot gegevens uit een externe tabel of extern volume met behulp van het volledig gekwalificeerde opslagpad voor cloudobjecten.
Belangrijk
Unity Catalog beheert alle bevoegdheden voor toegang met behulp van cloud-URI's naar gegevens die zijn gekoppeld aan externe tabellen of externe volumes. Deze bevoegdheden overschrijven alle bevoegdheden die zijn gekoppeld aan externe locaties. Bekijk unity-catalogusbevoegdheden en beveiligbare objecten
Hoe hebt u toegang tot gegevens in Unity Catalog?
Unity Catalog-objecten bieden toegang tot gegevens via object-id's, volumepaden of cloud-URI's. U kunt deze waarden gebruiken voor toegang tot gegevens die zijn gekoppeld aan volumes en tabellen.
Unity Catalog-tabellen worden geopend met behulp van een id met drie lagen met het volgende patroon:
<catalog_name>.<schema_name>.<table_name>
Wat zijn volumebestandspaden in Unity Catalog?
Volumes bieden een bestandspad voor toegang tot gegevensbestanden met het volgende patroon:
/Volumes/<catalog_name>/<schema_name>/<volume_name>/<path_to_file>
Voor cloud-URI's moeten gebruikers het stuurprogramma, de opslagcontainer-id en het volledige pad naar de doelbestanden opgeven, zoals in het volgende voorbeeld:
abfss://<container_name>@<storage_account>.dfs.core.windows.net/<path>
In de volgende tabel ziet u de toegangsmethoden die zijn toegestaan voor Unity Catalog-objecten:
Object | Object-id | Bestandspad | Cloud-URI |
---|---|---|---|
Externe locatie | nee | nee | ja |
Beheerde tabel | ja | nee | nee |
Externe tabel | ja | nee | ja |
Beheerd volume | nee | ja | nee |
Extern volume | nee | ja | ja |
Notitie
Unity Catalog-volumes gebruiken object-id's met drie lagen met het volgende patroon voor beheeropdrachten (zoals CREATE VOLUME
en DROP VOLUME
):
<catalog_name>.<schema_name>.<volume_name>
Als u daadwerkelijk met bestanden in volumes wilt werken, moet u op pad gebaseerde toegang gebruiken.