Udostępnij za pośrednictwem


Przekształcanie danych za pomocą uruchamiania notesu usługi Synapse

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łanie notesu usługi Azure Synapse w potoku usługi Synapse uruchamia notes usługi Synapse. Ten artykuł opiera się na artykule dotyczącym działań przekształcania danych, który zawiera ogólne omówienie transformacji danych i obsługiwanych działań przekształcania. 

Tworzenie działania notesu usługi Synapse

Działanie notesu usługi Synapse można utworzyć bezpośrednio na kanwie potoku usługi Synapse lub w edytorze notesów. Działanie notesu usługi Synapse jest uruchamiane w puli Spark wybranej w notesie usługi Synapse.

Dodawanie działania notesu usługi Synapse z kanwy potoku

Przeciągnij i upuść notes usługi Synapse w obszarze Działania na kanwę potoku usługi Synapse. Wybierz pole działania notesu usługi Synapse i skonfiguruj zawartość notesu dla bieżącego działania w ustawieniach. Możesz wybrać istniejący notes z bieżącego obszaru roboczego lub dodać nowy.

Jeśli wybierzesz istniejący notes z bieżącego obszaru roboczego, możesz kliknąć przycisk Otwórz , aby bezpośrednio otworzyć stronę notesu.

(Opcjonalnie) Możesz również ponownie skonfigurować pulę Platformy Spark\Rozmiar funkcji wykonawczej\Dynamicznie przydzielać funkcje wykonawcze\Min funkcji wykonawczych\Maksymalny rozmiar funkcji wykonawczej\Rozmiar sterownika w ustawieniach. Należy zauważyć, że ustawienia ponownie skonfigurowane w tym miejscu zastąpią ustawienia sesji konfiguracji w notesie. Jeśli nic nie zostanie ustawione w ustawieniach bieżącego działania notesu, zostanie ono uruchomione z ustawieniami sesji konfiguracji w tym notesie.

zrzut ekranu przedstawiający działanie create-notebook

Właściwości Opis Wymagania
Pula platformy Spark Odwołanie do puli Platformy Spark. Z listy możesz wybrać pulę platformy Apache Spark. Jeśli to ustawienie jest puste, zostanie ono uruchomione w puli spark samego notesu. Nie.
Rozmiar funkcji wykonawczej Liczba rdzeni i pamięci, które mają być używane dla funkcji wykonawczych przydzielonych w określonej puli platformy Apache Spark dla sesji. Nie.
Dynamiczne przydzielanie funkcji wykonawczych To ustawienie mapuje na właściwość alokacji dynamicznej w konfiguracji platformy Spark dla alokacji funkcji wykonawczych aplikacji platformy Spark. Nie.
Minimalna liczba funkcji wykonawczych Minimalna liczba funkcji wykonawczych do przydzielenia w określonej puli Spark dla zadania. Nie.
Maksymalna liczba funkcji wykonawczych Maksymalna liczba funkcji wykonawczych do przydzielenia w określonej puli Spark dla zadania. Nie.
Rozmiar sterownika Liczba rdzeni i pamięci, które mają być używane dla sterownika podanego w określonej puli platformy Apache Spark dla zadania. Nie.

Uwaga

Wykonywanie równoległych notesów spark w potokach usługi Azure Synapse jest kolejkowane i wykonywane w sposób FIFO, kolejność zadań w kolejce jest zgodna z sekwencją czasową, czas wygaśnięcia zadania w kolejce wynosi 3 dni. Zwróć uwagę, że kolejka dla notesu działa tylko w potoku synapse.

Dodawanie notesu do potoku usługi Synapse

Wybierz przycisk Dodaj do potoku w prawym górnym rogu, aby dodać notes do istniejącego potoku lub utworzyć nowy potok.

zrzut ekranu przedstawiający dodawanie notesu do potoku

Przekazywanie parametrów

Wyznaczanie komórki parametrów

Aby sparametryzować notes, wybierz wielokropek (...) w celu uzyskania dostępu do większej liczby poleceń na pasku narzędzi komórki. Następnie wybierz pozycję Przełącz komórkę parametru, aby wyznaczyć komórkę jako komórkę parametrów.

zrzut ekranu przedstawiający przełącznik-azure-notebook-parametr

Zdefiniuj parametry w tej komórce. Może to być coś tak prostego, jak:

a = 1
b = 3
c = "Default Value"

Możesz odwoływać się do tych parametrów w innych komórkach i po uruchomieniu notesu, aby użyć wartości domyślnych podanych w komórce parametrów.

Po uruchomieniu tego notesu z potoku usługa Azure Data Factory wyszukuje komórkę parametrów i używa wartości podanych jako wartości domyślnych dla parametrów przekazanych w czasie wykonywania. Jeśli przypiszesz wartości parametrów z potoku, aparat wykonywania doda nową komórkę pod komórką parameters z parametrami wejściowymi, aby zastąpić wartości domyślne.

Przypisywanie wartości parametrów z potoku

Po utworzeniu notesu z parametrami można go wykonać z potoku za pomocą działania notesu usługi Synapse. Po dodaniu działania do kanwy potoku będzie można ustawić wartości parametrów w sekcji Podstawowe parametry na karcie Ustawienia .

zrzut ekranu przedstawiający parametr-assign-a-

Napiwek

Usługa Data Factory nie wypełni automatycznie parametrów. Należy dodać je ręcznie. Pamiętaj, aby użyć dokładnie tej samej nazwy w komórce parametrów w notesie i parametru podstawowego w potoku.

Po dodaniu parametrów do działania usługa Data Factory przekaże wartości określone w działaniu do notesu, a notes zostanie uruchomiony z tymi nowymi wartościami parametrów, a nie wartościami domyślnymi określonymi w komórce parametrów.

