• 15.05.2020
  • 5 minute de citit

In acest articol

SE APLICA: Azure Data Factory Azure Synapse Analytics

Utilizati transformarea de imbinare pentru a combina date din doua surse sau fluxuri intr-un flux de date de cartografiere. Fluxul de iesire va include toate coloanele din ambele surse potrivite pe baza unei conditii de asociere.

Tipuri de alaturare

Cartarea fluxurilor de date accepta in prezent cinci tipuri diferite de imbinare.

Alaturare interioara

Imbinarea interioara scoate doar randurile care au valori potrivite in ambele tabele.

Stanga la exterior

Imbinarea exterioara stanga returneaza toate randurile din fluxul din stanga si inregistrarile potrivite din fluxul din dreapta. Daca un rand din fluxul din stanga nu are nicio potrivire, coloanele de iesire din fluxul din dreapta sunt setate la NULL. Iesirea va fi randurile returnate de o imbinare interioara plus randurile de neegalat din fluxul din stanga.

Nota

Motorul Spark utilizat de fluxurile de date va esua din cand in cand din cauza posibilelor produse carteziene in conditiile dvs. de asociere. Daca se intampla acest lucru, puteti trece la o imbinare personalizata incrucisata si puteti introduce manual conditia de imbinare. Acest lucru poate avea ca rezultat o performanta mai lenta in fluxurile de date, deoarece motorul de executie poate fi necesar sa calculeze toate randurile din ambele parti ale relatiei si apoi sa filtreze randurile.

Dreapta exterioara

Unirea exterioara dreapta returneaza toate randurile din fluxul din dreapta si inregistrarile potrivite din fluxul din stanga. Daca un rand din fluxul din dreapta nu are nicio potrivire, coloanele de iesire din fluxul din stanga sunt setate la NULL. Iesirea va fi randurile returnate de o imbinare interioara plus randurile de neegalat din fluxul din dreapta.

Complet exterior

Imbinarea exterioara completa afiseaza toate coloanele si randurile de pe ambele parti cu valori NULL pentru coloanele care nu se potrivesc.

Imbinare incrucisata personalizata

Imbinarea incrucisata produce produsul incrucisat al celor doua fluxuri pe baza unei conditii. Daca utilizati o conditie care nu este egala, specificati o expresie personalizata ca conditie de imbinare incrucisata. Fluxul de iesire va fi toate randurile care indeplinesc conditia de asociere.

Puteti utiliza acest tip de asociere pentru imbinari non-echi si conditii SAU.

Daca doriti sa produceti in mod explicit un produs cartezian complet, utilizati transformarea Coloanei derivate in fiecare dintre cele doua fluxuri independente inainte de unire pentru a crea o cheie sintetica pe care sa se potriveasca. De exemplu, creati o coloana noua in Coloana derivata in fiecare flux numit SyntheticKey si setati-o egala cu 1. Apoi utilizati a.SyntheticKey == b.SyntheticKey ca expresie de imbinare personalizata.

Nota

Asigurati-va ca includeti cel putin o coloana din fiecare parte a relatiei stanga si dreapta intr-o imbinare incrucisata personalizata. Executarea imbinarilor incrucisate cu valori statice in loc de coloane din fiecare parte are ca rezultat scanari complete ale intregului set de date, ceea ce face ca fluxul de date sa aiba performante slabe.

Configurare

  1. Alegeti cu ce flux de date va alaturati in meniul derulant Flux dreapta .
  2. Selectati tipul de Alaturare
  3. Alegeti ce coloane cheie doriti sa se potriveasca pentru conditia de inscriere. In mod implicit, fluxul de date cauta egalitatea intre o coloana in fiecare flux. Pentru a compara printr-o valoare calculata, plasati cursorul peste meniul derulant al coloanei si selectati Coloana calculata .

Non-equi se alatura

Pentru a utiliza un operator conditionat, care nu este egal cu (! =) Sau mai mare de (>) in conditiile de asociere, modificati meniul derulant al operatorului intre cele doua coloane. Imbinarile non-equi necesita cel putin unul dintre cele doua fluxuri pentru a fi difuzat folosind difuzarea fixa in fila Optimizare .

Optimizarea performantei unirii

Spre deosebire de unirea imbinarii in instrumente precum SSIS, transformarea imbinarii nu este o operatiune obligatorie de imbinare. Cheile de asociere nu necesita sortare. Operatiunea de asociere are loc pe baza operatiunii de asociere optima din Spark, fie de emisie, fie de asociere pe harta.

