Lägga till SQL-transformeringar
Du kan inkludera SQL-baserade tabeller i omvandlingsuppgifter. En SQL-transformering gör det möjligt för dig att ställa en SQL SELECT-fråga i en pipeline för att definiera komplexa eller enkla transformeringar. Du kan använda SQL-assistenten för att generera en fråga med hjälp av generativ AI. Du kan också använda makron för att anpassa frågan att köras om en initial laddning eller inkrementell laddning utförs.
Mer information om att skapa en omvandlingsuppgift finns i Omvandla data.
Lägga till en SQL-omvandling
För att lägga till en SQL-omvandling i en Omvandlingsdatauppgift:
-
I Omvandla väljer du de datauppsättningar som ska ingå i frågan och klickar sedan på Lägg till SQL-omvandling.
Ange namnet på transformeringen i Name. Mer information om de andra inställningarna finns i Inställningar.
Klicka på Lägg till när du är redo att skapa SQL-omvandlingen.
Redigera SQL-omvandling visas.
-
Skriv frågan för att returnera den SQL-baserade tabellen i frågerutan.
Mer information finns i Redigera SQL-frågan.
-
Klicka på Run query.
Detta hämtar metadata och en förhandsgranskning av data.
-
Granska parametrarna i Parameters.
Mer information finns i Parametrar.
-
Ange en primärnyckel i Metadata.
Mer information finns i Metadata.
-
När du är nöjd med resultatet av frågan klickar du på Save and close. Datauppsättningen läggs nu till i listan över mål och du kan förhandsgranska den.
Redigera SQL-frågan
Skriv frågan för att returnera den SQL-baserade tabellen i frågerutan. Frågan kan bara läsa från de källdatauppsättningar du har valt, men du kan lägga till fler källdatauppsättningar med Lägg till.
-
Du kan skapa en sats för att läsa in en datauppsättning från Objekt. Klicka på
och sedan Generera SELECT-sats i redigeraren.
-
Du kan kopiera namnet på en datauppsättning till Urklipp genom att klicka på
och sedan Kopiera.
-
Klicka på > för att flytta en datauppsättning eller ett kolumnnamn till redigeraren.
-
Klicka på
för att söka efter och ersätta text i redigeraren.
Om du använder inkrementell laddning kan du använda makron för att anpassa frågan att köras om en initial laddning eller inkrementell laddning utförs.
Mer information finns i Använda makron för att anpassa frågan efter laddningstyp.
Snabbkommandon för tangentbord
-
Ctrl+F Sök och ersätt
-
Ctrl+/ Kommentera/avkommentera den aktuella raden
-
Ctrl+Enter Kör frågan
-
Ctrl+Z Ångra
-
Ctrl+Y Gör om
Förhandsgranskar resultat
Du kan förhandsgranska resultaten med ett urval av data i Resultat.
Du måste ha tilldelats följande roller för att kunna förhandsgranska data:
-
Kan visa data i det utrymme där kopplingen finns.
-
Kan visa i det utrymme där projektet finns.
Resultat från användning av ett urval av data visas. Du kan ställa in hur många datarader som ska tas med i exemplet med Antal rader.
-
Klicka på Senast körda fråga för att se den senast körda tidpunkten och varaktigheten för den senast körda frågan.
Filtrera resultat
Du kan filtrera resultaten efter en eller flera kolumner.
-
Klicka på
på den första kolumnen att filtrera efter och sedan Filter.
Välj vilken operator som ska användas och vilket värde som ska filtreras efter.
Du kan lägga till fler kolumnfilter genom att klicka på Add filter.
Filtret kommer bara att påverka de befintliga exempeldata.
Sortera resultaten
Du kan också sortera dataurvalet via en specifik kolumn.
-
Klicka på
i kolumnen att sortera efter och sedan Sortera stigande eller Sortera fallande.
Sorteringen kommer bara att påverka befintliga exempeldata. Om du använde ett filter för att bara inkludera ordrar från 2024 och inverterar sorteringsordningen, kommer exempeldata fortfarande bara innehålla ordrar från 2024.
Hantera visade kolumner
Du kan välja vilka kolumner som ska visas i resultaten. Urvalet sparas inte när du sparar transformeringen.
-
Dölj en kolumn genom att klicka på
på kolumnen och sedan på Dölj kolumn.
-
Hantera visning av alla kolumner genom att klicka på
på valfri kolumn och sedan på Visade kolumner.
Parametrar
Klicka på Parameters för att ändra parametrarna i SELECT-frågan. Parametern ska mappas till käll- eller målobjekt.
Parametrar mappas automatiskt när du:
-
Använd Generera SELECT-sats i redigeraren i Objekt.
-
Klicka på > för att flytta ett dataset eller kolumnnamn till redigeraren.
-
Ett parameternamn matchar ett tabellnamn från tabellerna i Objekt.
Du kan mappa till
-
Historik typ 2-strukturer (_history)
-
Aktuella strukturer
-
Målobjekt
Du kan bara mappa målobjekt när en parameter har definierats inuti ett inkrementellt makro.
Metadata
Du kan redigera inställningarna för metadata i Metadata.
-
Ställ in primära nycklar i kolumnen Nycklar.
-
Ställ in om kolumnen är nullbar i kolumnen Nullbar.
-
Välj en kolumn och klicka på Redigera för att ställa in kolumnens namn, nyckel, nullbarhet och datatyp.
Köra frågan
Du kan köra frågan när som helst under utvecklingen genom att klicka på Kör fråga. Första gången du kör en fråga hämtas metadata. När frågan har körts kan du gå till Metadata och ange en primärnyckel, vilket krävs för att transformeringen ska slutföras.
Använda makron för att anpassa frågan efter laddningstyp
Om du använder inkrementell laddning kan du använda makron för att anpassa frågan att köras om en initial laddning eller inkrementell laddning utförs.
Välj makrot och lägg till frågan i motsvarande sats.
-
Q_RUN_INCREMENTAL lägger till en sats där du kan placera en fråga som enbart körs då inkrementell laddning utförs.
-
Q_RUN_INITIAL_LOAD lägger till en sats där du kan placera en fråga som enbart körs då initial laddning utförs.
Du behöver inte ange den fullständiga frågan för varje makro. Du kan justera eller lägga till kod baserat på ditt användningsfall.
Användningsfall: inkrementellt filter med datumintervall:
I detta användningsfall behöver en uppsättning ordnade data omvandlas med anpassad SQL. Eftersom detta är en stor datauppsättning vill du inkludera inkrementell filtrering för att säkerställa att den inkrementella laddningen enbart beaktar de senaste 12 timmarna.
Detta är en basfråga:
Detta filter används i den inkrementella körningen där du enbart beaktar order som lagts till under senaste 12 timmarna:
Detta är den fullständiga frågan som använder filtreringsmakro och har tabellnamnen ersatta med $(TABLE)-notation:
Det resulterar i en initial laddningsfråga:
Och en inkrementell laddningsfråga:
Användningsfall: inkrementellt filter som använder data i målet:
I detta användningsfall behöver en uppsättning ordnade data omvandlas med anpassad SQL. Eftersom dessa order är en stor datauppsättning vill du inkludera inkrementell filtrering för att säkerställa att den inkrementella laddningen enbart beaktar orderinformation som är nyare än data i måltabellen. Du vill även markera om en rad har bearbetats av den initiala laddningen eller en inkrementell laddning.
Detta är en basfråga:
Detta filter används under inkrementell körning. “ORDERS_DERIVED” är namnet på måldatauppsättningen.
Detta är den fullständiga frågan som använder filtreringsmakro och har tabellnamnen ersatta med $(TABLE-notation. LOADED_BY är angivet som INIT om laddningen är initial och INCR om laddningen är inkrementell:
Det resulterar i en initial laddningsfråga:
Och en inkrementell laddningsfråga:
Inställningar
Klicka på för att redigera inställningarna för SQL-transformeringen.
Ange ett namn för måldatauppsättningen i Namn.
Du kan även lägga till en längre beskrivning i Beskrivning.
I Materialisering väljer du om omvandlad utdata ska materialiseras eller inte. Du kan välja att ärva inställningen från inställningarna för datauppgiften.
-
På skapar tabeller och hantera tillhörande ELT-bearbetning.
-
Av skapar vyer som utför omvandlingar direkt.
I Historisk datalagring (typ 2) väljer du om du vill spara historiska data. Du kan välja att ärva inställningen från inställningarna för datauppgiften. Den här inställningen kräver att Materialisering är aktiverat.
Inkrementella laddningar gör att du kan justera frågan för en inkrementell dataladdning genom att använda filter eller andra villkor för att minska datauppsättningen som bearbetas med makron. Inkrementell laddning är enbart tillgänglig om data är materialiserat som tabeller.
-
När Inkrementell laddning är På
Uppgiftens första körning utför initial laddning och infogar alla resultat av frågan i din måltabell. Efterföljande körningar utför inkrementella laddningar med filter eller specifika villkor som du har definierat för inkrementell bearbetning. Under inkrementell laddning bearbetar uppgiften enbart data som en uppdatering eller infogning. Raderingar hanteras inte.
-
När Inkrementell laddning är Av
Uppgiftens första körning utför initial laddning och infogar alla resultat av frågan i din måltabell. Efterföljande körningar bearbetar alla resultat av frågan genom att jämföra med din måltabell och bearbeta poster som är nya, ändrade eller raderade.
Metodtips
-
När du lägger till en SQL-omvandling definieras inte en primärnyckel automatiskt. Lägg till en nyckel till datauppsättningen på fliken Dataset.
-
Skapa inte kolumnrubriker i omvandlade utdata manuellt.
-
Använd inte SELECT med * eftersom det kan returnera olika kolumner varje gång frågan körs. Om ett schema har ändrats ska även frågan ändras på motsvarande sätt och Beskriv tabell göras igen. Sedan kan du redigera kolumner och justera tabeller.