Udostępnij za pośrednictwem


Wybieranie przekształcenia w przepływie danych mapowania

DOTYCZY: Azure Data Factory Azure Synapse Analytics

Napiwek

Wypróbuj usługę Data Factory w usłudze Microsoft Fabric — rozwiązanie analityczne typu all-in-one dla przedsiębiorstw. Usługa Microsoft Fabric obejmuje wszystko, od przenoszenia danych do nauki o danych, analizy w czasie rzeczywistym, analizy biznesowej i raportowania. Dowiedz się, jak bezpłatnie rozpocząć nową wersję próbną !

Przepływy danych są dostępne zarówno w usłudze Azure Data Factory, jak i w potokach usługi Azure Synapse. Ten artykuł dotyczy przepływów danych mapowania. Jeśli dopiero zaczynasz transformacje, zapoznaj się z artykułem wprowadzającym Przekształcanie danych przy użyciu przepływu danych mapowania.

Użyj przekształcenia select, aby zmienić nazwę, upuść lub zmienić kolejność kolumn. Ta transformacja nie zmienia danych wierszy, ale wybiera kolumny, które są propagowane podrzędnie.

W wybranej transformacji użytkownicy mogą określać stałe mapowania, używać wzorców do mapowania opartego na regułach lub włączać automatyczne mapowanie. Mapowania oparte na regułach i stałe mogą być używane w ramach tego samego przekształcenia wyboru. Jeśli kolumna nie pasuje do jednego ze zdefiniowanych mapowań, zostanie porzucona.

Naprawiono mapowanie

Jeśli w projekcji zdefiniowano mniej niż 50 kolumn, wszystkie zdefiniowane kolumny będą domyślnie miały stałe mapowanie. Stałe mapowanie przyjmuje zdefiniowaną, przychodzącą kolumnę i mapuje ją na dokładną nazwę.

Naprawiono mapowanie

Uwaga

Nie można mapować ani zmieniać nazwy dryfowanej kolumny przy użyciu stałego mapowania

Mapowanie kolumn hierarchicznych

Stałe mapowania mogą służyć do mapowania podkolum kolumny hierarchicznej na kolumnę najwyższego poziomu. Jeśli masz zdefiniowaną hierarchię, użyj listy rozwijanej kolumny, aby wybrać podkolumnę. Przekształcenie wyboru spowoduje utworzenie nowej kolumny z wartością i typem danych podkolumny.

mapowanie hierarchiczne

Mapowanie oparte na regułach

Jeśli chcesz mapować wiele kolumn jednocześnie lub przekazywać dryfowane kolumny podrzędne, użyj mapowania opartego na regułach, aby zdefiniować mapowania przy użyciu wzorców kolumn. Dopasuj nameje na podstawie kolumn , type, streami position . Można mieć dowolną kombinację mapowań stałych i opartych na regułach. Domyślnie wszystkie projekcje z większą niż 50 kolumnami domyślnie będą domyślnie mapowane na podstawie reguł, które są zgodne z każdą kolumną i wyprowadza nazwę wejściową.

Aby dodać mapowanie oparte na regułach, kliknij pozycję Dodaj mapowanie i wybierz pozycję Mapowanie oparte na regułach.

Zrzut ekranu przedstawiający mapowanie oparte na regułach wybrane z opcji Dodaj mapowanie.

Każde mapowanie oparte na regułach wymaga dwóch danych wejściowych: warunku, według którego ma być dopasowana wartość i co nazwać każdą zmapowanych kolumn. Obie wartości są wprowadzane za pośrednictwem konstruktora wyrażeń. W polu wyrażenia po lewej stronie wprowadź warunek dopasowania warunkowego. W polu wyrażenia po prawej stronie określ, na co zostanie zamapowana dopasowana kolumna.

Zrzut ekranu przedstawia mapowanie.

Użyj $$ składni, aby odwołać się do nazwy wejściowej dopasowanej kolumny. Korzystając z powyższego obrazu jako przykładu, załóżmy, że użytkownik chce dopasować się do wszystkich kolumn ciągów, których nazwy są krótsze niż sześć znaków. Jeśli jedna kolumna przychodząca nosi nazwę test, wyrażenie $$ + '_short' zmieni nazwę kolumny test_short. Jeśli jest to jedyne mapowanie, które istnieje, wszystkie kolumny, które nie spełniają warunku, zostaną usunięte z danych wyjściowych.

Wzorce są zgodne zarówno z dryfowaniem, jak i zdefiniowanymi kolumnami. Aby zobaczyć, które zdefiniowane kolumny są mapowane przez regułę, kliknij ikonę okularów obok reguły. Sprawdź dane wyjściowe przy użyciu podglądu danych.

Mapowanie wyrażeń regularnych

Jeśli klikniesz ikonę strzałki w dół, możesz określić warunek mapowania wyrażeń regularnych. Warunek mapowania wyrażenia regularnego jest zgodny ze wszystkimi nazwami kolumn, które pasują do określonego warunku wyrażenia regularnego. Może to być używane w połączeniu ze standardowymi mapowaniami opartymi na regułach.

