Delen via


Transformatie selecteren in gegevensstroom voor mappings

VAN TOEPASSING OP: Azure Data Factory Azure Synapse Analytics

Tip

Probeer Data Factory uit in Microsoft Fabric, een alles-in-één analyseoplossing voor ondernemingen. Microsoft Fabric omvat alles, van gegevensverplaatsing tot gegevenswetenschap, realtime analyses, business intelligence en rapportage. Meer informatie over het gratis starten van een nieuwe proefversie .

Gegevensstromen zijn beschikbaar in zowel Azure Data Factory-pijplijnen als Azure Synapse Analytics-pijplijnen. Dit artikel is van toepassing op het in kaart brengen van gegevensstromen. Als u nieuw bent met transformaties, raadpleegt u het inleidende artikel Gegevens transformeren met behulp van mapping-dataflows.

Gebruik de selectietransformatie om kolommen te wijzigen, te verwijderen of opnieuw te ordenen. Deze transformatie wijzigt geen rijgegevens, maar kiest welke kolommen downstream worden doorgegeven.

In een selectietransformatie kunnen gebruikers vaste toewijzingen opgeven, patronen gebruiken om op regels gebaseerde toewijzingen uit te voeren of automatische toewijzing in te schakelen. Vaste toewijzingen en toewijzingen op basis van regels kunnen beide worden gebruikt binnen dezelfde selectietransformatie. Als een kolom niet overeenkomt met een van de gedefinieerde toewijzingen, wordt deze verwijderd.

Vaste toewijzing

Als er minder dan 50 kolommen zijn gedefinieerd in uw projectie, hebben alle gedefinieerde kolommen standaard een vaste toewijzing. Een vaste toewijzing maakt gebruik van een gedefinieerde, binnenkomende kolom en wijst deze toe aan een exacte naam.

Vaste toewijzing

Notitie

U kunt een gedrifte kolom niet toewijzen of de naam ervan wijzigen met behulp van een vaste toewijzing

Hiërarchische kolommen in kaart brengen

Vaste toewijzingen kunnen worden gebruikt om een subkolom van een hiërarchische kolom toe te wijzen aan een kolom op het hoogste niveau. Als u een gedefinieerde hiërarchie hebt, gebruik de kolom vervolgkeuzelijst om een subkolom te selecteren. Met de selectietransformatie wordt een nieuwe kolom gemaakt met de waarde en het gegevenstype van de subkolom.

hiërarchische toewijzing

toewijzing op basis van regels

Als u veel kolommen tegelijk wilt toewijzen of gedrifte kolommen downstream wilt doorgeven, gebruikt u op regels gebaseerde toewijzing om uw toewijzingen te definiëren met behulp van kolompatronen. Overeenkomen op basis van de name, type, stream, en position kolommen. U kunt elke combinatie van vaste toewijzingen en regels gebaseerde toewijzingen hebben. Standaard vallen alle projecties met meer dan 50 kolommen terug op een regelgebaseerde toewijzing die overeenkomt met elke kolom en de ingevoerde naam als resultaat geeft.

Als u een toewijzing op basis van regels wilt toevoegen, klikt u op Toewijzing toevoegen en selecteert u Toewijzing op basis van regels.

Schermopname van op regels gebaseerde toewijzing geselecteerd in Toewijzing toevoegen.

Elke regelgebaseerde toewijzing vereist twee invoerwaarden: de voorwaarde waarmee moet worden vergeleken en wat elke toegewezen kolom genoemd moet worden. Beide waarden worden ingevoerd via de opbouwfunctie voor expressies. Voer in het linkerexpressievak de booleaanse overeenkomstvoorwaarde in. Geef in het rechterexpressievak op waaraan de overeenkomende kolom wordt toegewezen.

Schermopname toont een mapping.

Gebruik $$ de syntaxis om te verwijzen naar de invoernaam van een overeenkomende kolom. Als u de bovenstaande afbeelding als voorbeeld gebruikt, zegt u dat een gebruiker wil overeenkomen met alle tekenreekskolommen waarvan de namen korter zijn dan zes tekens. Als één binnenkomende kolom de naam heeft gekregentest, wordt de naam van de kolom $$ + '_short'gewijzigd in de expressietest_short. Als dit de enige toewijzing is die bestaat, worden alle kolommen die niet aan de voorwaarde voldoen uit de uitgevoerde gegevens verwijderd.

Patronen komen overeen met zowel verschuivende als gedefinieerde kolommen. Als u wilt zien welke gedefinieerde kolommen aan een regel zijn toegewezen, klikt u op het brilpictogram naast de regel. Controleer de uitvoer met behulp van een gegevensvoorbeeld.

Regex-toewijzing

Als u op het naar beneden wijzende chevron-icoon klikt, kunt u een regex-voorwaarde opgeven. Een regex-toewijzingsvoorwaarde komt overeen met alle kolomnamen die de opgegeven regex-voorwaarde matchen. Dit kan worden gebruikt in combinatie met standaardtoewijzingen op basis van regels.

Schermopname van de voorwaarde regex-toewijzing met hiërarchieniveau en naamovereenkomsten.

