Transformatie selecteren in toewijzingsgegevensstroom

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 als Azure Synapse Pipelines. Dit artikel is van toepassing op toewijzingsgegevensstromen. Als u geen ervaring hebt met transformaties, raadpleegt u het inleidende artikel Gegevens transformeren met behulp van een toewijzingsgegevensstroom.

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.

Fixed mapping

Notitie

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

Hiërarchische kolommen toewijzen

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, gebruikt u de vervolgkeuzelijst kolom om een subkolom te selecteren. Met de selectietransformatie wordt een nieuwe kolom gemaakt met de waarde en het gegevenstype van de subkolom.

hierarchical mapping

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 namekolommen, typeen positionstreamkolommen. U kunt elke combinatie van vaste toewijzingen en toewijzingen op basis van regels hebben. Standaard worden alle projecties met meer dan 50 kolommen standaard toegewezen aan een op regels gebaseerde toewijzing die overeenkomt met elke kolom en wordt de ingevoerde naam uitgevoerd.

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

Screenshot shows Rule-based mapping selected from Add mapping.

Elke toewijzing op basis van regels vereist twee invoerwaarden: de voorwaarde waarop moet worden vergeleken met en wat elke toegewezen kolom een naam moet geven. 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.

Screenshot shows a 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 test_shortgewijzigd in de expressie$$ + '_short'. Als dit de enige toewijzing is die bestaat, worden alle kolommen die niet voldoen aan de voorwaarde verwijderd uit de uitvoergegevens.

Patronen komen overeen met gedrifte en 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 voorbeeld van gegevens.

Regex-toewijzing

Als u op het pijl-omlaag punthaakpictogram klikt, kunt u een regex-toewijzingsvoorwaarde opgeven. Een regex-toewijzingsvoorwaarde komt overeen met alle kolomnamen die overeenkomen met de opgegeven regex-voorwaarde. Dit kan worden gebruikt in combinatie met standaardtoewijzingen op basis van regels.

Screenshot shows the regex-mapping condition with Hierarchy level and Name matches.

Het bovenstaande voorbeeld komt overeen met het regex-patroon (r) of een kolomnaam die een kleine letter r bevat. Net als bij standaardregeltoewijzing worden alle overeenkomende kolommen gewijzigd door 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 overeenkomst binnen een kolomnaam.

Op regels gebaseerde hiërarchieën

Als uw gedefinieerde projectie een hiërarchie heeft, kunt u toewijzing op basis van regels gebruiken om de subcolumns van de hiërarchieën toe te wijzen. Geef een overeenkomende voorwaarde en de complexe kolom op waarvan u de subkolommen wilt toewijzen. Elke overeenkomende subcolumn wordt uitgevoerd met behulp van de regel 'Naam als' die aan de rechterkant is opgegeven.

Screenshot shows a rule-based mapping using for a hierarchy.

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 als de voorwaarde $$'Naam als'.

Parameterisering

U kunt kolomnamen parameteriseren met behulp van toewijzing op basis van regels. 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 toewijzing

Wanneer u een selectietransformatie toevoegt, kan automatische toewijzing worden ingeschakeld door de schuifregelaar voor automatische toewijzing te schakelen. Met automatische toewijzing wordt met de selectietransformatie alle binnenkomende kolommen toegewezen, met uitzondering van duplicaten, met dezelfde naam als de 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.

Auto mapping

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 zich voordoen als u twee verschillende invoerkolommen toe te wijzen aan dezelfde naam. Kies of u dubbele kolommen wilt verwijderen of doorgeven door het selectievakje in te schakelen.

Skip Duplicates

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 de eerste overeenkomst 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:

Select script example

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.