Vad är datatransformering i Azure Databricks?
Datatransformering är processen att konvertera, rensa och strukturera data till ett användbart format. Datatransformeringen följer vanligtvis Databricks medallion-arkitekturen att stegvis förfina data från rådata till ett format som företaget kan använda.
Följande diagram visar en datapipeline som innehåller en serie datatransformeringar som omvandlar raw_customers
datauppsättningen till clean_customers
datauppsättningen genom att släppa kunddata utan kundnamn i det här exemplet. Den raw_transactions
-data omvandlas till clean_transactions
genom att ta bort transaktioner med ett värde på den noll dollar. En resulterande dataset med namnet sales_report
är resultatet av att slå samman clean_customers
och clean_transactions
. Analytiker kan använda sales_report
för analys och business intelligence.
Typer av datatransformeringar
Databricks tar hänsyn till två typer av datatransformeringar: deklarativa och procedurer. Datapipelinen i föregående exempel kan uttryckas med hjälp av något av paradigmen.
Deklarativa omvandlingar fokuserar på önskat resultat i stället för hur det ska uppnås. Du anger logiken för omvandlingen med abstraktioner på högre nivå, och DLT avgör det mest effektiva sättet att köra den.
Processuella datatransformationer fokuserar på att utföra beräkningar via explicita instruktioner. Dessa beräkningar definierar den exakta sekvensen av åtgärder för att manipulera data. Proceduren ger mer kontroll över körningen men på bekostnad av större komplexitet och högre underhåll.
Välja mellan deklarativ och processuell datatransformering
Deklarativ datatransformering med DLT är bäst när:
- Du behöver snabb utveckling och distribution.
- Dina datapipelines har standardmönster som inte kräver detaljkontroll över exekveringen.
- Du behöver inbyggda datakvalitetskontroller.
- Underhåll och läsbarhet är högsta prioritet.
Processuell datatransformering med Apache Spark-kod är bäst när:
- Du migrerar en befintlig Apache Spark-kodbas till Databricks.
- Du behöver finmaskig kontroll över exekveringen.
- Du behöver åtkomst till API:er på låg nivå, till exempel
MERGE
ellerforeachBatch
. - Du måste skriva data till Kafka- eller externa Delta-tabeller.