Zrzut ekranu przedstawia warunek mapowania wyrażeń regularnych z dopasowaniem Poziom hierarchii i Nazwa.

Powyższy przykład jest zgodny ze wzorcem (r) wyrażeń regularnych lub dowolną nazwą kolumny zawierającą małe litery r. Podobnie jak w przypadku standardowego mapowania opartego na regułach, wszystkie dopasowane kolumny są zmieniane przez warunek po prawej stronie przy użyciu $$ składni.

Jeśli w nazwie kolumny znajduje się wiele dopasowań wyrażeń regularnych, możesz odwoływać się do określonych dopasowań, używając $n wartości ,gdzie "n" odnosi się do dopasowania. Na przykład "$2" odnosi się do drugiego dopasowania w nazwie kolumny.

Hierarchie oparte na regułach

Jeśli zdefiniowana projekcja ma hierarchię, możesz użyć mapowania na podstawie reguł, aby mapować podkolumny hierarchii. Określ zgodny warunek i kolumnę złożoną, której kolumny podrzędne chcesz mapować. Każdy dopasowany podkolumn zostanie wyświetlony przy użyciu reguły "Nazwa jako" określonej po prawej stronie.

Zrzut ekranu przedstawia mapowanie oparte na regułach używane dla hierarchii.

Powyższy przykład pasuje do wszystkich podkolumn kolumn zespolonej a. a zawiera dwa podkolumny b i c. Schemat danych wyjściowych będzie zawierać dwie kolumny b i c jako warunek "Nazwa jako" to $$.

Parametryzacja

Nazwy kolumn można sparametryzować przy użyciu mapowania opartego na regułach. Użyj słowa kluczowego name , aby dopasować nazwy kolumn przychodzących do parametru. Jeśli na przykład masz parametr mycolumnprzepływu danych, możesz utworzyć regułę zgodną z dowolną nazwą kolumny, która jest równa mycolumn. Możesz zmienić nazwę dopasowanej kolumny na zakodowany ciąg, taki jak "klucz biznesowy" i odwoływać się do niej jawnie. W tym przykładzie warunek dopasowania to name == $mycolumn , a warunek nazwy to "klucz biznesowy".

Automatyczne mapowanie

Podczas dodawania przekształcenia zaznaczenia można włączyć automatyczne mapowanie , przełączając suwak Automatyczne mapowanie. Po automatycznym mapowaniu wybór przekształcenia mapuje wszystkie kolumny przychodzące, z wyjątkiem duplikatów, o takiej samej nazwie jak ich dane wejściowe. Będzie to obejmować dryfowane kolumny, co oznacza, że dane wyjściowe mogą zawierać kolumny, które nie są zdefiniowane w schemacie. Aby uzyskać więcej informacji na temat dryfowanych kolumn, zobacz dryf schematu.

Automatyczne mapowanie

Po ustawieniu automatycznego mapowania transformacja zaznaczenia będzie honorować zduplikowane ustawienia i podać nowy alias dla istniejących kolumn. Aliasowanie jest przydatne podczas wykonywania wielu sprzężeń lub odnośników w tym samym strumieniu i w scenariuszach samosprzężenia.

Zduplikowane kolumny

Domyślnie funkcja select transformation odrzuca zduplikowane kolumny zarówno w projekcji wejściowej, jak i wyjściowej. Zduplikowane kolumny wejściowe często pochodzą z przekształceń sprzężenia i wyszukiwania, w których nazwy kolumn są duplikowane po każdej stronie sprzężenia. W przypadku mapowania dwóch różnych kolumn wejściowych na tę samą nazwę mogą wystąpić zduplikowane kolumny wyjściowe. Wybierz, czy chcesz usunąć lub przekazać zduplikowane kolumny, przełączając pole wyboru.

Pomiń duplikaty

Kolejność kolumn

Kolejność mapowań określa kolejność kolumn wyjściowych. Jeśli kolumna wejściowa jest mapowana wiele razy, zostanie uznane tylko pierwsze mapowanie. W przypadku upuszczania zduplikowanych kolumn pierwszy mecz zostanie zachowany.

Skrypt przepływu danych

Składnia

<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>

Przykład

Poniżej przedstawiono przykład mapowania zaznaczenia i skryptu przepływu danych:

Wybierz przykład skryptu

DerivedColumn1 select(mapColumn(
        each(a, match(true())),
        movie,
        title1 = title,
        each(match(name == 'Rating')),
        each(patternMatch(`(y)`),
            $1 + 'regex' = $$)
    ),
    skipDuplicateMapInputs: true,
    skipDuplicateMapOutputs: true) ~> Select1
  • Po użyciu polecenia Wybierz, aby zmienić nazwę, zmienić kolejność i kolumny aliasu, użyj przekształcenia ujścia, aby umieścić dane w magazynie danych.