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.
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.
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.
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 .
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:
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.
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":
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 .
Otwórz 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.
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.