Lägga till SQL-transformeringar
Du kan inkludera SQL-baserade tabeller i transformeringsuppgifter. En SQL-transformering låter dig mata in en SQL SELECT-fråga i en pipeline för att definiera komplexa eller enkla transformeringar. Du kan låta SQL assistant generera en fråga från en textprompt med hjälp av generativ AI. Du kan också använda makron för att anpassa frågan så att den körs om en initial laddning eller en inkrementell laddning utförs.
Du kan använda SQL workbench för att utforska data och validera skrivskyddad SQL innan du lägger till SQL i en transformering. Mer information finns i Utforska data med SQL Workbench.
Mer information om hur du skapar en transformeringsuppgift finns i Transformera data.
Lägga till en SQL-transformering
Så här lägger du till en SQL-transformering i en Transformera-datauppgift:
-
I Transformera väljer du de datauppsättningar som ska inkluderas i frågan och klickar på Lägg till SQL-transformering.
Ange namnet på transformeringen i Namn. Mer information om de andra inställningarna finns i Inställningar.
Klicka på Lägg till när du är redo att skapa SQL-transformeringen.
Redigera SQL-transformering visas.
-
Skriv frågan för att returnera den SQL-baserade tabellen i frågefönstret.
Mer information finns i Redigera SQL-frågan.
-
Klicka på Kör fråga.
Detta hämtar metadata och en förhandsgranskning av data.
-
Granska parametrarna i Parametrar.
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å Spara och stäng. 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ågefönstret. Frågan kan bara läsa från de källdatauppsättningar som 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 ladda en datauppsättning från Objekt. Klicka på
och sedan på Lägg till SELECT-sats.
-
Du kan kopiera namnet på en datauppsättning till urklipp genom att klicka på
och sedan på Kopiera.
-
Klicka på > för att flytta en datauppsättning eller ett kolumnnamn till redigeraren.
-
Klicka på
för att söka och ersätta text i redigeraren.
Om inkrementell laddning används kan du använda Makron för att anpassa frågan så att den körs om en initial laddning eller en inkrementell laddning utförs.
Mer information finns i Använda makron för att anpassa frågan till laddningstyp.
Kortkommandon
-
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örhandsgranska resultat
Du kan förhandsgranska resultaten med hjälp av 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 utrymmet där kopplingen finns.
-
Kan visa i utrymmet där projektet finns.
Resultat som använder ett urval av data visas. Du kan ställa in hur många datarader som ska inkluderas i urvalet med Antal rader.
-
Klicka på Senast körda fråga för att se den senaste körtiden och varaktigheten för den senast körda frågan.
Filtrera resultaten
Du kan filtrera resultaten efter en eller flera kolumner.
-
Klicka på
på den första kolumnen att filtrera efter och sedan på Filtrera.
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å Lägg till filter.
Filtret påverkar endast befintliga exempeldata.
Sortera resultaten
Du kan sortera dataurvalet efter en specifik kolumn.
-
Klicka på
på kolumnen att sortera efter och sedan på Sortera stigande eller Sortera fallande.
Sorteringen påverkar endast befintliga exempeldata. Om du använde ett filter för att endast inkludera beställningar från 2024 och inverterar sorteringsordningen, kommer exempeldata fortfarande bara att innehålla beställningar från 2024.
Hantera visade kolumner
Du kan välja vilka kolumner som ska visas i resultaten. Valet sparas inte när du sparar transformeringen.
-
Dölj en kolumn genom att klicka på
på kolumnen och sedan på Dölj kolumn.
-
Hantera visningen av alla kolumner genom att klicka på
på valfri kolumn och sedan på Visade kolumner.
Parametrar
Klicka på Parametrar för att ändra parametrarna i SELECT-frågan. Parametrarna bör mappas till käll- eller målobjekten.
Parametrar mappas automatiskt när du:
-
Använder Lägg till SELECT-sats i Objekt.
-
Klickar på > för att flytta en datauppsättning eller ett 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 definieras inuti ett inkrementellt makro.
Metadata
Du kan redigera metadatainställningarna i Metadata.
-
Ange primärnycklar i kolumnen Nyckel.
Du kan få förslag på lämpliga primärnycklar och validera nycklarna genom att klicka på Föreslå och validera nycklar.
-
Ange om kolumnen kan vara null i kolumnen Kan vara null.
-
Markera en kolumn och klicka på Redigera för att ange kolumnnamn, nyckel, kan vara null och datatyp.
Föreslå och validera nycklar
Du kan få förslag på lämpliga primärnycklar och validera nycklarna genom att klicka på Föreslå och validera nycklar. Den fullständiga SQL-frågan måste ha körts minst en gång.
-
GenAI används för att föreslå nycklar om du har valt att delta i inferens över flera regioner. Detta gör att Qlik Cloud kan skicka inferensbegäranden utanför din klientorganisationsregion. Mer information och den senaste informationen om platser för inferensbearbetning finns i Aktivering av regionöverskridande inferens.
Anteckning om informationQlik kontrollerar inte den genererade utdatan. På grund av GenAI:s natur kanske svaren inte producerar SQL som uppfyller dina krav utan granskning eller redigering. Den genererade frågan betraktas som "Innehåll" enligt villkoren i Qliks kundavtal.Information om Qlik Cloud GovernmentGenAI-assisterade nyckelförslag är inte tillgängliga i Qlik Cloud Government.
Om GenAI inte är aktiverat kommer nycklar att föreslås programmatiskt baserat på källtabellens data.
-
Validering kommer alltid att utföras utan att använda GenAI genom att köra en SQL-fråga som säkerställer att det inte finns några dubbletter eller NULL-värden.
Anteckning om informationValidering är endast tillgänglig när frågan har returnerat data.
-
Föreslå och validera nycklar
Detta granskar frågan och källtabellens nycklar och föreslår giltiga primärnycklar. Den här åtgärden kan ta lite tid.
-
Validera nycklar
Detta validerar de befintliga primärnycklarna för att säkerställa att de är unika och inte är NULL. Den här åtgärden kan ta lite tid.
-
Föreslå utan validering
Detta granskar frågan och källtabellens nycklar och föreslår primärnycklar utan validering. Granska och validera nycklarna manuellt innan du tillämpar dem.
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 körs kan du gå till Metadata och ange en primärnyckel, vilket krävs för att transformeringen ska bli komplett.
Använda makron för att anpassa frågan till laddningstyp
Om inkrementell laddning används kan du använda Makron för att anpassa frågan så att den körs om en initial laddning eller en inkrementell laddning utförs.
Välj makrot och lägg till frågan inuti respektive sats.
-
Q_RUN_INCREMENTAL lägger till en sats där du kan placera en fråga som bara körs när en inkrementell laddning utförs.
-
Q_RUN_INITIAL_LOAD lägger till en sats där du kan placera en fråga som bara körs när en initial laddning utförs.
Du behöver inte ange den fullständiga frågan med varje makro. Du kan justera eller lägga till kod baserat på ditt användningsfall.
Användningsfall: Inkrementellt filter med datumintervall:
I det här användningsfallet behöver en uppsättning orderdata transformeras 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 endast tar hänsyn till beställningar från de senaste 12 timmarna.
Detta är basfrågan:
Detta är filtret som ska tillämpas under den inkrementella körningen, där du bara tar hänsyn till beställningar som lades till de senaste 12 timmarna:
Detta är den fullständiga frågan, med filtermakrot och med tabellnamn ersatta med notationen ${TABLE}:
Detta resulterar i en fråga för initial laddning:
Och en fråga för inkrementell laddning:
Användningsfall: Inkrementellt filter med data i målet:
I det här användningsfallet behöver en uppsättning orderdata transformeras med anpassad SQL. Eftersom beställningar är en stor datauppsättning vill du inkludera inkrementell filtrering för att säkerställa att den inkrementella laddningen endast tar hänsyn till orderdetaljposter som är nyare än data i måltabellen. Du vill också markera om en rad bearbetades av den initiala laddningen eller en inkrementell laddning.
Detta är basfrågan:
Detta är filtret som ska tillämpas under den inkrementella körningen. "ORDERS_DERIVED" är namnet på måldatauppsättningen.
Detta är den fullständiga frågan, med filtermakrot och med tabellnamn ersatta med notationen ${TABLE}. LOADED_BY är inställt på INIT om laddningen är initial, och INCR om laddningen är inkrementell:
Detta resulterar i en fråga för initial laddning:
Och en fråga för inkrementell laddning:
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.
Bästa praxis
-
När du lägger till en SQL-transformering definieras inte en primärnyckel automatiskt. Lägg till en nyckel till datauppsättningen på fliken Datauppsättning.
-
Skapa inte kolumnrubriker i den transformerade utdatan manuellt.
-
Undvik att använda SELECT med *, eftersom detta kan returnera olika kolumner varje gång frågan körs. Om det skedde en ändring i schemat ändrar du frågan i enlighet med detta och utför Beskriv tabell igen. Sedan kan du redigera kolumner och justera tabeller.