Bronkwalificatietransformatie in Informatica met VOORBEELD

⚡ Slimme samenvatting

De Source Qualifier-transformatie in Informatica vertegenwoordigt de rijen die de Integration Service leest uit een relationele bron of een plat bestand. Hiermee kan een ontwikkelaar de standaardquery overschrijven, filteren, sorteren en duplicaten verwijderen uit die gegevens.

  • 🧩 Automatisch object: Een bronkwalificatie verschijnt automatisch wanneer een relationele tabel of een plat bestand aan een kaart wordt toegevoegd.ping.
  • ✍️ SQL-override: Een aangepaste query vervangt de gegenereerde SELECT-query en heeft voorrang op het bronfilter en de instelling voor gesorteerde poorten.
  • 🔢 Havenvolgorde: De SELECT-lijst moet de poorten benoemen in de volgorde waarin ze in de transformatie voorkomen, anders kan de sessie mislukken.
  • 🎯 Bronfilter: Een filtervoorwaarde verwijdert rijen uit de database, en het sleutelwoord WHERE moet daarin worden weggelaten.
  • 🔗 Deelnemen in één doorgang: Gerelateerde tabellen uit één relationele bron kunnen binnen één Source Qualifier worden samengevoegd in plaats van met een Joiner.
  • ⚡ Less verkeer: De werkzaamheden die in de bronquery worden uitgevoerd, zorgen ervoor dat er minder rijen via het netwerk naar de sessie worden verplaatst.

Bronkwalificatietransformatie in Informatica

Wat is bronkwalificatietransformatie?

De Source Qualifier-transformatie is een actieve, verbonden transformatie die de rijen vertegenwoordigt die de Integration Service leest wanneer een sessie wordt uitgevoerd. Deze transformatie wordt geactiveerd telkens wanneer een relationele bron of een plat bestand aan een kaart wordt toegevoegd.pingHiervoor is een Source Qualifier-transformatie vereist, en de Designer voegt deze automatisch toe. Met de Source Qualifier kunt u definiëren en overschrijven hoe de gegevens uit de bron worden opgehaald.

De transformatie zet ook de oorspronkelijke gegevenstypen van de bron om in Informatica-transformatiegegevenstypen, zodat elke transformatie die erna wordt geplaatst, werkt met één platformonafhankelijke set typen.

Omdat de Source Qualifier de query opbouwt die daadwerkelijk de database bereikt, is dit de eerste plek waar gekeken moet worden wanneer een kaartping Leest meer rijen of kolommen dan nodig. Het onderstaande voorbeeld beperkt de query tot vier kolommen.

Hoe de bronkwalificatie in Informatica te wijzigen

In het volgende voorbeeld zullen we de Source Qualifier van onze kaart aanpassen.ping “m_emp_emp_target”, zodat in plaats van alle kolommen alleen de geselecteerde kolommen worden geretourneerd.

Stap 1) Open de kaartping “m_emp_emp_target” in Mapping Ontwerper. De kaartping Het programma opent met de EMP-bron, de SQ_EMP Source Qualifier en het EMP_TARGET-doel op het canvas.

Wereldmapping m_emp_emp_target openen in Informatica Mapping Designer

Stap 2) DoubleKlik op de Source Qualifier-transformatie “SQ_EMP”. Hiermee wordt het venster 'Transformaties bewerken' voor dat object geopend.

  1. Klik op het tabblad Eigenschappen.
  2. Klik op de SQL Query wijzigen, hierdoor wordt een SQL-editorvenster geopend

Op het tabblad Eigenschappen wordt de onderstaande rij met SQL-query's weergegeven.

Het tabblad Eigenschappen van de SQ_EMP-bronkwalificatie met de rij SQL-query geselecteerd.

Stap 3) In het SQL-editorvenster

  1. Voer de volgende query in
    SELECT  EMPNO,  ENAME,  JOB,  MGR FROM  EMP

    Note – we selecteren de kolommen EMPNO, ENAME, JOB en MGR uit de bron, dus we hebben alleen die kolommen in de selectiequery behouden.

  2. Selecteer de OK-knop.

De SQL-editor bevat nu de aangepaste query in plaats van de automatisch gegenereerde query.

SQL-editorvenster met de aangepaste SELECT-query voor de bronkwalificatie.

Stap 4) In het venster 'Transformaties bewerken',

  1. Selecteer het tabblad Poorten in het menu.
  2. Onder het tabblad 'Poorten' ziet u alle poorten. Behoud alleen de poorten EMPNO, ENAME, JOB en MGR en verwijder de overige poorten.

