Udostępnij za pośrednictwem


Dynamiczne ustawianie nazw kolumn w przepływach danych

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

Wiele razy podczas przetwarzania danych dla zadań ETL należy zmienić nazwy kolumn przed zapisaniem wyników. Czasami jest to konieczne, aby dopasować nazwy kolumn do dobrze znanego schematu docelowego. Innym razem może być konieczne ustawienie nazw kolumn w czasie wykonywania na podstawie zmieniających się schematów. W tym samouczku dowiesz się, jak używać przepływów danych do ustawiania nazw kolumn dla plików docelowych i tabel baz danych dynamicznie przy użyciu zewnętrznych plików konfiguracji i parametrów.

Jeśli jesteś nowym użytkownikiem usługi Azure Data Factory, zobacz Wprowadzenie do usługi Azure Data Factory.

Wymagania wstępne

  • Subskrypcja platformy Azure. Jeśli nie masz subskrypcji platformy Azure, przed rozpoczęciem utwórz bezpłatne konto platformy Azure.
  • Konto usługi Azure Storage. Magazyn ADLS jest używany jako źródło danych i docelowy magazyn danych. Jeśli nie masz konta magazynu, utwórz je, wykonując czynności przedstawione w artykule Tworzenie konta magazynu platformy Azure.

Tworzenie fabryki danych

W tym kroku utworzysz fabrykę danych i otworzysz interfejs użytkownika usługi Data Factory, aby utworzyć przepływ pracy w fabryce danych.

  1. Otwórz przeglądarkę Microsoft Edge lub Google Chrome. Obecnie interfejs użytkownika usługi Data Factory jest obsługiwany tylko w przeglądarkach internetowych Przeglądarki Microsoft Edge i Google Chrome.
  2. W menu po lewej stronie wybierz Utwórz zasób>Integracja>Data Factory
  3. Na stronie Nowa fabryka danych w obszarze Nazwa wprowadź wartość ADFTutorialDataFactory
  4. Wybierz subskrypcję platformy Azure, w której chcesz utworzyć fabrykę danych.
  5. W przypadku grupy zasobów wykonaj jedną z następujących czynności:
  6. W obszarze Wersja wybierz pozycję V2.
  7. W obszarze Lokalizacja wybierz lokalizację fabryki danych. Na liście rozwijanej są wyświetlane tylko obsługiwane lokalizacje. Magazyny danych (na przykład Azure Storage i SQL Database) i obliczenia (na przykład Usługa Azure HDInsight) używane przez fabrykę danych mogą znajdować się w innych regionach.
  8. Wybierz pozycję Utwórz.
  9. Po zakończeniu tworzenia zostanie wyświetlone powiadomienie w Centrum powiadomień. Wybierz pozycję Przejdź do zasobu, aby przejść do strony usługi Data Factory.
  10. Wybierz pozycję Tworzenie i monitorowanie, aby uruchomić interfejs użytkownika usługi Data Factory na osobnej karcie.

Utwórz kanał z czynnością przepływu danych

W tym kroku utworzysz potok zawierający aktywność przepływu danych.

  1. Na stronie głównej usługi ADF wybierz pozycję Utwórz potok.

  2. W zakładce Ogólne dla potoku, wprowadź DeltaLake jako Nazwę potoku.

  3. Na górnym pasku narzędzi fabryki, przesuń suwak debugowanie Przepływu danych włącz. Tryb debugowania umożliwia interaktywne testowanie logiki transformacji względem dynamicznego klastra Spark. Klastry Przepływu Danych potrzebują od 5 do 7 minut na rozgrzanie, a użytkownikom zaleca się najpierw włączyć debugowanie, jeśli planują rozwijać Przepływ Danych. Aby uzyskać więcej informacji, zobacz Tryb debugowania.

    Działanie przepływu danych

  4. W okienku Działania rozwiń akordeon Przenieś i Przekształć . Przeciągnij i upuść działanie Przepływ danych z okienka do kanwy potoku.

    Zrzut ekranu przedstawiający kanwę potoku, na której można usunąć działanie Przepływ danych.

  5. W oknie podręcznym Dodawanie Przepływ danych wybierz pozycję Utwórz nową Przepływ danych, a następnie nadaj przepływowi danych nazwę DynaCols. Po zakończeniu wybierz pozycję Zakończ.

Tworzenie dynamicznego mapowania kolumn w przepływach danych

W tym samouczku użyjemy przykładowego pliku ocen filmów i zmienimy nazwy kilku pól w źródle na nowy zestaw kolumn docelowych, które mogą się zmieniać z czasem. Zestawy danych, które utworzysz poniżej, powinny wskazywać na ten plik filmów CSV w twoim koncie usługi Storage Blob lub ADLS Gen2. Pobierz plik filmów tutaj i zapisz go na koncie usługi Azure Storage.

Końcowy przepływ

Cele samouczka

Dowiesz się, jak dynamicznie ustawiać nazwy kolumn przy użyciu przepływu danych

  1. Utwórz zestaw danych źródłowych dla pliku filmów CSV.
  2. Utwórz zestaw danych do wyszukiwania dla pliku konfiguracji JSON mapowania pól.
  3. Przekonwertuj kolumny ze źródła na nazwy kolumn docelowych.

Rozpoczynanie od pustej kanwy przepływu danych