Podczas przypisywania wartości parametrów można użyć języka wyrażeń potoku lub zmiennych systemowych.

Odczytywanie wartości wyjściowej komórki notesu usługi Synapse

Wartość danych wyjściowych komórki notesu można odczytać w kolejnych działaniach, wykonując poniższe kroki:

  1. Wywołaj interfejs API mssparkutils.notebook.exit w działaniu notesu usługi Synapse, aby zwrócić wartość, która ma być wyświetlana w danych wyjściowych działania, na przykład:

    mssparkutils.notebook.exit("hello world") 
    

    Zapisanie zawartości notesu i ponowne uruchomienie potoku. Dane wyjściowe działania notesu będą zawierać wartość exitValue, która może być zużywana dla następujących działań w kroku 2.

  2. Odczyt właściwości exitValue z danych wyjściowych działania notesu. Oto przykładowe wyrażenie, które służy do sprawdzania, czy wyjście exitValue pobrane z danych wyjściowych działania notesu jest równe "hello world":

    zrzut ekranu przedstawiający wartość-odczyt-exit-value

Uruchamianie innego notesu usługi Synapse

Możesz odwoływać się do innych notesów w działaniu notesu usługi Synapse za pośrednictwem wywoływania narzędzi notesu %run magic lub mssparkutils. Obie obsługują zagnieżdżanie wywołań funkcji. Kluczowe różnice między tymi dwiema metodami, które należy wziąć pod uwagę na podstawie danego scenariusza, to:

  • %run magic kopiuje wszystkie komórki z notesu, do którego odwołuje się notes, do komórki %run i współudzieli kontekst zmiennej. Gdy notes1 odwołuje się do notesu notebook2 za pośrednictwem %run notebook2 i notebook2 wywołuje funkcję mssparkutils.notebook.exit , wykonanie komórki w notesie notebook1 zostanie zatrzymane. Zalecamy użycie polecenia %run magic, jeśli chcesz "dołączyć" plik notesu.
  • narzędzia notesu mssparkutils wywołuje notes, do którego odwołuje się odwołanie, jako metodę lub funkcję. Kontekst zmiennej nie jest udostępniany. Gdy notes1 odwołuje się do notesu notebook2 za pośrednictwem mssparkutils.notebook.run("notebook2") i notebook2 wywołuje funkcję mssparkutils.notebook.exit , wykonanie komórki w notesie notebook1 będzie kontynuowane. Zalecamy użycie narzędzi notesu mssparkutils, gdy chcesz "zaimportować" notes.

Zobacz historię uruchamiania działania notesu

Przejdź do pozycji Uruchomienia potoku na karcie Monitor . Zostanie wyświetlony wyzwolony potok. Otwórz potok zawierający działanie notesu, aby wyświetlić historię uruchamiania.

Możesz wyświetlić najnowszą migawkę przebiegu notesu, w tym dane wejściowe i wyjściowe komórek, wybierając przycisk Otwórz notes .

Zrzut ekranu przedstawiający historię działań notesu.

Otwórz migawkę notesu:

Zrzut ekranu przedstawiający otwartą migawkę notesu.

Dane wejściowe lub wyjściowe działania notesu można wyświetlić, wybierając przycisk dane wejściowe lub wyjściowe . Jeśli potok nie powiódł się z powodu błędu użytkownika, wybierz dane wyjściowe , aby sprawdzić pole wyniku , aby wyświetlić szczegółowe śledzenie błędów użytkownika.

Zrzut ekranu przedstawiający szczegóły błędu użytkownika.

Definicja działania notesu usługi Synapse

Oto przykładowa definicja JSON działania notesu usługi Synapse:

{
    "name": "parameter_test",
    "type": "SynapseNotebook",
    "dependsOn": [],
    "policy": {
        "timeout": "7.00:00:00",
        "retry": 0,
        "retryIntervalInSeconds": 30,
        "secureOutput": false,
        "secureInput": false
    },
    "userProperties": [],
    "typeProperties": {
        "notebook": {
            "referenceName": "parameter_test",
            "type": "NotebookReference"
        },
        "parameters": {
            "input": {
                "value": {
                    "value": "@pipeline().parameters.input",
                    "type": "Expression"
                }
            }
        }
    }
}

Dane wyjściowe działania notesu usługi Synapse

Oto przykładowy kod JSON danych wyjściowych działania notesu usługi Synapse:

{
{
    "status": {
        "Status": 1,
        "Output": {
            "status": <livySessionInfo>
            },
            "result": {
                "runId": "<GUID>",
                "runStatus": "Succeed",
                "message": "Notebook execution is in Succeeded state",
                "lastCheckedOn": "2021-03-23T00:40:10.6033333Z",
                "errors": {
                    "ename": "",
                    "evalue": ""
                },
                "sessionId": 4,
                "sparkpool": "sparkpool",
                "snapshotUrl": "https://myworkspace.dev.azuresynapse.net/notebooksnapshot/{guid}",
                "exitCode": "abc" // return value from user notebook via mssparkutils.notebook.exit("abc")
            }
        },
        "Error": null,
        "ExecutionDetails": {}
    },

    "effectiveIntegrationRuntime": "DefaultIntegrationRuntime (West US 2)",
    "executionDuration": 234,
    "durationInQueue": {
        "integrationRuntimeQueue": 0
    },
    "billingReference": {
        "activityType": "ExternalActivity",
        "billableDuration": [
            {
                "meterType": "AzureIR",
                "duration": 0.06666666666666667,
                "unit": "Hours"
            }
        ]
    }
}

Znane problemy

Jeśli nazwa notesu jest parametryzowana w działaniu Notes potoku, nie można odwoływać się do wersji notesu w stanie nieopublikowanym w przebiegach debugowania.