Datastandardisering
Data anländer till Data Lake-konton i olika format. Dessa format omfattar läsbara format för människor, till exempel JSON, . CSV- eller XML-filer och komprimerade binära format, till exempel .tar eller .gz. Ankommande data finns också i många storlekar, från några redigerade filer till en export av en hel SQL-tabell. Data kan också komma som ett stort antal små filer som är några kbs vardera, till exempel realtidshändelser från en IoT-lösning.
Även om Azure Data Lake Storage Gen2 stöder lagring för alla typer av data utan begränsningar bör du noga överväga dina dataformat för att säkerställa bearbetning av pipelineeffektivitet och optimera kostnaderna.
Många organisationer standardiserar nu sitt inmatningsformat och separerar beräkning från lagring. Därför har Delta Lake-formatet blivit den föredragna standarden för datainmatning till berikningslagret. Från berikningslagret kan ditt dataprogramteam hantera data i ett format som återspeglar deras användningsfall.
Kommentar
Använd Delta Lake för att stödja både batch- och strömningsanvändningsfall för inledande datainmatning till berikningslagret.
Den här artikeln innehåller en översikt över Delta Lake, dess prestanda och hur den hjälper dig att uppnå efterlevnadsstöd och hur du standardiserar dina data när de flödar från käll- till berikande lager.
Data Lake
Delta Lake är ett lagringslager med öppen källkod som ger ACID-transaktioner (atomitet, konsekvens, isolering och hållbarhet) till stordataarbetsbelastningar och Apache Spark. Både Azure Synapse Analytics och Azure Databricks är kompatibla med Linux Foundation Delta Lake.
Delta Lake-nyckelfunktioner
Funktion | beskrivning |
---|---|
ACID-transaktioner | Datasjöar fylls vanligtvis i via flera processer och pipelines, varav vissa skriver data samtidigt med läsningar. Datatekniker som används för att gå igenom en manuell, felbenägen process för att säkerställa dataintegritet innan Delta Lake och transaktioner används. Delta Lake ger välbekanta ACID-transaktioner till datasjöar. Det ger den starkaste isoleringsnivån, serialiserbarhet. Mer information finns i Dykning i Delta Lake: Packa upp transaktionsloggen. |
Skalbar metadatahantering | I stordata kan även metadata vara "stordata". Delta Lake behandlar metadata på samma sätt som andra data. Den använder Sparks distribuerade bearbetningskraft för att hantera alla metadata. Därför kan Delta Lake enkelt hantera petabyteskalningstabeller med miljarder partitioner och filer. |
Tidsresor (versionshantering av data) | Möjligheten att "ångra" en ändring eller gå tillbaka till en tidigare version är en viktig funktion i transaktioner. Delta Lake tillhandahåller ögonblicksbilder av data så att du kan återgå till tidigare versioner av data för granskningar, återställningar eller återskapa experiment. Läs mer i Introduktion till Delta Lake Time Travel för storskaliga datasjöar. |
Öppna format | Med Apache Parquet, baslinjeformatet för Delta Lake, kan du använda effektiva komprimerings- och kodningsscheman. |
Enhetlig batch och strömmande källa och mottagare | En tabell i Delta Lake är samtidigt en batchtabell och en strömningskälla och mottagare. Datamatningsströmning, batchhistorik ifyllnad och interaktiva frågor fungerar direkt. |
Schematillämpning | Schematillämpning hjälper dig att se till att du har rätt datatyper och obligatoriska kolumner, vilket förhindrar datainkonsekvens från felaktiga data. Mer information finns i Dykning i Delta Lake: Schemaframtvingande och utveckling |
Schemautveckling | Med Delta Lake kan du göra automatiskt tillämpade ändringar i ett tabellschema, utan att behöva skriva migrerings-DDL. Mer information finns i Dykning i Delta Lake: Schemaframtvingande och utveckling |
Granskningshistorik | Delta Lake-transaktionsloggen innehåller information om alla ändringar som görs i dina data. Dessa poster ger en fullständig spårningslogg med alla ändringar. |
Uppdateringar och borttagningar | Delta Lake stöder Api:er för Scala, Java, Python och SQL för olika funktioner. Stöd för sammanslagnings-, uppdaterings- och borttagningsåtgärder hjälper dig att uppfylla efterlevnadskraven. Mer information finns i Meddelande om Delta Lake 0.6.1 Release, Announcing the Delta Lake 0.7 Release, and Simple, Reliable Upserts and Deletes on Delta Lake Tables using Python API ( which includes code snippets for merge, update, and delete DML commands). |
100 % kompatibel med Apache Spark API | Dina utvecklare kan använda Delta Lake med minimala ändringar i sina befintliga datapipelines, eftersom det är helt kompatibelt med befintliga Spark-implementeringar. |
Mer information finns i Delta Lake Project.
Fullständig dokumentation finns på delta lakedokumentationsidan
Prestanda
Att använda många små filer resulterar ofta i lägre prestanda och högre kostnader från ökade läs-/liståtgärder. Azure Data Lake Storage Gen2 är optimerat för större filer som gör att dina analysjobb kan köras snabbare och med lägre kostnad.
Delta Lake innehåller många funktioner som kan hjälpa dig att optimera prestanda med filhantering.
Exempel:
- Transaktionsloggen minimerar dyra LIST-åtgärder.
- Z-ordering (flerdimensionell klustring) möjliggör optimerad predikat-pushdown för dina frågefilter.
- Interna cachelagrings- och frågeoptimeringar minskar mängden lagringsgenomsökning som du behöver. Mer information finns i Optimera prestanda med cachelagring.
- OPTIMIZE samlar små filer i större filer.
Gör dessa optimeringar till en del av datainläsningsprocessen för att upprätthålla datas färskhet och prestanda.
Partitionering av datasjöar
Datapartitionering omfattar att organisera data i ditt datalager så att du kan hantera storskaliga data och kontrollera dataåtkomst. Partitionering kan förbättra skalbarheten, minska konkurrensen och ge bästa möjliga prestanda.
Kontrollera konfigurationen när du partitionerar datasjön:
- Äventyrar inte säkerheten
- Har tydlig isolering och överensstämmer med din dataauktoriseringsmodell
- Passar din datainmatningsprocess väl
- Har en väldefinierad sökväg för optimal dataåtkomst
- Stöder hanterings- och underhållsaktiviteter
Allmänna metoder
De allmänna metoderna för design av datapartitionering är:
- Fokusera på säkerhetsaspekterna tidigt och utforma dina datapartitioner tillsammans med auktorisering.
- Du kanske vill tillåta dataredundans i utbyte mot säkerhet.- Definiera en namngivningskonvention och följ den.
- Du kan kapsla flera mappar, men alltid hålla dem konsekventa.
- Inkludera ett tidselement i mappstrukturerna och filnamnen.
- Starta inte mappstrukturen med datumpartitioner. Det är bättre att behålla datum på den lägre mappnivån.
- Kombinera inte blandade filformat eller olika dataprodukter i en enda mappstruktur.
Dricks
Mappstrukturerna bör ha partitioneringsstrategier som kan optimera åtkomstmönster och lämpliga filstorlekar. I de kurerade zonerna planerar du strukturen baserat på optimal hämtning, var försiktig med att välja en partitionsnyckel med hög kardinalitet, vilket leder till överpartitionering, vilket i sin tur leder till suboptimala filstorlekar.
Mer information om datasjözoner finns i Data lake-zoner och -containrar
Efterlevnadsstöd
Delta Lake lägger till ett transaktionellt lager för att tillhandahålla strukturerad datahantering ovanpå din datasjö. Detta tillägg kan avsevärt förenkla och påskynda din möjlighet att hitta och ta bort personlig information (kallas även "personuppgifter") på konsumentbegäran. Transaktionslagret stöder åtgärder som DELETE, UPDATE och MERGE. Mer information finns i Metodtips: GDPR-efterlevnad med Delta Lake.
Sammanfattning
Tillämpa de datastandardiseringar som anges i den här artikeln på din plattform. Börja med Delta Lake-format och börja sedan lägga till processer för optimering och efterlevnad. Du kan välja att skapa en tjänst som kör några av dina optimeringsvägar enligt ett schema eller skapa en efterlevnadstjänst som tar bort personlig information.