Najpierw skonfigurujmy środowisko przepływu danych dla każdego z mechanizmów opisanych poniżej, aby umieścić dane w usłudze ADLS Gen2.

  1. Wybierz transformację źródłową i wywołaj ją movies1.

  2. Wybierz nowy przycisk obok zestawu danych w dolnym panelu.

  3. Wybierz pozycję Blob lub ADLS Gen2 w zależności od miejsca przechowywania pliku moviesDB.csv powyżej.

  4. Dodaj drugie źródło, którego użyjemy do źródła pliku JSON konfiguracji w celu wyszukania mapowań pól.

  5. Wywołaj to jako columnmappings.

  6. W przypadku zestawu danych wskaż nowy plik JSON, który będzie przechowywać konfigurację mapowania kolumn. Możesz wkleić to do pliku JSON na potrzeby tego przykładowego samouczka:

    [
    {"prevcolumn":"title","newcolumn":"movietitle"},
    {"prevcolumn":"year","newcolumn":"releaseyear"}
    ]
    
  7. Ustaw to ustawienie źródłowe na array of documents.

  8. Dodaj trzecie źródło i wywołaj je movies2. Skonfiguruj to dokładnie tak samo jak movies1.

Mapowanie kolumn sparametryzowanych

W tym pierwszym scenariuszu ustawisz nazwy kolumn wyjściowych w przepływie danych, konfigurując mapowanie kolumn na podstawie dopasowywania przychodzących pól z parametrem, który jest tablicą ciągów określającą kolumny i dopasowując każdy indeks tablicy z porządkowym położeniem kolumn przychodzących. Podczas wykonywania tego przepływu danych z potoku, będzie można ustawić różne nazwy kolumn przy każdym wykonaniu potoku, przekazując tę tablicę ciągów jako parametr do aktywności przepływu danych.

Parametry

  1. Wróć do projektanta przepływu danych i edytuj przepływ danych utworzony powyżej.

  2. Wybieranie na karcie parametrów

  3. Utwórz nowy parametr i wybierz typ danych tablicy ciągów

  4. W polu wartość domyślna wprowadź wartość ['a','b','c']

  5. Użyj górnego movies1 źródła, aby zmodyfikować nazwy kolumn tak, by odpowiadały tym wartościom tablicy.

  6. Dodaj przekształcenie typu Wybierz. Przekształcenie Wybierz będzie używane do mapowania kolumn przychodzących do nowych nazw kolumn w danych wyjściowych.

  7. Zmienimy pierwsze trzy nazwy kolumn na nowe nazwy zdefiniowane w parametrze

  8. W tym celu dodaj trzy wpisy mapowania oparte na regułach w dolnym okienku

  9. Dla pierwszej kolumny regułą dopasowania będzie position==1, a nazwa będzie $parameter1[1]

  10. Postępuj zgodnie z tym samym wzorcem dla kolumn 2 i 3

    Wybierz przekształcenie

  11. Wybierz zakładki Inspekcja i Podgląd danych w przekształceniu Select, aby wyświetlić nowe wartości nazw kolumn (a,b,c), zastępując oryginalne nazwy kolumn film, tytuł, gatunek.

Tworzenie buforowanego wyszukiwania mapowań kolumn zewnętrznych

Następnie utworzymy buforowany ujście dla późniejszego wyszukiwania. Pamięć podręczna będzie odczytywać zewnętrzny plik konfiguracyjny JSON, który może być używany do dynamicznego zmieniania nazw kolumn przy każdym wykonaniu przepływu danych.

  1. Wróć do projektanta przepływu danych i edytuj przepływ danych utworzony powyżej. Dodaj przekształcenie typu 'Sink' do źródła columnmappings.
  2. Ustaw typ ujścia na Cache.
  3. W obszarze Ustawienia wybierz prevcolumn jako kolumnę klucza.

Wyszukiwanie nazw kolumn z buforowanej pamięci zwrotnej

Teraz, gdy zawartość pliku konfiguracji jest przechowywana w pamięci, możesz dynamicznie mapować przychodzące nazwy kolumn na nowe nazwy kolumn wychodzących.

  1. Wróć do projektanta przepływu danych i edytuj utworzony powyżej przepływ danych. Wybierz transformację źródłową movies2 .
  2. Dodaj przekształcenie typu Wybierz. Tym razem użyjemy przekształcenia Wybierz, aby zmienić nazwy kolumn na podstawie nazwy docelowej w pliku konfiguracji JSON przechowywanego w buforowanym ujściu.
  3. Dodaj mapowanie oparte na regułach. W przypadku warunku dopasowywania użyj następującej formuły: !isNull(cachedSink#lookup(name).prevcolumn).
  4. Jako nazwę kolumny wyjściowej użyj następującej formuły: cachedSink#lookup($$).newcolumn.
  5. Znaleźliśmy wszystkie nazwy kolumn, które pasują do właściwości prevcolumn z zewnętrznego pliku konfiguracyjnego JSON i zmieniliśmy każdą z nich na nową nazwę newcolumn.
  6. Aby zobaczyć nowe nazwy kolumn z pliku mapowania zewnętrznego, wybierz zakładki Podgląd danych oraz Inspekcja w ramach transformacji Wybierz.

Źródło 2

  • Ukończony potok danych z tego samouczka można pobrać z tutaj
  • Dowiedz się więcej o ujściach przepływu danych.