Vad är Delta Lake i Azure Databricks?

Delta Lake är det optimerade lagringslagret som utgör grunden för tabeller i en lakehouse-arkitektur i Databricks-miljön. Delta Lake är öppen källkod programvara som utökar Parquet-datafiler med en filbaserad transaktionslogg för ACID-transaktioner och skalbar metadatahantering. Delta Lake är helt kompatibelt med Apache Spark-API:er och har utvecklats för nära integrering med Structured Streaming, så att du enkelt kan använda en enda kopia av data för både batch- och strömningsåtgärder och tillhandahålla inkrementell bearbetning i stor skala.

Delta Lake är standardformatet för alla åtgärder i Azure Databricks. Om inget annat anges är alla tabeller på Azure Databricks Delta Lake-tabeller. Databricks utvecklade ursprungligen Delta Lake-protokollet och fortsätter att aktivt bidra till öppen källkod projektet. Många av optimeringarna och produkterna i Databricks-plattformen bygger på garantierna från Apache Spark och Delta Lake. Information om optimeringar på Azure Databricks finns i Optimeringsrekommendationer för Azure Databricks.

Referensinformation om Delta Lake SQL-kommandon finns i Delta Lake-instruktioner.

Delta Lake-transaktionsloggen har ett väldefinierat öppet protokoll som kan användas av alla system för att läsa loggen. Se Delta Transaction Log Protocol.

Komma igång med Delta Lake

Alla tabeller på Azure Databricks är Delta Lake-tabeller som standard. Oavsett om du använder Apache Spark DataFrames eller SQL får du alla fördelar med Delta Lake bara genom att spara dina data i lakehouse med standardinställningar.

Exempel på grundläggande Delta Lake-åtgärder som att skapa tabeller, läsa, skriva och uppdatera data finns i Självstudie: Skapa och hantera Delta Lake-tabeller.

Information om Databricks-rekommendationer och metodtips för att använda Delta Lake finns i Metodtips: Delta Lake.

Konvertera och mata in data till Delta Lake

Azure Databricks har många funktioner för att påskynda och förenkla inläsningen av data till ditt lakehouse.

Metod Description
Självstudie: Skapa en ETL-pipeline med Lakeflow Spark Deklarativa pipelines Bygg en heltäckande ETL-pipeline med Lakeflow Spark Declarative Pipelines.
Konfigurera inkrementell inmatning från Azure Data Lake Storage Konfigurera inkrementell datainläsning från molnlagring med Auto Loader och Lakeflow Spark Declarative Pipelines.
Strömmande tabeller Använd strömmande tabeller för append-only-inmatning och strömning med låg latens i Lakeflow Spark Declarative Pipelines.
Kom igång med COPY INTO för att läsa in data Ladda in data inkrementellt och på ett idempotent sätt från molnlagring med SQL.
Vad är Auto Loader? Mata in filer från molnlagring stegvis när de tas emot.
Skapa eller ändra en tabell med filuppladdning Ladda upp filer och skapa tabeller från användargränssnittet för Azure Databricks.
Inkrementell kloning av Parquet- och Apache Iceberg-tabeller till Delta Lake Klona Parquet- eller Apache Iceberg-tabeller inkrementellt till Delta Lake.
Konvertera till Delta Lake Engångskonvertering av Parquet- eller Apache Iceberg-tabeller till Delta Lake.
Teknikpartner Anslut tredjepartspartners och verktyg till din Azure Databricks lakehouse.

En fullständig lista över inmatningsalternativ finns i Standardanslutningar i Lakeflow Connect.

Uppdatera och ändra Delta Lake-tabeller

Med atomiska transaktioner med Delta Lake kan du använda många alternativ för att uppdatera data och metadata. För att undvika att skada dina tabeller rekommenderar Databricks att du undviker att interagera direkt med data- och transaktionsloggfiler i Delta Lake-filkataloger.

Operation Description
Infoga eller uppdatera i en Delta Lake-tabell med merge-operationen Infoga eller uppdatera data i en Delta Lake-tabell med hjälp av sammanslagningsåtgärden.
Skriv över data selektivt med Delta Lake Skriv över delmängder av data baserat på filter och partitioner.
Uppdatera tabellscheman med schemautveckling Uppdatera tabellschemat manuellt eller automatiskt utan att skriva om data.
Byt namn på och släpp kolumner med Delta Lake-kolumnmappning Byt namn på eller ta bort kolumner utan att skriva om data.

Inkrementella och strömmande arbetsbelastningar på Delta Lake

