Vad är Delta Lake?
Delta Lake är det optimerade lagringslagret som utgör grunden för tabeller i ett sjöhus på Databricks. 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 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-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 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:
- COPY INTO
- Auto Loader
- Lägga till datagränssnitt
- Konvertera Inkrementellt Parquet- eller Iceberg-data till Delta Lake
- Engångskonvertering av Parquet- eller Iceberg-data till Delta Lake
- Tredjepartspartners
En fullständig lista över inmatningsalternativ finns i Mata in data i ett Databricks lakehouse.
Uppdatera och ändra Delta Lake-tabeller
Atomiska transaktioner 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. Se Upsert i en Delta Lake-tabell med hjälp av sammanslagning.
- Delta Lake innehåller många alternativ för selektiva överskrivningar baserat på filter och partitioner. Se Selektivt skriva över data med Delta Lake.
- Du kan uppdatera tabellschemat manuellt eller automatiskt utan att skriva om data. Se Uppdatera Delta Lake-tabellschema.
- Aktivera kolumnmappning för att byta namn på eller ta bort kolumner utan att skriva om data. Se Byt namn på och släpp kolumner med Delta Lake-kolumnmappning.
Inkrementella och strömmande arbetsbelastningar på Delta Lake
Delta Lake är optimerat för strukturerad direktuppspelning i Azure Databricks. Delta Live Tables utökar inbyggda funktioner med förenklad infrastrukturdistribution, förbättrad skalning och hanterade databeroenden.
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 fråga tidigare tabellversioner. Läs mer i 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.
- Schemaframtvingande
- Begränsningar för Azure Databricks
- 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 behålls 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.
- Använda flytande klustring för Delta-tabeller
- Data hoppar över för Delta Lake
- Optimera layouten för datafiler
- Ta bort oanvända datafiler med vakuum
- Konfigurera Delta Lake för att styra 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 på tabellnivå eller i Spark-sessionen. Du kan granska informationen i Delta-tabellen för att ta reda på vilka alternativ som har konfigurerats.
Datapipelines med Delta Lake och Delta Live Tables
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. Delta Live Tables förenklar ETL-arbetsbelastningar genom optimerad körning och automatiserad distribution och skalning av infrastruktur.
Delta Lake-funktionskompatibilitet
Alla Delta Lake-funktioner finns inte i alla versioner av Databricks Runtime. Information om Delta Lake-versionshantering finns i How does Azure Databricks manage Delta Lake feature compatibility?.
Dokumentation om Delta Lake API
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-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 viktig information om Databricks Runtime. Dokumentation om Delta Lake-API:er för Python, Scala och Java finns i OSS Delta Lake-dokumentationen.