Het bovenstaande voorbeeld komt overeen met het regex-patroon (r) of een kolomnaam die een kleine letter r bevat. Net als bij standaard regel-gebaseerde toewijzing worden alle overeenkomende kolommen veranderd volgens de voorwaarde aan de rechterkant met behulp van de $$-syntaxis.

Als u meerdere regex-overeenkomsten in uw kolomnaam hebt, kunt u verwijzen naar specifieke overeenkomsten met behulp van $n waar 'n' verwijst naar welke overeenkomst. '$2' verwijst bijvoorbeeld naar de tweede gevonden binnen een kolomnaam.

Op regels gebaseerde hiërarchieën

Als uw gedefinieerde projectie een hiërarchie heeft, kunt u regelgebaseerde mapping gebruiken om de subkolommen van de hiërarchie toe te wijzen. Geef een overeenkomende voorwaarde en de complexe kolom op waarvan u de subkolommen wilt toewijzen. Elke overeenkomende subkolom zal worden weergegeven volgens de 'Naam als' regel die aan de rechterkant is opgegeven.

Schermopname van een hiërarchietoewijzing op basis van regels.

Het bovenstaande voorbeeld komt overeen met alle subkolommen van een complexe kolom a. a bevat twee subcolumns b en c. Het uitvoerschema bevat twee kolommen b en c onder de voorwaarde 'Naam als' $$.

Parameterisering

U kunt kolomnamen parameteriseren met behulp van regelgebaseerde toewijzing. Gebruik het trefwoord name om binnenkomende kolomnamen te vergelijken met een parameter. Als u bijvoorbeeld een gegevensstroomparameter mycolumnhebt, kunt u een regel maken die overeenkomt met elke kolomnaam die gelijk is aan mycolumn. U kunt de naam van de overeenkomende kolom wijzigen in een vastgelegde tekenreeks, zoals 'zakelijke sleutel' en deze expliciet verwijzen. In dit voorbeeld is name == $mycolumn de overeenkomende voorwaarde en de naamvoorwaarde 'bedrijfssleutel'.

Automatische koppeling

Wanneer u een selectietransformatie toevoegt, kan automatische toewijzing worden ingeschakeld door de schuifregelaar voor automatische toewijzing te schakelen. Met automatische toewijzing worden alle binnenkomende kolommen zonder duplicaten door de selectietransformatie toegewezen, waarbij de kolommen dezelfde naam behouden als hun invoer. Dit omvat gedrifte kolommen, wat betekent dat de uitvoergegevens mogelijk kolommen bevatten die niet zijn gedefinieerd in uw schema. Zie schemadrift voor meer informatie over gedrifte kolommen.

Automatische toewijzing

Als automatische toewijzing is ingeschakeld, zal de selectietransformatie de dubbele instellingen overslaan en een nieuwe alias voor de bestaande kolommen opgeven. Aliasing is handig bij het uitvoeren van meerdere joins of zoekacties op dezelfde stream en in scenario's voor zelfdeelname.

Dubbele kolommen

Standaard worden bij de selectietransformatie dubbele kolommen in zowel de invoer- als uitvoerprojectie verwijderd. Dubbele invoerkolommen komen vaak van samenvoegings- en opzoektransformaties waarbij kolomnamen aan elke kant van de join worden gedupliceerd. Dubbele uitvoerkolommen kunnen ontstaan als u twee verschillende invoerkolommen aan dezelfde naam toewijst. Kies of u dubbele kolommen wilt verwijderen of laten staan door het selectievakje aan te vinken of uit te vinken.

Duplicaten overslaan

Volgorde van kolommen

De volgorde van toewijzingen bepaalt de volgorde van de uitvoerkolommen. Als een invoerkolom meerdere keren wordt toegewezen, wordt alleen de eerste toewijzing gehonoreerd. Bij het verwijderen van dubbele kolommen, wordt het eerste duplicaat bewaard.

Script voor gegevensstroom

Syntaxis

<incomingStream>
    select(mapColumn(
        each(<hierarchicalColumn>, match(<matchCondition>), <nameCondition> = $$), ## hierarchical rule-based matching
        <fixedColumn>, ## fixed mapping, no rename
        <renamedFixedColumn> = <fixedColumn>, ## fixed mapping, rename
        each(match(<matchCondition>), <nameCondition> = $$), ## rule-based mapping
        each(patternMatch(<regexMatching>), <nameCondition> = $$) ## regex mapping
    ),
    skipDuplicateMapInputs: { true | false },
    skipDuplicateMapOutputs: { true | false }) ~> <selectTransformationName>

Opmerking

Hieronder ziet u een voorbeeld van een selectietoewijzing en het bijbehorende gegevensstroomscript:

Voorbeeld van script selecteren

DerivedColumn1 select(mapColumn(
        each(a, match(true())),
        movie,
        title1 = title,
        each(match(name == 'Rating')),
        each(patternMatch(`(y)`),
            $1 + 'regex' = $$)
    ),
    skipDuplicateMapInputs: true,
    skipDuplicateMapOutputs: true) ~> Select1
  • Nadat u Select hebt gebruikt om kolommen te hernoemen, opnieuw ordenen en aliasen, gebruikt u de Sink-transformatie om uw gegevens in een gegevensarchief te plaatsen.