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ę.
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 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 name
je na podstawie kolumn , type
, stream
i 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.
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.
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.
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.
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 mycolumn
przepł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.
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.
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:
DerivedColumn1 select(mapColumn(
each(a, match(true())),
movie,
title1 = title,
each(match(name == 'Rating')),
each(patternMatch(`(y)`),
$1 + 'regex' = $$)
),
skipDuplicateMapInputs: true,
skipDuplicateMapOutputs: true) ~> Select1
Powiązana zawartość
- 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.