Przekształcanie danych przy użyciu działania Skrypt w usłudze Azure Data Factory lub Synapse Analytics

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

Działania przekształcania danych są używane w potoku usługi Data Factory lub Synapse w celu przekształcania i przetwarzania nieprzetworzonych danych w przewidywania i szczegółowych informacji. Działanie Skrypt jest jednym z działań przekształcania, które obsługują potoki. Ten artykuł opiera się na artykule dotyczącym przekształcania danych, który zawiera ogólne omówienie transformacji danych i obsługiwanych działań przekształcania.

Za pomocą działania skryptu można wykonywać typowe operacje za pomocą języka manipulowania danymi (DML) i języka definicji danych (DDL). Instrukcje DML, takie jak INSERT, UPDATE, DELETE i SELECT, umożliwiają użytkownikom wstawianie, modyfikowanie, usuwanie i pobieranie danych w bazie danych. Instrukcje DDL, takie jak CREATE, ALTER i DROP, umożliwiają menedżerowi bazy danych tworzenie, modyfikowanie i usuwanie obiektów bazy danych, takich jak tabele, indeksy i użytkownicy.

Działanie Skrypt umożliwia wywołanie skryptu SQL w jednym z następujących magazynów danych w przedsiębiorstwie lub na maszynie wirtualnej platformy Azure:

Skrypt może zawierać pojedynczą instrukcję SQL lub wiele instrukcji SQL uruchamianych sekwencyjnie. Do następujących celów można użyć zadania Skrypt:

  • Obcinanie tabeli w ramach przygotowań do wstawiania danych.
  • Twórz, zmieniaj i upuszczaj obiekty bazy danych, takie jak tabele i widoki.
  • Utwórz ponownie tabele faktów i wymiarów przed załadowaniem danych do nich.
  • Uruchamianie procedur składowanych. Jeśli instrukcja SQL wywołuje procedurę składowaną, która zwraca wyniki z tabeli tymczasowej, użyj opcji WITH RESULT SETS ,aby zdefiniować metadane dla zestawu wyników.
  • Zapisz zestaw wierszy zwrócony z zapytania jako dane wyjściowe działania dla użycia podrzędnego.

Szczegóły składni

Oto format JSON służący do definiowania działania skryptu:

{ 
   "name": "<activity name>", 
   "type": "Script", 
   "linkedServiceName": { 
      "referenceName": "<name>", 
      "type": "LinkedServiceReference" 
    }, 
   "typeProperties": { 
      "scripts" : [ 
         { 
            "text": "<Script Block>", 
            "type": "<Query> or <NonQuery>", 
            "parameters":[ 
               { 
                  "name": "<name>", 
                  "value": "<value>", 
                  "type": "<type>", 
                  "direction": "<Input> or <Output> or <InputOutput>", 
                  "size": 256 
               }, 
               ... 
            ] 
         }, 
         ... 
      ],     
         ... 
         ] 
      }, 
      "scriptBlockExecutionTimeout": "<time>",  
      "logSettings": { 
         "logDestination": "<ActivityOutput> or <ExternalStore>", 
         "logLocationSettings":{ 
            "linkedServiceName":{ 
               "referenceName": "<name>", 
               "type": "<LinkedServiceReference>" 
            }, 
            "path": "<folder path>" 
         } 
      } 
    } 
} 

W poniższej tabeli opisano następujące właściwości JSON:

Nazwa właściwości Opis Wymagania
name Nazwa działania. Tak
type Typ działania, ustawiony na "Skrypt". Tak
typeProperties Określ właściwości, aby skonfigurować działanie skryptu. Tak
linkedServiceName Docelowa baza danych, na podstawie których jest uruchamiany skrypt. Powinno to być odwołanie do połączonej usługi. Tak
skrypty Tablica obiektów reprezentujących skrypt. Nie.
scripts.text Zwykły tekst bloku zapytań. Nie.
scripts.type Typ bloku zapytań. Może to być zapytanie lub niezapytywanie. Ustawienie domyślne: Zapytanie. Nie.
scripts.parameter Tablica parametrów skryptu. Nie.
scripts.parameter.name Nazwa parametru. Nie.
scripts.parameter.value Wartość parametru. Nie.
scripts.parameter.type Typ danych parametru. Typ jest typem logicznym i następuje mapowanie typów każdego łącznika. Nie.
scripts.parameter.direction Kierunek parametru. Może to być dane wejściowe, wyjściowe, InputOutput. Wartość jest ignorowana, jeśli kierunek to Dane wyjściowe. Typ ReturnValue nie jest obsługiwany. Ustaw wartość zwracaną dostawcy usługi na parametr wyjściowy, aby go pobrać. Nie.
scripts.parameter.size Maksymalny rozmiar parametru. Dotyczy tylko parametru kierunku Output/InputOutput typu string/byte[]. Nie.
scriptBlockExecutionTimeout Czas oczekiwania na ukończenie operacji wykonywania bloku skryptu przed upływem limitu czasu. Nie.
log Ustawienia Ustawienia do przechowywania dzienników wyjściowych. Jeśli nie zostanie określony, dziennik skryptów jest wyłączony. Nie.
log Ustawienia.logDestination Miejsce docelowe danych wyjściowych dziennika. Może to być activityOutput lub ExternalStore. Ustawienie domyślne: ActivityOutput. Nie.
log Ustawienia.logLocation Ustawienia Ustawienia lokalizacji docelowej, jeśli logDestination to ExternalStore. Nie.
logSettiongs.logLocation Ustawienia.linkedServiceName Połączona usługa lokalizacji docelowej. Obsługiwany jest tylko magazyn obiektów blob. Nie.
log Ustawienia.logLocation Ustawienia.path Ścieżka folderu, w której będą przechowywane dzienniki. Nie.