Op het tabblad Poorten worden alle poorten weergegeven die door de transformatie werden gebruikt vóór de verwijdering.

Het tabblad Poorten in het venster Transformaties bewerken toont een lijst met alle poorten van de bronkwalificatie.

Stap 5) Nadat u de poorten hebt verwijderd, selecteert u de knop OK. Alleen de vier overgebleven poorten blijven in de lijst staan.

Ga naar het tabblad Poorten nadat de ongewenste Source Qualifier-poorten zijn verwijderd.

Klik nu opnieuw op het tabblad Eigenschappen in het venster Transformaties bewerken. U ziet dan alleen de gegevens die u hebt geselecteerd.

Het tabblad Eigenschappen toont de opgeslagen SQL-query-override op de bronkwalificatie.

Als je op de knop "OK" klikt, wordt het SQL-editorvenster geopend.

  1. Het zal bevestigen dat de door u geselecteerde gegevens correct zijn en klaar om in de doeltabel te worden geladen.
  2. Klik op de OK-knop om verder te gaan.

Het bevestigingsvenster herhaalt de vier kolommen die nu gelezen zullen worden.

Het SQL-editorvenster bevestigt de overschreven query vóór de mapping.ping wordt opgeslagen

Sla de kaart opping (met behulp van de sneltoets Ctrl+S) en voer de uit workflowNa uitvoering worden alleen de geselecteerde kolommen in het doel geladen.

Op deze manier kunt u in de Source Qualifier overschrijven welke kolommen uit de bron moeten worden opgehaald, en dit is de enige manier om te bepalen welke specifieke kolommen in de map worden opgenomen.ping.

Eigenschappen van bronkwalificatie

U kunt verschillende eigenschappen van de bronkwalificatie gebruiken om te bepalen welk type brongegevens moet worden getransformeerd en naar de doeltabel moet worden verzonden.

  1. Bronfilter – Met de eigenschap Bronfilter kunt u het aantal bronrecords verminderen. Als u bijvoorbeeld alleen de medewerkers van afdelingsnummer 10 wilt ophalen, kunt u de filtervoorwaarde deptno=10 invoeren in de eigenschap Bronfilter en de gegevens verwerken. Voeg de tabelnaam en de poortnaam toe aan de voorwaarde en laat het trefwoord WHERE weg – een filter met WHERE zorgt ervoor dat de sessie mislukt.
  2. Aantal gesorteerde poorten – In de Source Qualifier-transformatie kunt u de invoerrecords ook sorteren op poortpositie. De Integration Service voegt een ORDER BY-clausule toe aan de standaardquery, waarbij poorten vanaf het begin van de transformatie worden geteld. De gegevens zijn dus al gesorteerd wanneer ze de transformaties in de map bereiken.ping.

    Aangezien gegevens op één of meerdere poorten gesorteerd kunnen worden, moet u het aantal poorten opgeven dat voor de sortering gebruikt zal worden. Als u de waarde 1 opgeeft, worden alleen de empno-gegevens gesorteerd. Als u de waarde 2 opgeeft, worden de gegevens gesorteerd op zowel empno als ename.

  3. Selecteer Onderscheiden – Met deze eigenschap kunt u alleen unieke records uit de bron ophalen. Wanneer u de optie 'Select Distinct' selecteert, voegt de Integration Service een 'SELECT DISTINCT'-instructie toe, zodat alleen unieke combinaties van brongegevens door de bronkwalificatie worden opgehaald.

Het tabblad 'Eigenschappen' dat hieronder wordt weergegeven, bevat deze opties samen met de rest van de lijst met eigenschappen.

Tabblad Bronkwalificatie-eigenschappen met Bronfilter, Aantal gesorteerde poorten en Selecteer unieke waarden

De volledige lijst met eigenschappen die beschikbaar zijn op een relationele Source Qualifier wordt samengevat in de onderstaande tabel.

