Lägga till SQL-transformeringar
Du kan inkludera SQL-baserade tabeller i transformeringsaktiviteter. En SQL-transformering gör att du kan ange 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 även använda makron för att anpassa frågan så att den körs om en första laddning eller en inkrementell laddning utförs.
Mer information om hur du skapar en transformeringsaktivitet finns i Transformera data.
Lägga till en SQL-transformering
Så här lägger du till en SQL-transformering i en Transform-dataaktivitet:
-
I Transform väljer du de datauppsättningar som ska ingå i frågan och klickar på Add SQL transformation.
Ange namnet på transformeringen i Name. Mer information om övriga inställningar finns i Inställningar.
Klicka på Add när du är redo att skapa SQL-transformeringen.
Edit SQL transformation visas.
-
Skriv frågan som ska returnera den SQL-baserade tabellen i frågefönstret.
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 som ska returnera den SQL-baserade tabellen i frågefönstret. Frågan kan endast läsa från de källdatauppsättningar som du har valt, men du kan lägga till fler källdatauppsättningar med Add.
-
Du kan skapa en instruktion för att läsa in en datauppsättning från Objects. Klicka på
och sedan på Generate select statement in editor.
-
Du kan kopiera namnet på en datauppsättning till urklipp genom att klicka på
och sedan på Copy.
-
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 Macros för att anpassa frågan så att den körs om en första laddning eller en inkrementell laddning utförs.
Mer information finns i Använda makron för att anpassa frågan efter laddningstyp.
Tangentbordsgenvägar
-
Ctrl+F Sök och ersätt
-
Ctrl+/ Kommentera/avkommentera aktuell rad
-
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 exempeldata i Results.
Du måste ha tilldelats följande roller för att kunna förhandsgranska data:
-
Can view data i det utrymme där kopplingen finns.
-
Can view i det utrymme där projektet finns.
Resultat som använder exempeldata visas. Du kan ange hur många datarader som ska ingå i exempeldata med Number of rows.
-
Klicka på Last executed query för att se senaste körtid och varaktighet 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 du vill filtrera efter och sedan på Filter.
Välj vilken operatör som ska användas och vilket värde du vill filtrera efter.
Du kan lägga till fler kolumnfilter genom att klicka på Add filter.
Filtret påverkar endast befintliga exempeldata.
Sortera resultaten
Du kan sortera exempeldata efter en specifik kolumn.
-
Klicka på
på den kolumn du vill sortera efter och sedan på Sort ascending eller Sort descending.
Sorteringen påverkar endast befintliga exempeldata. Om du använde ett filter för att endast inkludera order från 2024 och vänder på sorteringsordningen, kommer exempeldata fortfarande endast att innehålla order 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å Hide column.
-
Hantera visningen av alla kolumner genom att klicka på
på valfri kolumn och sedan på Displayed columns.
Parametrar
Klicka på Parameters för att ändra parametrarna i SELECT-frågan. Parametrarna ska mappas till käll- eller målobjekten.
Parametrar mappas automatiskt när du:
-
Använder Generate select statement in editor i Objects.
-
Klickar på > för att flytta en datauppsättning eller ett kolumnnamn till redigeraren.
-
Ett parameternamn matchar ett tabellnamn från tabellerna i Objects.
Du kan mappa till
-
Historiktyp 2-strukturer (_history)
-
Aktuella strukturer
-
Målobjekt
Du kan endast mappa målobjekt när en parameter har definierats i ett inkrementellt makro.
Metadata
Du kan redigera metadatainställningarna i Metadata.
-
Ange primärnycklar i kolumnen Key.
Du kan få förslag på lämpliga primärnycklar och validera nycklarna genom att klicka på Suggest and validate keys.
-
Ange om kolumnen kan innehålla nullvärden i kolumnen Nullable.
-
Välj en kolumn och klicka på Edit för att ange kolumnnamn, nyckel, nullbarhet och datatyp.
Föreslå och validera nycklar
Du kan få förslag på lämpliga primärnycklar och validera nycklarna genom att klicka på Suggest and validate keys. 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 tillåta slutledning över regioner. Detta gör att Qlik Cloud kan skicka slutledningsförfrågningar utanför din klientorganisations region. Mer information och den senaste informationen om bearbetningsplatser för slutledning finns i Aktivering av regionöverskridande inferens.
Anteckning om informationQlik kontrollerar inte det genererade resultatet. På grund av hur GenAI fungerar kan svaren producera SQL som inte uppfyller dina krav utan granskning eller redigering. Den genererade frågan anses vara ”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 föreslås nycklar programmatiskt baserat på källtabellens data.
-
Validering utförs alltid 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.
-
Suggest and validate keys
Detta granskar frågan och källtabellens nycklar och föreslår giltiga primärnycklar. Den här åtgärden kan ta lite tid.
-
Validate keys
Detta validerar de befintliga primärnycklarna för att säkerställa att de är unika och inte innehåller NULL-värden. Den här åtgärden kan ta lite tid.
-
Suggest without validation
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å Run query. 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 vara fullständig.
Använda makron för att anpassa frågan efter laddningstyp
Om inkrementell laddning används kan du använda Macros för att anpassa frågan så att den körs om en första laddning eller en inkrementell laddning utförs.
Välj makrot och lägg till frågan i respektive sats.
-
Q_RUN_INCREMENTAL lägger till en sats där du kan placera en fråga som endast 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 endast körs när en första laddning utförs.
Du behöver inte ange hela 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 order 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 endast tar hänsyn till order som lagts till under 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 första 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 order ä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 första laddningen eller en inkrementell laddning.
This is the base query:
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 anges till INIT om laddningen är en första laddning, och INCR om laddningen är inkrementell:
This results in an initial load query:
And an incremental load query:
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 för datauppsättningen på fliken Dataset.
-
Skapa inte kolumnrubriker i det transformerade resultatet manuellt.
-
Undvik att använda SELECT med *, eftersom detta kan returnera olika kolumner varje gång frågan körs. Om schemat har ändrats ändrar du frågan i enlighet med detta och utför Describe table igen. Sedan kan du redigera kolumner och justera tabeller.