Dane wyjściowe działania

Przykładowe dane wyjściowe:

{ 
    "resultSetCount": 2, 
    "resultSets": [ 
        { 
            "rowCount": 10, 
            "rows":[ 
                { 
                    "<columnName1>": "<value1>", 
                    "<columnName2>": "<value2>", 
                    ... 
                } 
            ] 
        }, 
        ... 
    ], 
    "recordsAffected": 123, 
    "outputParameters":{ 
        "<parameterName1>": "<value1>", 
        "<parameterName2>": "<value2>" 
    }, 
    "outputLogs": "<logs>", 
    "outputLogsLocation": "<folder path>", 
    "outputTruncated": true, 
    ... 
} 
Nazwa właściwości Opis Warunek
resultSetCount Liczba zestawów wyników zwracanych przez skrypt. Zawsze
resultSets Tablica zawierająca wszystkie zestawy wyników. Zawsze
resultSets.rowCount Łączna liczba wierszy w zestawie wyników. Zawsze
resultSets.rows Tablica wierszy w zestawie wyników. Zawsze
Recordsaffected Liczba wierszy, których dotyczy skrypt. Jeśli parametr scriptType ma wartość NonQuery.
Outputparameters Parametry wyjściowe skryptu. Jeśli typ parametru to Output lub InputOutput.
outputLogs Dzienniki zapisane przez skrypt, na przykład, instrukcję print. Jeśli łącznik obsługuje instrukcję dziennika i enableScriptLogs ma wartość true, a parametr logLocation Ustawienia nie jest podany.
outputLogsPath Pełna ścieżka pliku dziennika. Jeśli wartość enableScriptLogs ma wartość true i zostanie podana wartość logLocation Ustawienia.
outputTruncated Wskaźnik, czy dane wyjściowe przekraczają limity i są obcięte. Jeśli dane wyjściowe przekraczają limity.

Uwaga

  • Dane wyjściowe są zbierane za każdym razem, gdy jest wykonywany blok skryptu. Ostateczne dane wyjściowe to scalony wynik wszystkich danych wyjściowych bloku skryptu. Parametr wyjściowy o tej samej nazwie w innym bloku skryptu zostanie zastąpiony.
  • Ponieważ dane wyjściowe mają ograniczenie rozmiaru/wierszy, dane wyjściowe zostaną obcięte w następującej kolejności: dzienniki —> parametry —> wiersze. Należy pamiętać, że dotyczy to pojedynczego bloku skryptu, co oznacza, że wiersze wyjściowe następnego bloku skryptu nie będą wykluczać poprzednich dzienników.
  • Żaden błąd spowodowany przez dziennik nie spowoduje niepowodzenia działania.
  • W przypadku korzystania z wyników danych wyjściowych działania działań związanych z działaniem w dół strumienia zapoznaj się z dokumentacją wyników działania Lookup.
  • Użyj funkcji outputLogs, gdy używasz instrukcji "PRINT" do celów rejestrowania. Jeśli zapytanie zwraca zestawy wyników, będzie ono dostępne w danych wyjściowych działania i będzie ograniczone do 5000 wierszy/4 MB limitu rozmiaru.

Konfigurowanie działania Skrypt przy użyciu interfejsu użytkownika

Skrypt wbudowany

Screenshot showing the UI to configure an inline script.

Skrypty wbudowane dobrze integrują się z ciągłą integracją/ciągłego wdrażania potoku, ponieważ skrypt jest przechowywany jako część metadanych potoku.

Rejestrowanie

Screenshot showing the UI for the logging settings for a script.

Opcje rejestrowania:

  • Wyłącz — żadne dane wyjściowe wykonania nie są rejestrowane.
  • Dane wyjściowe działania — dane wyjściowe wykonywania skryptu są dołączane do danych wyjściowych działania. Może być używany przez działania podrzędne. Rozmiar danych wyjściowych jest ograniczony do 4 MB.
  • Magazyn zewnętrzny — utrwala dane wyjściowe w magazynie. Użyj tej opcji, jeśli rozmiar danych wyjściowych jest większy niż 2 MB lub chcesz jawnie utrwalić dane wyjściowe na koncie magazynu.

Uwaga

Rozliczenia — działanie Skrypt będzie rozliczane jako działania potoku.

Zapoznaj się z następującymi artykułami, które wyjaśniają sposób przekształcania danych na inne sposoby: