Tworzenie, opracowywanie i obsługa notesów synapse w programie Azure Synapse Analytics

Notes usługi Synapse to interfejs internetowy, który umożliwia tworzenie plików zawierających kod na żywo, wizualizacje i tekst narracji. Notesy są dobrym miejscem do weryfikowania pomysłów i używania szybkich eksperymentów w celu uzyskania szczegółowych informacji z danych. Notesy są również powszechnie używane w scenariuszach przygotowywania danych, wizualizacji danych, uczenia maszynowego i innych scenariuszy danych big data.

Notes synapse umożliwia:

  • Rozpoczynanie pracy bez nakładu pracy podczas konfigurowania.
  • Zabezpieczanie danych za pomocą wbudowanych funkcji zabezpieczeń przedsiębiorstwa.
  • Analizuj dane w formatach pierwotnych (CSV, txt, JSON itp.), formatach przetworzonych plików (parquet, Delta Lake, ORC itp.) oraz tabelarnych plikach danych SQL w usługach Spark i SQL.
  • Wydajna pracę dzięki ulepszonym możliwościom tworzenia i wbudowanej wizualizacji danych.

W tym artykule opisano sposób używania notesów w Synapse Studio.

Wersja zapoznawcza nowego notesu

Zespół usługi Synapse wprowadził nowy składnik notesów do usługi Synapse Studio, aby zapewnić spójne środowisko notesów dla klientów firmy Microsoft i zmaksymalizować możliwości odnajdywania, produktywności, udostępniania i współpracy. Nowe środowisko notesu jest gotowe do wersji zapoznawczej. Zaznacz przycisk Funkcje w wersji zapoznawczej na pasku narzędzi notesu, aby go włączyć. W poniższej tabeli przedstawiono porównanie funkcji istniejącego notesu (tak zwanego "notesu klasycznego") z nowym notesem w wersji zapoznawczej.

Cecha Notes klasyczny Notes w wersji zapoznawczej
%run Nieobsługiwane
%history Nieobsługiwane
%load Nieobsługiwane
%%html Nieobsługiwane
Przeciąganie i upuszczanie w celu przeniesienia komórki Nieobsługiwane
Konspekt (tabela zawartości) Nieobsługiwane
Eksplorator zmiennych Nieobsługiwane
Formatowanie komórki tekstowej z przyciskami paska narzędzi Niedostępne
Operacja cofania komórki Niedostępne

Tworzenie notesu

Notes można utworzyć na dwa sposoby. Możesz utworzyć nowy notes lub zaimportować istniejący notes do obszaru roboczego synapse z Eksplorator obiektów . Notesy usługi Synapse rozpoznają standardowe Jupyter Notebook IPYNB.

tworzenie notesu importu

Tworzenie notesów

Notesy składają się z komórek, które są poszczególnymi blokami kodu lub tekstu, które mogą być uruchamiane niezależnie lub jako grupa.

Dodawanie komórki

Istnieje wiele sposobów dodawania nowej komórki do notesu.

  1. Rozwiń lewy górny przycisk + Komórka, a następnie wybierz pozycję Dodaj komórkę kodu lub Dodaj komórkę tekstową.

    przycisk add-cell-with-cell-button

  2. Umieść kursor na przestrzeni między dwiema komórkami i wybierz pozycję Dodaj kod lub Dodaj tekst.

    add-cell-between-space

  3. Użyj klawiszy skrótów w trybie polecenia. Naciśnij klawisz A, aby wstawić komórkę nad bieżącą komórką. Naciśnij klawisz B, aby wstawić komórkę poniżej bieżącej komórki.

Ustawianie języka podstawowego

