Werken met externe tabellen
Externe tabellen slaan gegevens op in een map in de opslag van cloudobjecten in uw cloudtenant. U moet een opslaglocatie opgeven wanneer u een externe tabel definieert.
Databricks raadt het gebruik van externe tabellen alleen aan wanneer u directe toegang tot de gegevens nodig hebt zonder rekenkracht op Azure Databricks te gebruiken. Unity Catalog-bevoegdheden worden niet afgedwongen wanneer gebruikers toegang hebben tot gegevensbestanden van externe systemen.
Notitie
Dit artikel is gericht op externe tabellen van Unity Catalog. Externe tabellen in de verouderde Hive-metastore hebben verschillende gedragingen. Zie Databaseobjecten in de verouderde Hive-metastore.
Werken met externe tabellen
Azure Databricks beheert alleen de metagegevens voor externe tabellen en maakt geen gebruik van de opslaglocatie beheren die is gekoppeld aan het bijbehorende schema. De tabelregistratie in Unity Catalog is slechts een aanwijzer naar gegevensbestanden. Wanneer u een externe tabel verwijdert, worden de gegevensbestanden niet verwijderd.
Wanneer u een externe tabel maakt, kunt u een bestaande map met gegevensbestanden registreren als een tabel of een pad opgeven om nieuwe gegevensbestanden te maken.
Externe tabellen kunnen de volgende bestandsindelingen gebruiken:
- DELTA
- CSV
- JSON
- AVRO
- PARKET
- ORC
- SMS
Een externe tabel maken
Als u een externe tabel wilt maken, kunt u SQL-opdrachten of Dataframe-schrijfbewerkingen gebruiken.
Voordat u begint
Als u een externe tabel wilt maken, moet u voldoen aan de volgende machtigingsvereisten:
- De
CREATE EXTERNAL TABLE
bevoegdheid op een externe locatie die toegang verleent tot deLOCATION
toegang die door de externe tabel wordt geopend. - De
USE SCHEMA
machtiging voor het bovenliggende schema van de tabel. - De
USE CATALOG
machtiging voor de bovenliggende catalogus van de tabel. - De
CREATE TABLE
machtiging voor het bovenliggende schema van de tabel.
Zie Een externe locatie maken om cloudopslag te verbinden met Azure Databricks voor meer informatie over het configureren van externe locaties.
Voorbeelden van SQL-opdrachten
Gebruik een van de volgende opdrachtvoorbeelden in een notebook of de SQL-queryeditor om een externe tabel te maken.
Vervang in de volgende voorbeelden de waarden van de tijdelijke aanduiding:
<catalog>
: De naam van de catalogus die de tabel bevat.<schema>
: De naam van het schema dat de tabel bevat.<table-name>
: Een naam voor de tabel.<column-specification>
: De naam en het gegevenstype voor elke kolom.<bucket-path>
: Het pad naar de cloudopslagbucket waar de tabel wordt gemaakt.<table-directory>
: Een map waarin de tabel wordt gemaakt. Gebruik een unieke map voor elke tabel.
CREATE TABLE <catalog>.<schema>.<table-name>
(
<column-specification>
)
LOCATION 'abfss://<bucket-path>/<table-directory>';
Zie CREATE TABLE voor meer informatie over parameters voor het maken van tabellen.
Dataframe-schrijfbewerkingen
Veel gebruikers maken externe tabellen op basis van queryresultaten of DataFrame-schrijfbewerkingen. De volgende artikelen laten enkele van de vele patronen zien die u kunt gebruiken om een externe tabel te maken in Azure Databricks:
Een externe tabel neerzetten
Als u een tabel wilt verwijderen, moet u de eigenaar zijn. Als u een externe tabel wilt verwijderen, voert u de volgende SQL-opdracht uit:
DROP TABLE IF EXISTS catalog_name.schema_name.table_name;
Unity Catalog verwijdert de onderliggende gegevens in de cloudopslag niet wanneer u een externe tabel neer zet. U moet de onderliggende gegevensbestanden rechtstreeks verwijderen als u gegevens wilt verwijderen die aan de tabel zijn gekoppeld.
Voorbeeldnotitieblok: externe tabellen maken
U kunt het volgende voorbeeldnotitieblok gebruiken om een catalogus, schema en externe tabel te maken en machtigingen voor deze tabellen te beheren.