Eigendom Wat het doet
SQL-query Vervangt de standaardquery die door de integratieservice wordt gegenereerd. Een aangepaste query overschrijft een door de gebruiker gedefinieerde join en een bronfilter.
Door de gebruiker gedefinieerde koppeling Geeft de voorwaarde op die wordt gebruikt om gegevens uit verschillende bronnen, die worden vertegenwoordigd door dezelfde bronkwalificatie, samen te voegen.
Bronfilter Geeft de filtervoorwaarde op die de integratieservice toepast bij het opvragen van rijen.
Aantal gesorteerde poorten Aantal kolommen dat wordt gebruikt om rijen te sorteren die uit relationele bronnen worden gelezen, toegevoegd aan de query als ORDER BY.
Tracing Niveau De hoeveelheid details die voor deze transformatie in het sessielogboek is vastgelegd.
Selecteer Onderscheiden Geeft alleen unieke rijen terug door SELECT DISTINCT aan de query toe te voegen.
Pre-SQL Deze opdrachten worden uitgevoerd op de brondatabase voordat de Integration Service de brongegevens leest.
Post-SQL Commando's worden uitgevoerd op de brondatabase nadat de Integration Service naar de doeldatabase heeft geschreven.
De output is deterministisch. Geeft aan dat de bron bij elke uitvoering dezelfde gegevens retourneert wanneer de invoer consistent is.
De uitvoer is herhaalbaar. Geeft aan dat de bron bij elke uitvoering de rijen in dezelfde volgorde retourneert, waardoor de Integration Service de staging voor herstel kan overslaan.

Regels en richtlijnen voor een SQL-override van een bronkwalificatie

Een SQL-override is krachtig omdat deze alles vervangt wat de Designer heeft gegenereerd, en dat is ook de reden waarom deze stilletjes faalt wanneer de onderstaande regels worden genegeerd.

  • Sluit eerst de poorten aan. Verbind alle in- en uitgangspoorten die u wilt gebruiken voordat u de query invoert, omdat de gegenereerde query wordt opgebouwd uit de verbonden poorten.
  • Houd de SELECT-lijst in de juiste poortvolgorde. De SELECT-instructie moet de poortnamen in de volgorde weergeven waarin ze in de transformatie voorkomen. Als de volgorde niet overeenkomt, kan de sessie mislukken of onverwachte resultaten opleveren.
  • Voorzie elke kolom van een kwalificatie. Elke kolomnaam moet worden voorafgegaan door het tabel-, weergave- of synoniemnummer waartoe deze behoort, bijvoorbeeld ORDERS.ORDER_ID.
  • Genereer voordat je bewerkt. Door op 'SQL genereren' te klikken, wordt de standaardquery weergegeven. Deze bevat al het bronfilter en de sorted-ports-clausule, waardoor de overschrijving kan worden opgebouwd vanuit een werkende instructie.
  • Valideer de bewering. De SQL-editor heeft een knop 'Valideren' waarmee de query wordt uitgevoerd en wordt gecontroleerd of de syntaxis correct is voordat de sessie start.
  • Gebruikelijke woorden worden geciteerd. Elk in de query gebruikt, gereserveerd databasewoord moet tussen aanhalingstekens worden geplaatst.
  • Houd de precedenten in de gaten. Een aangepaste query overschrijft het bronfilter en het aantal gesorteerde poorten, en een SQL-query die is ingevoerd in de sessie De eigenschappen overschrijven zowel de filtervoorwaarde als de query die in de kaart is gedefinieerd.ping.

Bij Microsoft SQL Server Er is één extra regel: het aantal kolommen in de SELECT-instructie moet overeenkomen met het aantal poorten in de transformatie, anders mislukt de sessie tijdens het ophalen van rijen.

Hoe combineer je twee bronnen met één bronkwalificatie?

Een enkele Source Qualifier kan meerdere tabellen lezen. Wanneer twee gerelateerde tabellen uit dezelfde relationele bron aan één Source Qualifier zijn gekoppeld, voegt de Integration Service ze samen binnen de bronquery in plaats van binnen de map.pingDit betekent dat de database het werk doet en dat er minder rijen naar de sessie worden gestuurd.

De standaardkoppeling is een inner equijoin, die in de WHERE-clausule wordt geschreven als Source1.column_name = Source2.column_name. Om deze koppeling te genereren, moeten de gekoppelde kolommen een primaire sleutel-vreemde sleutelrelatie hebben en overeenkomende gegevenstypen. Als de geïmporteerde metadata geen dergelijke relatie bevat, kunt u er een aanmaken in de metadata. Bronanalysator door de overeenkomende kolommen van de twee brondefinities met elkaar te verbinden.

Als de relatie ontbreekt of als de join een outer join moet zijn, gebruik dan de eigenschap 'Gebruikersgedefinieerde join'. De voorwaarde die u daar invoert, vervangt de joininformatie in de metadata, waarna de Integration Service deze aan de gegenereerde query toevoegt.

