Arbeta med externa tabeller

Externa tabeller lagrar data i en katalog i molnobjektlagring i din molnklientorganisation. Du måste ange en lagringsplats när du definierar en extern tabell.

Databricks rekommenderar endast användning av externa tabeller när du behöver direkt åtkomst till data utan att använda beräkning i Azure Databricks. Behörigheter för Unity-katalogen tillämpas inte när användare får åtkomst till datafiler från externa system.

Kommentar

Den här artikeln fokuserar på externa tabeller i Unity Catalog. Externa tabeller i det äldre Hive-metaarkivet har olika beteenden. Se Databasobjekt i det äldre Hive-metaarkivet.

Arbeta med externa tabeller

Azure Databricks hanterar endast metadata för externa tabeller och använder inte den hantera lagringsplats som är associerad med det innehållande schemat. Tabellregistreringen i Unity Catalog är bara en pekare till datafiler. När du släpper en extern tabell tas inte datafilerna bort.

När du skapar en extern tabell kan du antingen registrera en befintlig katalog med datafiler som en tabell eller ange en sökväg för att skapa nya datafiler.

Externa tabeller kan använda följande filformat:

  • DELTA
  • CSV
  • JSON
  • AVRO
  • PARKETTGOLV
  • ORCH
  • SMS

Skapa en extern tabell

Om du vill skapa en extern tabell kan du använda SQL-kommandon eller dataramsskrivningsåtgärder.

Innan du börjar

Om du vill skapa en extern tabell måste du uppfylla följande behörighetskrav:

  • Behörigheten CREATE EXTERNAL TABLE på en extern plats som ger åtkomst till den LOCATION som nås av den externa tabellen.
  • Behörigheten USE SCHEMA för tabellens överordnade schema.
  • Behörigheten USE CATALOG för tabellens överordnade katalog.
  • Behörigheten CREATE TABLE för tabellens överordnade schema.

Mer information om hur du konfigurerar externa platser finns i Skapa en extern plats för att ansluta molnlagring till Azure Databricks.

SQL-kommandoexempel

Använd något av följande kommandoexempel i en notebook-fil eller SQL-frågeredigeraren för att skapa en extern tabell.

I följande exempel ersätter du platshållarvärdena:

  • <catalog>: Namnet på katalogen som ska innehålla tabellen.
  • <schema>: Namnet på schemat som ska innehålla tabellen.
  • <table-name>: Ett namn på tabellen.
  • <column-specification>: Namn och datatyp för varje kolumn.
  • <bucket-path>: Sökvägen till molnlagrings bucketen där tabellen ska skapas.
  • <table-directory>: En katalog där tabellen ska skapas. Använd en unik katalog för varje tabell.
CREATE TABLE <catalog>.<schema>.<table-name>
(
  <column-specification>
)
LOCATION 'abfss://<bucket-path>/<table-directory>';

Mer information om parametrar för att skapa tabeller finns i SKAPA TABELL.

Skrivåtgärder för dataram

Många användare skapar externa tabeller från frågeresultat eller DataFrame-skrivåtgärder. Följande artiklar visar några av de många mönster som du kan använda för att skapa en extern tabell i Azure Databricks:

Släppa en extern tabell

Om du vill släppa en tabell måste du vara dess ägare. Om du vill släppa en extern tabell kör du följande SQL-kommando:

DROP TABLE IF EXISTS catalog_name.schema_name.table_name;

Unity Catalog tar inte bort underliggande data i molnlagringen när du släpper en extern tabell. Du måste ta bort de underliggande datafilerna direkt om du behöver ta bort data som är associerade med tabellen.

Exempel på notebook-fil: Skapa externa tabeller

Du kan använda följande notebook-exempel för att skapa en katalog, ett schema och en extern tabell och för att hantera behörigheter för dem.

Skapa och hantera en extern tabell i Notebook-filen för Unity Catalog

Hämta notebook-fil