In alaturari, cautari si transformari existente, daca unul sau ambele fluxuri de date se incadreaza in memoria nodului lucrator, puteti optimiza performanta activand Difuzarea . In mod implicit, motorul cu scanteie va decide automat daca va transmite sau nu o parte. Pentru a alege manual ce parte sa difuzati, selectati Fix .

Nu este recomandat sa dezactivati difuzarea prin optiunea Dezactivat, cu exceptia cazului in care inregistrarile dvs. au erori de expirare.

Auto-Alaturare

Pentru a va alatura automat unui flux de date cu el insusi, alias un flux existent cu o transformare selectata. Creati o ramura noua facand clic pe pictograma plus de langa o transformare si selectand sucursala noua . Adaugati o transformare selectata pentru a aliasa fluxul original. Adaugati o transformare de imbinare si alegeti fluxul original ca flux stang si transformarea selectata ca flux dreapta .

Testarea conditiilor de asociere

Cand testati transformarile de imbinare cu previzualizarea datelor in modul de depanare, utilizati un set mic de date cunoscute. Cand esantionati randuri dintr-un set de date mare, nu puteti prevedea care randuri si chei vor fi citite pentru testare. Rezultatul este nedeterminist, ceea ce inseamna ca este posibil ca conditiile dvs. de inscriere sa nu returneze nicio potrivire.

Script de flux de date

Sintaxa

<leftStream>, <rightStream> join (<conditionalExpression>, joinType: {‘inner’> | ‘outside’ | ‘left_outer’ | ‘right_outer’ | ‘cross’} broadcast: {‘auto’ | ‘left’ | ‘right ‘|’ ambele ‘|’ dezactivat ‘}) ~> <joinTransformationName>

Exemplu de imbinare interioara

Exemplul de mai jos este o transformare de asociere numita JoinMatchedData care ia fluxul stang TripData si fluxul drept TripFare. Conditia de asociere este expresia hack_license == {hack_license} && TripData @ medallion == TripFare @ medallion && vendor_id == {vendor_id} && pickup_datetime == {pickup_datetime} care se intoarce daca coloanele hack_license, medallion, vendor_id si pickup_datetime din fiecare meci de flux. JoinType este „interior”. Activam difuzarea numai in fluxul din stanga, astfel incat difuzarea sa aiba valoarea „ramasa”.

In Data Factory UX, aceasta transformare arata ca imaginea de mai jos:

Scriptul de flux de date pentru aceasta transformare se afla in fragmentul de mai jos:

TripData, TripFare join (hack_license == {hack_license} && TripData @ medallion == TripFare @ medallion && vendor_id == {vendor_id} && pickup_datetime == {pickup_datetime}, joinType: ‘inner’, broadcast: ‘left’) ~> JoinMatchedData

Exemplu de imbinare personalizata

Exemplul de mai jos este o transformare de asociere numita JoiningColumns care ia fluxul stanga LeftStream si fluxul drept RightStream. Aceasta transformare cuprinde doua fluxuri si uneste impreuna toate randurile in care coloana leftstreamcolumn este mai mare decat coloana rightstreamcolumn. JoinType este incrucisat. Difuzarea nu este activata Difuzarea are valoarea „none”.

In Data Factory UX, aceasta transformare arata ca imaginea de mai jos:

Scriptul de flux de date pentru aceasta transformare se afla in fragmentul de mai jos:

LeftStream, RightStream join (leftstreamcolumn> rightstreamcolumn, joinType: ‘cross’, broadcast: ‘none’) ~> JoiningColumns

Pasii urmatori

Dupa conectarea datelor, creati o coloana derivata si scufundati-le intr-un magazin de date de destinatie.

streming porn lady blue video porno
emmanuelle streaming lady blue xxx
puttane xxx lalla gf
tutto in famiglia xxx lara de santis phica
caprice porn lara de santis porn
cristie dom lara de santis porno
cento x cento trans laura rey porn
video nappi valentina laura rey porno
film porno di salieri laura rey pornostar
max felicitas porno video laura rey xxx
sukki malena layla porn
valentina nappi ambulanza layla porno
centoxcento download le maison de l’amour
sara terry centoxcento le mani dentro spoleto
angeli e demoni streaming hd le solite ignote
malen porno leccare cazzi
alex magni iafd lena centoxcento
doppia in culo lesbian italian porn
gucci xxx lina scotti 100×100
genova porn lina scotti porno