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 denLOCATION
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.