Notesy synapse obsługują cztery Apache Spark języków:

  • pySpark (Python)
  • Spark (Scala)
  • SparkSQL
  • .NET dla Apache Spark (C#)

Język podstawowy dla nowych dodanych komórek można ustawić z listy rozwijanej na górnym pasku poleceń.

default-synapse-language

Korzystanie z wielu języków

W jednym notesie można używać wielu języków, określając poprawne polecenie magic języka na początku komórki. W poniższej tabeli wymieniono polecenia magic służące do przełączania języków komórek.

Magic, polecenie Język Opis
%%pyspark Python Wykonaj zapytanie w języku Python względem kontekstu platformy Spark.
%%spark Scala Wykonaj zapytanie Scala względem kontekstu spark.
%%sql SparkSQL Wykonaj zapytanie SparkSQL względem kontekstu platformy Spark.
%%csharp Platforma .NET dla platformy Spark C # Wykonaj zapytanie platformy .NET dla platformy Spark w języku C# względem kontekstu platformy Spark.

Na poniższej ilustracji przedstawiono przykładowy sposób pisania zapytania PySpark przy użyciu polecenia magic %%pyspark lub zapytania SparkSQL za pomocą polecenia magic %%sql w notesie Spark(Scala). Zwróć uwagę, że podstawowy język notesu jest ustawiony na pySpark.

Polecenia magic platformy Synapse Spark

<a name="use-temp-tables-to-reference-data-across-languages">Używanie tabel tymczasowych do przywoływała dane w różnych językach

W notesie synapse nie można odwoływać się do danych ani zmiennych bezpośrednio w różnych językach. Na platformie Spark można odwoływać się do tabeli tymczasowej w różnych językach. Oto przykład sposobu odczytywania ramki danych w tabeli tymczasowej platformy Spark i używania jej Scala PySpark jako SparkSQL obejścia.

  1. W komórce 1 odczytaj ramek danych z łącznika puli SQL przy użyciu języka Scala i utwórz tabelę tymczasową.

    %%scala
    val scalaDataFrame = spark.read.sqlanalytics(&quot;mySQLPoolDatabase.dbo.mySQLPoolTable")
    scalaDataFrame.createOrReplaceTempView( "mydataframetable" )
    
  2. W komórce 2 odpytuj dane przy użyciu języka Spark SQL.

    %%sql
    SELECT * FROM mydataframetable
    
  3. W komórce 3 użyj danych w aplikacji PySpark.

    %%pyspark
    myNewPythonDataFrame = spark.sql("SELECT * FROM mydataframetable")
    

IntelliSense w stylu środowiska IDE

Notesy synapse są zintegrowane z edytorem Monaco w celu doprowadzenia funkcji IntelliSense w stylu ide do edytora komórek. Wyróżnianie składni, znacznik błędu i automatyczne uzupełnianie kodu ułatwiają pisanie kodu i szybsze identyfikowanie problemów.

Funkcje IntelliSense są na różnych poziomach dojrzałości dla różnych języków. Skorzystaj z poniższej tabeli, aby zobaczyć, co jest obsługiwane.

Języki Wyróżnianie składni Znacznik błędu składni Uzupełnianie kodu składni Uzupełnianie kodu zmiennej Uzupełnianie kodu funkcji systemowej Uzupełnianie kodu funkcji użytkownika Inteligentne wcięcie Składanie kodu
PySpark (Python) Tak Tak Tak Tak Tak Tak Tak Tak
Spark (Scala) Tak Tak Tak Tak - - - Tak
SparkSQL Tak Tak - - - - - -
.NET for Spark (C#) Tak - - - - - - -

Wstawki kodu

Notesy usługi Synapse zawierają fragmenty kodu, które ułatwiają wprowadzanie typowych używanych wzorców kodu, takich jak konfigurowanie sesji spark, odczytywanie danych jako ramki danych platformy Spark lub rysowanie wykresów za pomocą matplotlib itp.

Fragmenty kodu są wyświetlane w funkcji IntelliSense mieszane z innymi sugestiami. Zawartość fragmentów kodu jest wyrównana z językiem komórki kodu. Możesz zobaczyć dostępne fragmenty kodu, wpisując fragment kodu lub dowolne słowa kluczowe wyświetlane w tytule fragmentu kodu w edytorze komórek kodu. Na przykład po wpisaniu tekstu odczyt można wyświetlić listę fragmentów kodu do odczytywania danych z różnych źródeł danych.

Fragmenty kodu synapse

Formatowanie komórki tekstowej z przyciskami paska narzędzi

Możesz użyć przycisków formatowania na pasku narzędzi komórek tekstowych, aby wykonać typowe akcje w formacie markdown. Obejmuje ona pogrubienie tekstu, kursywę tekstu, wstawianie fragmentów kodu, wstawianie nieuporządkowanych list, wstawianie uporządkowanej listy i wstawianie obrazu z adresu URL.

Pasek narzędzi komórki tekstowej synapse

Cofanie operacji na komórkach

Wybierz przycisk cofania lub naciśnij klawisze Ctrl+Z, aby odwołać najnowszą operację komórki. Teraz możesz cofnąć maksymalnie 20 ostatnich historycznych akcji komórek.

Komórki cofania synapse

Przenoszenie komórki

Wybierz wielokropek (...), aby uzyskać dostęp do menu akcji innych komórek po prawej stronie. Następnie wybierz pozycję Przenieś komórkę w górę lub Przenieś komórkę w dół, aby przenieść bieżącą komórkę.

Możesz również użyć klawiszy skrótów w trybie polecenia. Naciśnij klawisze Ctrl+Alt+↑, aby przejść w górę bieżącej komórki. Naciśnij klawisze Ctrl+Alt+↓, aby przenieść bieżącą komórkę w dół.

przenoszenie komórki

Usuwanie komórki

Aby usunąć komórkę, wybierz wielokropek (...), aby uzyskać dostęp do menu akcji innych komórek po prawej stronie, a następnie wybierz pozycję Usuń komórkę.

Możesz również użyć klawiszy skrótów w trybie polecenia. Naciśnij klawisze D,D, aby usunąć bieżącą komórkę.

usuwanie komórki

Zwijanie danych wejściowych komórki

Wybierz przycisk strzałki w dolnej części bieżącej komórki, aby go zwinąć. Aby ją rozwinąć, wybierz przycisk strzałki, gdy komórka jest zwinięta.

zwiń komórkę — wejście

Zwinięcie danych wyjściowych komórki

Wybierz przycisk zwiń dane wyjściowe w lewym górnym rogu bieżących danych wyjściowych komórki, aby je zwinąć. Aby ją rozwinąć, wybierz pozycję Pokaż dane wyjściowe komórki, gdy dane wyjściowe komórki są zwinięte.

zwiń dane wyjściowe w komórce

Konspekt notesu

Nieobsługiwane.

Uruchamianie notesów

Komórki kodu w notesie można uruchamiać pojedynczo lub wszystkie jednocześnie. Stan i postęp każdej komórki są reprezentowane w notesie.

Uruchamianie komórki

Istnieje kilka sposobów uruchamiania kodu w komórce.

  1. Umieść kursor na komórce, którą chcesz uruchomić, i wybierz przycisk Run Cell (Uruchom komórkę) lub naciśnij klawisze Ctrl+Enter.

    run-cell-1

  2. Użyj klawiszy skrótów w trybie polecenia. Naciśnij klawisze Shift+Enter, aby uruchomić bieżącą komórkę i wybrać komórkę poniżej. Naciśnij klawisze Alt+Enter, aby uruchomić bieżącą komórkę i wstawić nową komórkę poniżej.


Uruchamianie wszystkich komórek

Wybierz przycisk Uruchom wszystko, aby uruchomić kolejno wszystkie komórki w bieżącym notesie.

run-all-cells

Uruchom wszystkie komórki powyżej lub poniżej

Aby uzyskać dostęp do menu akcji innych komórek po prawej stronie, wybierz wielokropek (...). Następnie wybierz pozycję Uruchom komórki powyżej, aby uruchomić wszystkie komórki powyżej bieżącej sekwencji. Wybierz pozycję Uruchom komórki poniżej, aby uruchomić wszystkie komórki poniżej bieżącej sekwencji.

run-cells-above-or-below

Anulowanie wszystkich uruchomionych komórek

Wybierz przycisk Anuluj wszystko, aby anulować uruchomione komórki lub komórki oczekujące w kolejce. anulowanie wszystkich komórek

Informacje o notesach

Nieobsługiwane.

Eksplorator zmiennych

Nieobsługiwane.

Wskaźnik stanu komórki

Stan wykonywania komórki krok po kroku jest wyświetlany poniżej komórki, aby ułatwić wyświetlanie bieżącego postępu. Po zakończeniu działania komórki zostanie wyświetlone podsumowanie wykonywania z łącznym czasem trwania i czasem zakończenia, które będzie przechowywane w przyszłości.

stan komórki

Wskaźnik postępu platformy Spark

Notes synapse jest czystym bazą danych Spark. Komórki kodu są wykonywane zdalnie w puli Apache Spark serwera. Wskaźnik postępu zadania platformy Spark jest dostarczany z wyświetlonym pasek postępu w czasie rzeczywistym, który pomaga zrozumieć stan wykonywania zadania. Liczba zadań na każde zadanie lub etap pomaga zidentyfikować poziom równoległy zadania platformy Spark. Możesz również przejść do szczegółów interfejsu użytkownika platformy Spark określonego zadania (lub etapu), wybierając link w nazwie zadania (lub etapu).

spark-progress-indicator

Konfiguracja sesji platformy Spark

Możesz określić czas trwania limitu czasu, liczbę i rozmiar wykonawców, które mają zostać nadane bieżącej sesji platformy Spark, w skrypcie Konfigurowanie sesji. Aby zmiany konfiguracji zaszły, uruchom ponownie sesję platformy Spark. Wszystkie buforowane zmienne notesu zostaną wyczyszone.

zarządzanie sesjami

Polecenie magic konfiguracji sesji platformy Spark

Ustawienia sesji platformy Spark można również określić za pomocą polecenia magic %%configure. Sesja platformy Spark wymaga ponownego uruchomienia w celu efektu ustawień. Zalecamy uruchomienie %%configure na początku notesu. Oto przykład, aby zapoznać się z https://github.com/cloudera/livy#request-body pełną listą prawidłowych parametrów

%%configure -f
{
    to config the session.
    "driverMemory":"2g",
    "driverCores":3,
    "executorMemory":"2g",
    "executorCores":2,
    "jars":["myjar1.jar","myjar.jar"],
    "conf":{
        "spark.driver.maxResultSize":"10g"
    }
}

Uwaga

Polecenie magic konfiguracji sesji platformy Spark nie jest obsługiwane w potoku synapse.

Bring data to a notebook (Przyniesienie danych do notesu)

Dane można załadować z Azure Blob Storage, usługi Azure Data Lake Store Gen 2 i puli SQL, jak pokazano w poniższych przykładach kodu.

Odczytywanie pliku CSV z usługi Azure Data Lake Store Gen2 jako ramki danych platformy Spark

from pyspark.sql import SparkSession
from pyspark.sql.types import *
account_name = "Your account name"
container_name = "Your container name"
relative_path = "Your path"
adls_path = 'abfss://%s@%s.dfs.core.windows.net/%s' % (container_name, account_name, relative_path)

df1 = spark.read.option('header', 'true') \
                .option('delimiter', ',') \
                .csv(adls_path + '/Testfile.csv')

Odczytywanie pliku CSV z Azure Blob Storage jako ramki danych platformy Spark


from pyspark.sql import SparkSession

# Azure storage access info
blob_account_name = 'Your account name' # replace with your blob name
blob_container_name = 'Your container name' # replace with your container name
blob_relative_path = 'Your path' # replace with your relative folder path
linked_service_name = 'Your linked service name' # replace with your linked service name

blob_sas_token = mssparkutils.credentials.getConnectionStringOrCreds(linked_service_name)

# Allow SPARK to access from Blob remotely

wasb_path = 'wasbs://%s@%s.blob.core.windows.net/%s' % (blob_container_name, blob_account_name, blob_relative_path)

spark.conf.set('fs.azure.sas.%s.%s.blob.core.windows.net' % (blob_container_name, blob_account_name), blob_sas_token)
print('Remote blob path: ' + wasb_path)

df = spark.read.option("header", "true") \
            .option("delimiter","|") \
            .schema(schema) \
            .csv(wasbs_path)

Odczytywanie danych z podstawowego konta magazynu

Dostęp do danych można uzyskać bezpośrednio na podstawowym koncie magazynu. Nie ma potrzeby podania kluczy tajnych. W Eksplorator danych kliknij prawym przyciskiem myszy plik i wybierz pozycję Nowy notes, aby wyświetlić nowy notes z automatycznie wygenerowanym wyodrębniaczem danych.

data-to-cell

Zapisywanie notesów

Możesz zapisać pojedynczy notes lub wszystkie notesy w obszarze roboczym.

  1. Aby zapisać zmiany wprowadzone w jednym notesie, wybierz przycisk Publikuj na pasku poleceń notesu.

    publikowanie notesu

  2. Aby zapisać wszystkie notesy w obszarze roboczym, wybierz przycisk Opublikuj wszystko na pasku poleceń obszaru roboczego.

    publish-all

We właściwościach notesu można określić, czy podczas zapisywania mają być dołączane dane wyjściowe komórki.

notebook-properties

Polecenia magiczne

W notesach synapse można używać znanych poleceń magic jupyter. Przejrzyj następującą listę jako bieżące dostępne polecenia magic. Poinformuj nas o swoich przypadkach użycia w usłudze GitHub, abyśmy w dalszym ciągu tworzyli więcej poleceń magicznych spełniających Twoje potrzeby.

Uwaga

W potoku usługi Synapse są obsługiwane tylko następujące polecenia magic: %%pyspark, %%spark, %%csharp, %%sql.

Integrowanie notesu

Dodawanie notesu do potoku

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

Dodawanie notesu do potoku

Wyznaczanie komórki parameters

Aby sparametryzować notes, wybierz wielokropek (...), aby uzyskać dostęp do menu akcji innych komórek po prawej stronie. Następnie wybierz pozycję Przełącz komórkę parametru, aby wyznaczyć komórkę jako komórkę parameters.

toggle-parameter

Azure Data Factory szuka komórki parameters i traktuje tę komórkę jako wartości domyślne dla parametrów przekazanych w czasie wykonywania. Aparat wykonywania doda nową komórkę poniżej komórki parameters z parametrami wejściowymi, aby zastąpić wartości domyślne. Jeśli komórka parameters nie zostanie wyznaczona, wstrzyknięta komórka zostanie wstawiona w górnej części notesu.

Przypisywanie wartości parametrów z potoku

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

Przypisywanie parametru

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

Klawisze skrótów

Podobnie jak w przypadku notesów Jupyter Notebook, notesy synapse mają modalny interfejs użytkownika. Klawiatura robi różne rzeczy w zależności od trybu, w którym znajduje się komórka notesu. Notesy synapse obsługują następujące dwa tryby dla danej komórki kodu: tryb polecenia i tryb edycji.

  1. Komórka jest w trybie polecenia, gdy nie ma kursora tekstowego monitowania o wpisanie. Gdy komórka jest w trybie polecenia, możesz edytować notes jako całość, ale nie wpisywać tekstu w pojedynczych komórkach. Wprowadź tryb polecenia, naciskając lub używając myszy, aby wybrać ESC poza obszarem edytora komórki.

    tryb poleceń

  2. Tryb edycji jest wskazywany przez kursor tekstowy z monitem o wpisanie w obszarze edytora. Gdy komórka jest w trybie edycji, możesz wpisać w komórce. Wprowadź tryb edycji, naciskając lub używając myszy, aby wybrać Enter pozycję w obszarze edytora komórki.

    edit-mode

Klawisze skrótów w trybie polecenia

Za pomocą następujących skrótów klawiszy można łatwiej nawigować i uruchamiać kod w notesach usługi Synapse.

Akcja Skróty notesu synapse
Uruchom bieżącą komórkę i wybierz poniżej Shift+Enter
Uruchom bieżącą komórkę i wstaw poniżej Alt+Enter
Wybierz komórkę powyżej W górę
Wybierz komórkę poniżej W dół
Wstaw komórkę powyżej A
Wstaw komórkę poniżej B
Rozszerzanie zaznaczonych komórek powyżej Shift+ W górę
Rozszerzanie zaznaczonych komórek poniżej Shift + W dół
Przenieś komórkę w górę Ctrl+Alt+↑
Przenieś komórkę w dół Ctrl+Alt+↓
Usuwanie zaznaczonych komórek D, D
Przełączanie do trybu edycji Enter

Klawisze skrótów w trybie edycji

Korzystając z poniższych skrótów klawiszy, można łatwiej nawigować i uruchamiać kod w notesach usługi Synapse w trybie edycji.

Akcja Skróty notesu synapse
Przesuwanie kursora w górę W górę
Przesuwanie kursora w dół W dół
Cofnij Ctrl + Z
Ponów Ctrl + Y
Komentarz/komentarz Ctrl + /
Usuń słowo przed Ctrl + Backspace
Usuń wyraz po Ctrl + Delete
Przejdź do rozpoczęcia komórki Ctrl + Strona główna
Przejdź do końca komórki Ctrl + koniec
Przejdź o jeden wyraz w lewo Ctrl + lewo
Przejdź o jeden wyraz w prawo Ctrl + w prawo
Zaznacz wszystko Ctrl + A
Wcięcie Ctrl +]
Dedent Ctrl + [
Przełączanie do trybu polecenia Esc

Następne kroki