SQL-transformaties toevoegen
U kunt SQL-gebaseerde tabellen opnemen in transformatietaken. Met een SQL-transformatie kunt u een SQL SELECT query invoeren in een gegevenspijplijn om complexe of simpele transformaties te definiëren. U kunt de SQL-assistent een query laten genereren vanuit een tekstprompt met behulp van generatieve AI. U kunt ook macro's gebruiken om de query aan te passen om uitgevoerd te worden als een initiële lading of een incrementele lading wordt uitgevoerd.
Raadpleeg Gegevens transformeren voor meer informatie over het maken van een transformatietaak.
Een SQL-transformatie toevoegen
Ga als volgt te werk om een SQL-tranformatie toe te voegen in een transformatiegegevenstaak:
-
Selecteer in Transformeren de gegevensverzamelingen die moeten worden opgenomen in de query en klik op SQL-transformatie toevoegen.
Stel de naam van de transformatie in in Name. Ga voor meer informatie over de andere instellingen naar Instellingen.
Klik op Toevoegen als u klaar bent om de SQL-transformatie te maken.
SQL-transformatie bewerken wordt weergegeven.
-
Schrijf de query om de op SQL gebaseerde tabel te retourneren in het queryvenster.
Ga voor meer informatie naar De SQL-query bewerken.
-
Klik op Run query.
Hiermee worden metagegevens en een voorbeeld van de gegevens opgehaald.
-
Controleer de parameters in Parameters.
Ga voor meer informatie naar Parameters.
-
Stel een primaire sleutel in Metadata.
Ga voor meer informatie naar Metagegevens.
-
Wanneer u tevreden bent met de resultaten van de query, klikt u op Opslaan en sluiten. De gegevensverzameling wordt nu toegevoegd aan de lijst met doelen en u kunt er een voorbeeld van bekijken.
De SQL-query bewerken
Typ de query om de op SQL gebaseerde tabel te retourneren in het queryvenster. De query kan alleen lezen van de brongegevensverzamelingen die u hebt geselecteerd, maar u kunt met behulp van Toevoegen meer brongegevensverzamelingen toevoegen.
-
U kunt een instructie maken om een dataset te laden vanuit Objecten. Klik op
en vervolgens op Select-instructie genereren in editor.
-
U kunt de naam van een dataset naar het klembord kopiëren door op
en vervolgens op Kopiëren te klikken.
-
Klik op > om een dataset- of kolomnaam naar de editor te verplaatsen.
-
Klik op
om tekst in de editor te zoeken en te vervangen.
Als incrementele lading wordt gebruikt, kunt u Macro's gebruiken om de query aan te passen om uitgevoerd te worden als een initiële lading of een incrementele lading wordt uitgevoerd.
Ga voor meer informatie naar Macro's gebruiken om de query aan te passen aan ladingstype.
Sneltoetsen
-
Ctrl+F Zoeken en vervangen
-
Ctrl+/ De huidige regel van commentaar voorzien/commentaar verwijderen
-
Ctrl+Enter De query uitvoeren
-
Ctrl+Z Ongedaan maken
-
Ctrl+Y Opnieuw uitvoeren
Resultaten bekijken
U kunt de resultaten controleren met behulp van een sample van de gegevens in Resultaten.
De volgende rollen moeten aan u zijn toegewezen om gegevens te kunnen controleren:
-
Kan gegevens bekijken in de ruimte waarin de verbinding zich bevindt.
-
Kan bekijken in de ruimte waarin het project zich bevindt.
Resultaten worden weergegeven op basis van een sample van de gegevens. U kunt met Aantal rijen instellen hoeveel gegevensrijen in het voorbeeld worden opgenomen.
-
Klik op Laatst uitgevoerde query om de laatste uitvoeringstijd en duur van de laatst uitgevoerde query te zien.
Resultaten filteren
U kunt de resultaten filteren op een of meer kolommen.
-
Klik op
in de eerste kolom om te filteren en klik vervolgens op Filter.
Selecteer welke operator u wilt gebruiken en op welke waarde u wilt filteren.
U kunt meer kolomfilters toevoegen door op Filter toevoegen te klikken.
Het filter is alleen van invloed op de bestaande voorbeeldgegevens.
Resultaten sorteren
U kunt de gegevensample sorteren op een specifieke kolom.
-
Klik
op de kolom waarop u wilt sorteren en vervolgens Oplopend sorteren of Aflopend sorteren.
Het sorteren is allleen van invloed op de bestaande voorbeeldgegevens. Als u een filter hebt gebruikt om alleen orders van 2024 op te nemen en u keert de sorteervolgorde om, dan bevatten de voorbeeldgegevens nog steeds alleen orders van 2024.
Beheer van weergegeven kolommen
U kunt selecteren welke kolommen u wilt weergeven in de resultaten. De selectie wordt niet opgeslagen wanneer u de transformatie opslaat.
-
Verberg een kolom door te klikken op
op de kolom en vervolgens op Kolom verbergen.
-
Beheer de weergave van alle kolommen door te klikken op
op een willekeurige kolom en vervolgens op Kolommen weergeven.
Parameters
Klik op Parameters om de parameters in de SELECT-query te wijzigen. De parameters moeten zijn toegewezen aan de bron- of doelobjecten.
Parameters worden automatisch toegewezen wanneer u:
-
Gebruik Select-instructie genereren in editor in Objecten.
-
Klik op > om een dataset of kolomnaam naar de editor te verplaatsen.
-
Een parameternaam komt overeen met een tabelnaam van de tabellen in Objecten.
U kunt toewijzen aan
-
Geschiedenis type 2-structuren (_history)
-
Huidige structuren
-
Doelobjecten
U kunt alleen doelobjecten toewijzen wanneer een parameter in een incrementele macro is gedefinieerd.
Metagegevens
U kunt de instellingen voor metagegevens bewerken in Metadata.
-
Stel primaire sleutels in de kolom Sleutel in.
-
Stel in de kolom Null-waarde toegestaan in of een null-waarde is toegestaan voor de kolom.
-
Selecteer een kolom en klik op Bewerken om een kolomnaam, sleutel, null-waarde toestaan en gegevenstype in te stellen.
De query uitvoeren
U kunt de query op elk moment tijdens de ontwikkeling uitvoeren door op Query uitvoeren te klikken. De eerste keer dat u een query uitvoert, worden metagegevens opgehaald. Wanneer de query is uitgevoerd, kunt u naar Metadata gaan en een primaire sleutel instellen, wat vereist is om de transformatie te voltooien.
Macro's gebruiken om de query aan te passen aan ladingstype
Als incrementele lading wordt gebruikt, kunt u Macro's gebruiken om de query aan te passen om uitgevoerd te worden als een initiële lading of een incrementele lading wordt uitgevoerd.
Selecteer de macro en voeg de query in de respectievelijke clausule toe.
-
Q_RUN_INCREMENTAL voegt een clausule toe waarin u een query kunt plaatsen die alleen wordt uitgevoerd wanneer een incrementele lading wordt uitgevoerd.
-
Q_RUN_INITIAL_LOAD voegt een clausule toe waarin u een query kunt plaatsen die alleen wordt uitgevoerd wanneer een initiële lading wordt uitgevoerd.
U hoeft niet de volledige query te specificeren voor elke macro. U kunt code aanpassen of toevoegen op basis van uw gebruiksscenario.
Usecase: incrementeel filter met behulp van datumbereik:
In dit gebruiksscenario moet een set bestellingsgegevens worden getransformeerd met aangepaste SQL. Omdat dit de grootste gegevensset is, moet u incrementeel filteren opnemen om ervoor te zorgen dat de incrementele lading alleen bestellingen van de afgelopen 12 uur in acht neemt.
Dit is de basisquery:
Dit is het filter dat moet worden toegepast tijdens de incrementele uitvoering, waarbij u alleen rekening houdt met bestellingen die de afgelopen 12 uur zijn toegevoegd:
Dit is de volledige query, waarbij de filtermacro wordt gebruikt en met de tabelnamen vervangen met de notatie ${TABLE}:
Dit resulteert in een initiële ladingsquery:
En een incrementele ladingsquery:
Usecase: incrementeel filter met gebruik van gegevens in het doel:
In dit gebruiksscenario moet een set bestellingsgegevens worden getransformeerd met aangepaste SQL. Omdat bestellingen een grote gegevensset zijn, moet u incrementeel filteren opnemen om ervoor te zorgen dat de incrementele lading alleen rekening houdt met records voor bestellingsdetails die nieuwer zijn dan de gegevens in de doeltabel. U moet ook markeren of een rij is verwerkt door de initiële lading of een incrementele lading.
Dit is de basisquery:
Dit is het filter dat moet worden toegepast tijdens de incrementele uitvoering. “ORDERS_DERIVED” is de naam van de doelgegevensset.
Dit is de volledige query, waarbij de filtermacro wordt gebruikt en met tabelnamen vervangen met de notatie ${TABLE}. LOADED_BY is ingesteld op INIT als de lading initieel is en op INCR als de lading incrementeel is:
Dit resulteert in een initiële ladingsquery:
En een incrementele ladingsquery:
Instellingen
Klik op om de instellingen van de SQL-transformatie te bewerken.
Voer een naam in voor de doelgegevensverzameling in Naam.
U kunt ook een langere beschrijving toevoegen in Beschrijving.
Selecteer in Materialisatie of de getransformeerde uitvoer gematerialiseerd moet worden of niet. U kunt ervoor kiezen de instelling over te nemen vanuit de gegevenstaakinstellingen.
-
Met Aan worden tabellen gemaakt en wordt de bijbehorende ELT-verwerking afgehandeld.
-
Met Uit worden weergaven gemaakt die transformaties ad-hoc uitvoeren.
Selecteer in Historische gegevensopslag (Type 2) of u historische gegevens wilt bewaren. U kunt ervoor kiezen de instelling over te nemen vanuit de gegevenstaakinstellingen. Deze instelling vereist dat Materialisatie aan staat.
Met Incrementele lading kunt u de query aanpassen voor een incrementele gegevenslading door filters of andere voorwaarden toe te passen om de set gegevens die wordt verwerkt te verkleinen met behulp van macro's. Incrementele lading is alleen beschikbaar als de gegevens worden gematerialiseerd als tabellen.
-
Wanneer Incrementele lading is ingesteld op Aan
De eerste uitvoering van de taak voert een initiële lading uit, waarbij alle resultaten van de query in uw doeltabel worden ingevoerd. Opvolgende uitvoeringen voeren incrementele ladingen uit waarbij filters of specifieke voorwaarden worden gebruikt die u hebt gedefinieerd voor incrementele verwerking. Tijdens de incrementele lading verwerkt de taak alleen gegevens als een update of een invoeging, verwijderingen worden niet beheerd.
-
Wanneer Incrementele lading is ingesteld op Uit
De eerste uitvoering van de taak voert een initiële lading uit, waarbij alle resultaten van de query in uw doeltabel worden ingevoerd. Opvolgende uitvoeringen verwerken alle resultaten van de query door deze te vergelijken met uw doeltabel, en verwerkingsrecords die nieuw, gewijzigd of verwijderd zijn.
Aanbevolen procedure
-
Wanneer u een SQL-transformatie toevoegt, wordt niet automatisch een primaire sleutel gedefinieerd. Voeg een sleutel toe aan de gegevensverzameling in het tabblad Gegevensverzameling.
-
Maak niet handmatig kolomkoppen aan in de getransformeerde uitvoer.
-
Vermijd het gebruik van SELECT met *, omdat hierdoor verschillende kolommen worden weergegeven elke keer nadat een query is uitgevoerd. Als het schema is gewijzigd, wijzig de query dan ook en voer Tabel omschrijven nogmaals uit. U kunt alle kolommen bewerken en tabellen wijzigen.