Vad är Delta Lake?
Delta Lake är det optimerade lagringslagret som utgör grunden för lagring av data och tabeller i Databricks Lakehouse Platform. 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 standardlagringsformatet för alla åtgärder i Azure Databricks. Om inget annat anges är alla tabeller i Azure Databricks Delta-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 Lakehouse Platform 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 i Azure Databricks är Delta-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: Delta Lake.
Databricks har många rekommendationer för bästa praxis för Delta Lake.
Konvertera och mata in data till Delta Lake
Azure Databricks tillhandahåller ett antal produkter för att påskynda och förenkla inläsningen av data till ditt lakehouse.
- Delta Live-tabeller
- KOPIERA TILL
- Automatisk inläsning
- Lägg till datagränssnitt
- Konvertera Parquet- eller Iceberg-data stegvis till Delta Lake
- Engångskonvertering av Parquet- eller Iceberg-data till Delta Lake
- Tredjepartspartner
En fullständig lista över inmatningsalternativ finns i Läsa in data i Azure Databricks Lakehouse.
Uppdatera och ändra Delta Lake-tabeller
Atomtransaktioner med Delta Lake innehåller många alternativ för att uppdatera data och metadata. Databricks rekommenderar att du undviker att interagera direkt med data- och transaktionsloggfiler i Delta Lake-filkataloger för att undvika att skada dina tabeller.
- Delta Lake stöder upserts med hjälp av sammanslagningsåtgärden.
- Delta Lake innehåller många alternativ för selektiva överskrivningar baserat på filter och partitioner.
- Du kan uppdatera tabellschemat manuellt eller automatiskt utan att skriva om data.
- Kolumnmappning gör att kolumner kan byta namn eller tas bort utan att skriva om data.
Inkrementella och strömmande arbetsbelastningar på Delta Lake
Delta Lake är optimerat för structured streaming på Azure Databricks. Delta Live Tables utökar inbyggda funktioner med förenklad infrastrukturdistribution, förbättrad skalning och hanterade databeroenden.
- Läsningar och skrivningar för tabellströmning
- Använda Delta Lake-ändringsdataflöde i Azure Databricks
- Aktivera idempotent-skrivningar mellan jobb
Köra frågor mot tidigare versioner av en tabell
Varje skrivning till en Delta-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 Delta Lake-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.
- Schemavalidering för Delta Lake
- Begränsningar för Azure Databricks
- Använda Delta Lake-genererade kolumner
- Berika Delta Lake-tabeller med anpassade metadata
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 bevaras i historiken. Delta Lake använder en kombination av metadataparsing och fysisk datalayout för att minska antalet filer som genomsöks för att uppfylla alla frågor.
- Data hoppar över med Z-orderindex för Delta Lake
- Komprimera datafiler med optimering på Delta Lake
- Ta bort oanvända datafiler med vakuum
- Konfigurera Delta Lake för att kontrollera datafilstorleken
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 antingen på tabellnivå eller i Spark-sessionen. Du kan granska informationen i Delta-tabellen för att se vilka alternativ som har konfigurerats.
- Granska Delta Lake-tabellinformation med beskrivande information
- Referens för deltatabellegenskaper
- Konfigurera autentiseringsuppgifter för lagring för Delta Lake
Datapipelines med Delta Lake och Delta Live Tables
Azure Databricks uppmuntrar användare att använda en medallion-arkitektur för att bearbeta data via en serie tabeller när data rensas och berikas. Delta Live Tables förenklar ETL-arbetsbelastningar genom optimerad körning och automatiserad distribution och skalning av infrastruktur.
Felsöka Delta Lake-funktioner
Alla Delta Lake-funktioner finns inte i alla versioner av Databricks Runtime. Du hittar information om Delta Lake-versionshantering och svar på vanliga frågor i följande artiklar:
Delta Lake API-dokumentation
För de flesta läs- och skrivåtgärder i Delta-tabeller kan du använda Spark SQL - eller Apache Spark DataFrame-API :er.
Delta Lake-spefic SQL-instruktioner finns i Delta Lake-instruktioner.
Azure Databricks garanterar 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 viktig information om Databricks Runtime. Delta Lake-API:er finns för Python, Scala och Java: