Exists-transformering i mappnings data flödet

gäller för: Azure Data Factory Azure Synapse Analytics

Exists-omvandlingen är en omvandling för rad filtrering som kontrollerar om dina data finns i en annan källa eller Stream. Utdataströmmen innehåller alla rader i den vänstra strömmen som antingen finns eller inte finns i den högra strömmen. Exists-omvandlingen liknar SQL WHERE EXISTS och SQL WHERE NOT EXISTS .

Konfiguration

  1. Välj vilken data ström du vill söka efter i list rutan till höger ström .
  2. Ange om du vill att data ska finnas eller inte finns i inställningen för exist-typ .
  3. Välj om du vill använda ett anpassat uttryck eller inte.
  4. Välj vilka nyckel kolumner du vill jämföra som dina villkor. Som standard söker data flödet efter likhet mellan en kolumn i varje data ström. Om du vill jämföra via ett beräknat värde hovrar du över kolumn List rutan och väljer beräknad kolumn.

Finns inställningar

Det finns flera villkor

Om du vill jämföra flera kolumner från varje data ström, lägger du till ett nytt exists-villkor genom att klicka på plus ikonen bredvid en befintlig rad. Varje ytterligare villkor är anslutet av en "och"-sats. Jämförelse mellan två kolumner är samma som följande uttryck:

source1@column1 == source2@column1 && source1@column2 == source2@column2

Anpassat uttryck

Om du vill skapa ett uttryck för en fri form som innehåller andra operatorer än "och" och "lika med", väljer du fältet anpassat uttryck . Ange ett anpassat uttryck via data flödets uttrycks verktyg genom att klicka på den blå rutan.

Finns anpassade inställningar

Sändnings optimering

Sändnings anslutning

I kopplingar, sökningar och exists-omvandling, om en eller båda data strömmar får plats i arbetsnodens minne, kan du optimera prestandan genom att aktivera sändning. Som standard bestämmer Spark-motorn om en sida ska sändas automatiskt eller inte. Välj fast om du vill välja vilken sida som ska sändas manuellt.

Vi rekommenderar inte att du inaktiverar sändning via alternativet inaktivera om inte dina kopplingar körs i tids gräns fel.

Dataflödesskript

Syntax

<leftStream>, <rightStream>
    exists(
        <conditionalExpression>,
        negate: { true | false },
        broadcast: { 'auto' | 'left' | 'right' | 'both' | 'off' }
    ) ~> <existsTransformationName>

Exempel

Exemplet nedan är en exists-omvandling med namnet checkForChanges som tar vänster ström NameNorm2 och rätt ström TypeConversions . Exists-villkoret är det uttryck NameNorm2@EmpID == TypeConversions@EmpID && NameNorm2@Region == DimEmployees@Region som returnerar true om både EMPID Region kolumnen och i varje data ström matchar. Som vi söker efter existerar negate är falskt. Vi aktiverar inga sändningar på fliken optimera så att det broadcast har värdet 'none' .

I Data Factory UX ser den här omvandlingen ut som på bilden nedan:

Finns exempel

Data flödes skriptet för den här omvandlingen är i kodfragmentet nedan:

NameNorm2, TypeConversions
    exists(
        NameNorm2@EmpID == TypeConversions@EmpID && NameNorm2@Region == DimEmployees@Region,
        negate:false,
        broadcast: 'auto'
    ) ~> checkForChanges

Nästa steg

Liknande omvandlingar är Lookup och Join.