Delen via


Werken met externe tables

Externe tables gegevens opslaan in een map in de opslag van cloudobjecten in uw cloudtenant. U moet een opslaglocatie opgeven wanneer u een externe tabledefinieert.

Databricks raadt het gebruik van externe tables 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 richt zich op Unity Catalog externe tables. Externe tables in de verouderde Hive-metastore vertonen verschillend gedrag. Zie Databaseobjecten in de verouderde Hive-metastore.

Samenwerken met externe partij tables

Azure Databricks beheert alleen de metagegevens voor externe tables en maakt geen gebruik van de beheeropslaglocatie die gekoppeld is aan de desbetreffende schema. De table registratie in Unity Catalog is slechts een verwijzing naar gegevensbestanden. Wanneer u een externe tableneerslaat, worden de gegevensbestanden niet verwijderd.

Wanneer u een externe tablemaakt, kunt u een bestaande map met gegevensbestanden registreren als table of een pad opgeven om nieuwe gegevensbestanden te maken.

Externe tables kan de volgende bestandsformaten gebruiken:

  • DELTA
  • CSV
  • JSON
  • AVRO
  • PARKET
  • ORC
  • SMS

Een externe table maken

Als u een externe tablewilt maken, kunt u SQL-opdrachten of Dataframe-schrijfbewerkingen gebruiken.

Voordat u begint

Als u een externe tablewilt maken, moet u voldoen aan de volgende machtigingsvereisten:

  • De CREATE EXTERNAL TABLE-bevoegdheid op een externe locatie verleent toegang tot de LOCATION, die door de externe tablewordt benaderd.
  • De USE SCHEMA machtiging voor de bovenliggende schemavan het table.
  • De USE CATALOG machtiging op de ouder catalogvan table.
  • De machtiging CREATE TABLE voor de ouder schemavan table.

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 tablete maken.

Vervang in de volgende voorbeelden de tijdelijke aanduiding values:

  • <catalog>: de naam van de catalog die de tablebevat.
  • <schema>: de naam van de schema die de tablebevat.
  • <table-name>: een naam voor de table.
  • <column-specification>: de naam en het gegevenstype voor elke column.
  • <bucket-path>: het pad naar de cloudopslagbucket where de table wordt gemaakt.
  • <table-directory>: Er zal een map where met de naam table worden aangemaakt. Gebruik een unieke map voor elke table.
CREATE TABLE <catalog>.<schema>.<table-name>
(
  <column-specification>
)
LOCATION 'abfss://<bucket-path>/<table-directory>';

Voor meer informatie over de creatie van tableparameters, zie CREATE TABLE.

Dataframe-schrijfbewerkingen

Veel gebruikers maken externe tables op basis van queryresultaten of DataFrame-schrijfbewerkingen. In de volgende artikelen ziet u een aantal van de vele patronen die u kunt gebruiken om een externe table te maken in Azure Databricks:

Een externe table verwijderen

Als u een table wilt verwijderen, moet u de eigenaar zijn of de MANAGE bevoegdheid op de tablehebben. Als u een externe tablewilt 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 tableverwijdert. U moet de onderliggende gegevensbestanden rechtstreeks verwijderen als u gegevens wilt remove die zijn gekoppeld aan de table.

voorbeeldnotitieblok: externe tables maken

U kunt het volgende voorbeeldnotitieblok gebruiken om een catalog, schemaen externe tablete maken en machtigingen voor deze notitieblokken te beheren.

Een externe table maken en beheren in Unity Catalog notebook

Get notitieboek