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

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.

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.

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.

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