Delta Lake är optimerat för strukturerad direktuppspelning i Azure Databricks. Lakeflow Spark deklarativa dataledningar utökar de inbyggda funktionerna med förenklad infrastrukturdriftsättning, utökad skalbarhet och hanterade databeroenden.

Feature Description
Strömningsläsningar och -skrivningar för Delta Lake-tabeller Använd Delta Lake-tabeller som källor och mottagare för strukturerad direktuppspelning med readStream och writeStream.
Använda ändringsdataflöde på Azure Databricks Spåra ändringar på radnivå mellan versioner av en Delta Lake- eller Apache Iceberg v3-tabell.

Fråga på tidigare versioner av en tabell

Varje skrivning till en Delta Lake-tabell skapar en ny tabellversion. Du kan använda transaktionsloggen för att granska ändringar i tabellen och köra frågor mot tidigare tabellversioner. Se Arbeta med tabellhistorik.

Förbättringar av Delta Lake-schema

Delta Lake validerar schemat vid skrivning, vilket säkerställer att alla data som skrivs till en tabell matchar de krav som du har angett.

Feature Description
Genomdrivning av schema Verifiera datakvaliteten genom att framtvinga schema vid skrivning.
Begränsningar för Azure Databricks Tillämpa tvingande integritetsvillkor samt informativa primärnycklar, främmande nycklar och unika villkor.
Delta Lake-genererade kolumner Generera kolumnvärden automatiskt med hjälp av användardefinierade funktioner.
Berika tabeller med anpassade metadata Lägg till kommentarer och anpassade metadata i tabeller och kolumner för att utöka dataidentifiering.

Hantera filer och indexera data med Delta Lake

Azure Databricks anger många standardparametrar för Delta Lake som påverkar storleken på datafiler och antalet tabellversioner som behålls i historiken. Delta Lake använder en kombination av metadataparsning och fysisk datalayout för att minska antalet filer som genomsöks för att besvara alla sökfrågor.

Feature Description
Använda flytande klustring för tabeller Förenkla datalayouten och optimera frågeprestanda utan partitionering med hjälp av flytande klustring.
Data som utelämnas Hoppa över irrelevanta filer vid frågetillfället med hjälp av kolumnstatistik, Z-ordning och optimerad datalayout.
Optimera datafilens layout Komprimera små datafiler för att förbättra frågeprestanda.
Ta bort oanvända datafiler med vakuum Ta bort inaktuella datafiler för att minska lagringskostnaderna.
Automatisk radering av rader med automatisk livslängd Ta automatiskt bort rader från hanterade tabeller efter en konfigurerbar tidsperiod.
Kontrollera datafilens storlek Kontrollera målfilens storlek manuellt eller aktivera automatisk filstorleksjustering.

Konfigurera och granska Delta Lake-inställningar

Azure Databricks lagrar alla data och metadata för Delta Lake-tabeller i molnobjektlagring. Många konfigurationer kan anges på tabellnivå eller i Spark-sessionen. Du kan granska informationen i Delta Lake-tabellen för att ta reda på vilka alternativ som har konfigurerats.

Feature Description
Granska tabellinformation med beskriv detaljer Visa tabellkonfigurationer och metadata med kommandot DESCRIBE DETAIL .
Referens för tabellegenskaper Referenslista över tillgängliga tabellegenskaper för Delta Lake-tabeller.

Dataledningar med Delta Lake och Lakeflow Spark deklarativa pipelines

Azure Databricks uppmuntrar användare att använda en medaljongarkitektur för att bearbeta data via en serie tabeller när data rensas och berikas. Lakeflow Spark Deklarativa Pipelines förenklar ETL-belastningar genom optimerad körning och automatiserad infrastrukturimplementering och skalning.

Delta Lake-funktionskompatibilitet

Alla Delta Lake-funktioner finns inte i alla versioner av Databricks Runtime. Information om Delta Lake-versionshantering finns i Delta Lake-funktionskompatibilitet och protokoll.

Dokumentation om Delta Lake API

För de flesta läs- och skrivåtgärder i Delta Lake-tabeller kan du använda Spark SQL - eller Apache Spark DataFrame-API :er.

Delta Lake-specifika SQL-instruktioner finns i Delta Lake-instruktioner.

Azure Databricks säkerställer binär kompatibilitet med Delta Lake-API:er i Databricks Runtime. Information om hur du visar Delta Lake API-versionen som paketeras i varje Databricks Runtime-version finns i avsnittet Systemmiljö i relevant artikel i Databricks Runtime-versionsnoteringarna. Dokumentation om Delta Lake-API:er för Python, Scala och Java finns i OSS Delta Lake-dokumentationen.