Twee beperkingen zijn het vermelden waard. Beide tabellen moeten afkomstig zijn van dezelfde relationele bron, en bronnen van verschillende typen – een plat bestand en een tabel, of twee verschillende databases – moeten met elkaar worden gekoppeld. Transformatie van schrijnwerkers gebruiken.

Source Qualifier vs Filter vs Joiner Transformation

Drie objecten kunnen rijen verkleinen of samenvoegen, en het kiezen van het verkeerde object is een veelvoorkomende oorzaak van trage sessies. De onderstaande tabel toont ze naast elkaar.

Aspect Bronkwalificatie Filtertransformatie Transformatie van schrijnwerkers
Waar het werk plaatsvindt In de brondatabase, binnen de gegenereerde query In de integratieservice, rij voor rij In de Integratieservice wordt een cache gebruikt.
Belangrijkste doel Lees de bronrijen, overschrijf de query, filter, sorteer en verwijder duplicaten. Verwijder rijen die niet aan een van de voorwaarden voldoen. Combineer twee pijplijnen tot één rijset.
Brontypen Relationele tabellen en platte bestanden van één bron Alle pijplijngegevens Heterogene bronnen, waaronder platte bestanden en verschillende databases.
Word lid van de ondersteuningsgroep Inner equijoin of een door de gebruiker gedefinieerde join binnen één relationele bron Geen Normale, hoofdbuiten-, detailbuiten- en volledige buitenverbindingen
Rijen die het netwerk kruisen Alleen de rijen die de query retourneert Elke bronregel wordt eerst gelezen. Elke bronregel wordt eerst gelezen.

De praktische regel is eenvoudig: filter en combineer zo vroeg mogelijk als de bron toelaat, en zoek naar een Filter of een Joiner, alleen voor werk dat de brondatabase niet kan uitvoeren. Het toevoegen van voorwaarden aan de Source Qualifier is een van de goedkoopste manieren om winst te behalen tijdens... prestatieafstemming.

Veelgestelde vragen

Pre-SQL-opdrachten worden uitgevoerd op de brondatabase voordat de Integration Service de bron leest. Post-SQL-opdrachten worden uitgevoerd op dezelfde database nadat de Integration Service klaar is met schrijven naar de doeldatabase.

TracHet ing-niveau bepaalt hoeveel details de transformatie in het sessielogboek schrijft. Een hoger niveau is handig bij het diagnosticeren van een onverwacht hoog aantal rijen, maar het vergroot het logboek en vertraagt ​​de uitvoering, dus verlaag het niveau daarna.

De SQL-editor heeft een knop 'Valideren'. Deze voert de query uit op de geselecteerde ODBC-gegevensbron en geeft aan of de syntaxis correct is. Hierdoor worden fouten in de ontwerper weergegeven in plaats van in een mislukte sessie.

Ja. Parameters en variabelen zijn toegestaan ​​in de query, de door de gebruiker gedefinieerde join, het bronfilter en de pre- en post-sessieopdrachten. Plaats tekenreeksparameters tussen aanhalingstekens in de stijl die de brondatabase verwacht.

Ze verklaren dat een bron bij elke uitvoering dezelfde gegevens en in dezelfde volgorde retourneert. Wanneer aan beide voorwaarden is voldaan, slaat de Integration Service het tijdelijk opslaan van brongegevens voor herstel over, waardoor de uitvoeringsduur wordt verkort.

Nee. Query-overrides, door de gebruiker gedefinieerde joins, bronfilters en pre- of post-sessieopdrachten worden naar een database gepusht, waardoor ze van toepassing zijn op relationele bronnen. Een plat bestand met een Source Qualifier beheert voornamelijk de volgende zaken. tracing en havenvolgorde.

AI-assistenten lezen queryplannen en de werkbelastinggeschiedenis om predicaten, indexen en het opschonen van kolommen voor te stellen. Op machine learning gebaseerde adviseurs in moderne databases rangschikken deze suggesties, maar een ontwikkelaar valideert nog steeds elke wijziging voordat deze in een sessie wordt verwerkt.

Copilot kan de SELECT-instructie opstellen en het verwerken van herhalende kolomlijsten versnellen. Het programma kent de poortvolgorde van uw transformatie niet, dus controleer de gegenereerde instructie aan de hand van het tabblad Poorten voordat u deze opslaat.

Vat dit bericht samen met: