Udostępnij przez


Wykorzystaj doświadczenie w Pythonie na notatniku

Notebook Python to nowe doświadczenie zbudowane na bazie notesu Fabric. Jest to uniwersalne i interaktywne narzędzie przeznaczone do analizy danych, wizualizacji i uczenia maszynowego. Zapewnia bezproblemowe środowisko programowania do pisania i wykonywania kodu w języku Python. Ta funkcja sprawia, że jest to niezbędne narzędzie dla analityków danych, analityków i deweloperów analizy biznesowej, szczególnie w przypadku zadań eksploracji, które nie wymagają danych big data i przetwarzania rozproszonego.

Za pomocą notesu języka Python możesz uzyskać następujące możliwości:

  • Wiele wbudowanych jąder Pythona: Notesy Pythona oferują czyste środowisko kodowania w Pythonie bez platformy Spark, z dwiema wersjami jądra – Python 3.10 i 3.11 dostępne domyślnie, a także obsługiwane są natywne funkcje IPython, takie jak iPyWidget i polecenia magiczne.

  • Opłacalne: Nowy notatnik Python oferuje korzyści oszczędnościowe dzięki uruchamianiu w klastrze z jednym węzłem, z domyślną konfiguracją 2 vCore/16 GB pamięci. Ta konfiguracja zapewnia efektywne wykorzystanie zasobów w projektach eksploracji danych o mniejszym rozmiarze.

  • Lakehouse & Resources są natywnie dostępne: Pełna funkcjonalność usługi Fabric Lakehouse wraz z wbudowanymi zasobami notebooka jest dostępna w notesie języka Python. Ta funkcja umożliwia użytkownikom łatwe przenoszenie danych do notatnika Pythona, po prostu spróbuj drag & drop, aby uzyskać fragment kodu.

  • Połącz programowanie z językiem T-SQL: Notatnik Python oferuje łatwy sposób na interakcję z hurtownią danych i punktami końcowymi SQL, korzystając z narzędzia notebookutils, można łatwo wykonywać skrypty T-SQL w środowisku Python.

  • Obsługa popularnych bibliotek analizy danych: Notesy języka Python są dostarczane ze wstępnie zainstalowanymi bibliotekami, takimi jak DuckDB, Polars i Scikit-learn, zapewniając kompleksowy zestaw narzędzi do manipulacji danymi, analizy i uczenia maszynowego.

  • Zaawansowana funkcja IntelliSense: notebook Python wdraża Pylance jako silnik intellisense wraz z innymi usługami językowymi dostosowanymi do Fabric, co ma na celu zapewnienie najnowocześniejszego środowiska kodowania dla deweloperów notebooków.

  • NotebookUtils & link semantyczny: Zaawansowane zestawy narzędzi API umożliwiają łatwe korzystanie z możliwości Fabric i Power BI dzięki środowisku opartemu na kodzie.

  • Rozbudowanych możliwości wizualizacji: Poza popularną funkcją podglądu ramki danych "Table" i funkcją "Chart", obsługujemy również popularne biblioteki wizualizacji, takie jak Matplotlib, Seaborn i Plotly. Program PowerBIClient obsługuje również te biblioteki, aby ułatwić użytkownikom lepsze zrozumienie wzorców danych i szczegółowych informacji.

  • typowe możliwości notesu Fabric: Wszystkie funkcje na poziomie notesu są naturalnie dostępne dla notesu języka Python, takie jak funkcje edycji, auto-zapis, współpraca, udostępnianie i zarządzanie uprawnieniami, integracja z usługą Git, importowanie/eksportowanie itp.

  • pełne stackowe możliwości nauki o danych: zaawansowany zestaw narzędzi low-code do analizy danych Data Wrangler, struktura uczenia maszynowego MLFlow i zaawansowany Copilot są dostępne w notebooku języka Python.

Jak uzyskać dostęp do notesu języka Python

Po otwarciu Notatnika Fabric, możesz przełączyć się na Python w menu rozwijanym języka na karcie Strona główna i przekonwertować całą konfigurację notesu na Python.

Zrzut ekranu przedstawiający przełączanie na język Python z menu języka notesu.

Większość typowych funkcji jest obsługiwana na poziomie notesu. Możesz zapoznać się z Jak używać notesów usługi Microsoft Fabric oraz Opracowywanie, wykonywanie i zarządzanie notesami usługi Microsoft Fabric, aby dowiedzieć się więcej na temat szczegółowego użycia. W tym miejscu wymieniono niektóre kluczowe możliwości specyficzne dla scenariuszy języka Python.

Uruchamianie notesów języka Python

Notatnik języka Python obsługuje różne sposoby wykonywania zadań.

  • Uruchamianie interakcyjne: książkę języka Python można uruchamiać interaktywnie jak natywną książkę Jupyter.
  • Uruchamianie harmonogramu: możesz użyć lekkiego środowiska harmonogramu na stronie ustawień notesu, aby uruchomić notes języka Python jako zadanie wsadowe.
  • Uruchamianie potoku: Możesz orkiestrować notesy języka Python jako zadania notesu w potoku. Migawka zostanie wygenerowana po wykonaniu zadania.
  • Przebieg referencyjny: możesz użyć polecenia notebookutils.notebook.run() lub notebookutils.notebook.runMultiple() do odwoływania się do uruchamiania notesów Pythona w innym notesie Pythona jako zadania wsadowego. Migawka zostanie wygenerowana po zakończeniu wzorcowego przebiegu.
  • Uruchomienie publicznego interfejsu API: możesz zaplanować uruchomienie notatnika Python przy użyciu publicznego interfejsu API do uruchamiania notatników, upewnij się, że właściwości języka i jądra w metadanych notatnika w przesyłce publicznego interfejsu API są odpowiednio skonfigurowane.

Szczegóły uruchomienia zadania notesu języka Python można monitorować na karcie wstążki Uruchom ->Wyświetl wszystkie uruchomienia.

Interakcja z danymi

Możesz wchodzić w interakcje z Lakehouse, magazynami danych, punktami końcowymi SQL i wbudowanymi folderami zasobów w notatniku Pythona.

Note

  • Środowisko uruchomieniowe notesu języka Python jest dostarczane z bibliotekami delta-rs i duckdb, które wspierają odczyt i zapis danych Delta Lake. Należy jednak pamiętać, że niektóre funkcje usługi Delta Lake mogą nie być obecnie w pełni obsługiwane. Aby uzyskać więcej szczegółów i najnowszych aktualizacji, zapoznaj się z oficjalnymi witrynami delta-rs i duckdb .
  • Obecnie nie obsługujemy funkcji deltalake(delta-rs) w wersji 1.0.0 lub nowszej. Bądź na bieżąco.

Interakcja z usługą Lakehouse

Możesz ustawić usługę Lakehouse jako domyślną lub dodać wiele usług Lakehouse do eksplorowania i używania ich w notesach.

Jeśli nie znasz odczytywania obiektów danych, takich jak tabela delty, spróbuj przeciągnąć i upuść plik i tabelę delty na kanwę notesu lub użyć menu rozwijanego Załaduj dane . Notatnik automatycznie wstawia fragment kodu do komórki kodu i generuje kod do odczytywania docelowego obiektu danych.

Note

Jeśli podczas ładowania dużej ilości danych wystąpi OOM, spróbuj użyć biblioteki DuckDB, Polars lub PyArrow zamiast biblioteki pandas.

Operację write Lakehouse można znaleźć w Przeglądanie fragmentu kodu —>Zapisywanie danych w tabeli delty.

Zrzut ekranu przedstawiający operację zapisu w systemie lakehouse.

Interakcja z hurtownią danych i programowanie mieszane za pomocą języka T-SQL

Magazyny danych lub punkty końcowe SQL można dodać w Eksploratorze magazynu Notebook. Podobnie możesz przeciągać i upuszczać tabele na kanwę notesu lub używać operacji skrótów w menu rozwijanym tabeli. Notebook automatycznie generuje dla Ciebie fragment kodu. Możesz użyć narzędzi notebookutils.data do nawiązania połączenia z magazynami i wykonywania zapytań dotyczących danych przy użyciu instrukcji języka T-SQL w kontekście języka Python.

Zrzut ekranu przedstawiający skróty dla tabeli magazynowej.

Note

Punkty końcowe SQL są tutaj tylko do odczytu.

Folder zasobów notatnika

Folder wbudowane zasoby notesu jest natywnie dostępny w notesie języka Python. Możesz łatwo wchodzić w interakcję z plikami w wbudowanym folderze zasobów przy użyciu kodu języka Python, tak jak w przypadku pracy z lokalnym systemem plików. Obecnie folder zasobów środowiska nie jest obsługiwany.

Operacje jądra

Notesbooki Pythona obsługują obecnie dwa wbudowane jądra, są to Python 3.10 i Python 3.11. Domyślnie wybrane jądro to Python 3.11. można łatwo przełączać się między nimi.

Możesz przerwać, uruchomić ponownie lub przełączyć jądro na karcie Strona główna na wstążce. Przerywanie jądra w notesach Python jest jak zatrzymanie komórki w notesie Spark.

Zrzut ekranu przedstawiający operacje jądra.

Nieprawidłowe zakończenie jądra powoduje przerwanie wykonywania kodu i utratę zmiennych, ale nie zatrzymuje sesji notatnika.

Istnieją polecenia, które mogą prowadzić do śmierci jądra. Na przykład quit(), exit().

Zarządzanie biblioteką

Polecenia %pip i %conda można używać do instalacji wbudowanych, polecenia obsługują biblioteki publiczne i dostosowane biblioteki.

W przypadku niestandardowych bibliotek można przekazać pliki lib do folderu Wbudowane zasoby . Obsługujemy wiele typów bibliotek, w tym formaty, takie jak Wheel (.whl), JAR (.jar), DLL (.dll) i Python (.py). Wystarczy spróbować przeciągnąć i upuść do pliku, a fragment kodu zostanie wygenerowany automatycznie.

Może być konieczne ponowne uruchomienie jądra w celu korzystania ze zaktualizowanych pakietów.

Aby lepiej zrozumieć i użyć podobnych poleceń, zapoznaj się z poniższą tabelą.

Command/Syntax Główny cel Jak to działa w Jupyter Notebook Typowy przypadek użycia Notes
%pip install package Instalowanie pakietów języka Python Uruchamia pip w jądrze języka Python notebooka Zalecany sposób instalowania pakietów W notesie języka Python, podobnie jak !pip, nie uruchamia jądra automatycznie
!pip install package Instalowanie pakietów języka Python za pośrednictwem powłoki Uruchamia pip jako polecenie powłoki Alternatywny sposób instalowania pakietów W notesie języka Python, podobnie jak %pip, nie uruchamia jądra automatycznie
import sys; sys.exit(0) Uruchom ponownie jądro notatnika Natychmiast ponownie uruchamia jądro Programowe ponowne uruchamianie jądra Czyści wszystkie zmienne i stany; nie zaleca się bezpośredniego używania
notebookutils.session.restartPython() Uruchom ponownie jądro notatnika Wywołuje sys.exit(0) wewnętrznie Zalecany sposób ponownego uruchomienia jądra Oficjalny interfejs API, bezpieczniejszy i bardziej zgodny niż użycie bezpośrednio sys.exit(0)

Note

  • W notatniku %pip i !pip języka Python mają takie samo zachowanie: zarówno zainstalują pakiety w środowisku bieżącego jądra, jak również nie spowodują automatycznego ponownego uruchomienia jądra po zainstalowaniu.
  • Jeśli musisz ponownie uruchomić jądro (na przykład po zainstalowaniu niektórych pakietów), zaleca się użycie polecenia notebookutils.session.restartPython() zamiast import sys; sys.exit(0).
    • notebookutils.session.restartPython() to oficjalny interfejs API, który opakowuje sys.exit(0) i jest bezpieczniejszy oraz bardziej zgodny w środowiskach notebooków.
  • Nie zaleca się używania sys.exit(0) bezpośrednio, chyba że jest to konieczne.

Monitorowanie użycia zasobów w czasie rzeczywistym w notatniku Python

Ważne

Ta funkcja jest dostępna w wersji zapoznawczej.

Za pomocą okienka monitora zasobów można śledzić krytyczne informacje o czasie wykonywania, takie jak czas trwania sesji, typ obliczeniowy i metryki zasobów czasu rzeczywistego, w tym użycie procesora CPU i pamięci, bezpośrednio w notesie. Ta funkcja zapewnia natychmiastowe omówienie aktywnej sesji i używanych zasobów.

Monitor zasobów zwiększa wgląd w sposób, w jaki obciążenia języka Python wykorzystują zasoby systemowe. Pomaga to zoptymalizować wydajność, zarządzać kosztami i zmniejszać ryzyko błędów braku pamięci (OOM). Monitorując metryki w czasie rzeczywistym, można identyfikować operacje intensywnie korzystające z zasobów, analizować wzorce użycia i podejmować świadome decyzje dotyczące skalowania lub modyfikowania kodu.

Aby rozpocząć korzystanie z niego, ustaw język notesu na Python i rozpocznij sesję. Następnie możesz otworzyć monitor, klikając zasoby obliczeniowe na pasku stanu notesu lub wybierając pozycję Wyświetl użycie zasobów na pasku narzędzi. Okienko monitora zasobów zostanie wyświetlone automatycznie, zapewniając zintegrowane środowisko monitorowania kodu języka Python w notesach usługi Fabric.

Zrzut ekranu przedstawiający monitorowanie zasobów w czasie rzeczywistym w notebooku Pythona.

Magiczne polecenie konfiguracji sesji

Podobnie jak w przypadku personalizacji konfiguracji sesji platformy Spark w notesie, możesz również użyć %%configure w notesie języka Python. Notebook Python obsługuje dostosowywanie rozmiaru węzła obliczeniowego, punktów montowania i domyślnego lakehouse'u w sesji notebooka. Mogą być używane zarówno w działaniach zeszytu interaktywnego, jak i zeszytu procesu. Zalecamy użycie polecenia %%configure na początku notesu lub ponowne uruchomienie sesji notesu, aby ustawienia zaczęły obowiązywać.

Oto obsługiwane właściwości w notesie języka Python %%configure:

%%configure -f
{
    "vCores": 4, // Recommended values: [4, 8, 16, 32, 64], Fabric will allocate matched memory according to the specified vCores.
    "defaultLakehouse": {  
        // Will overwrites the default lakehouse for current session
        "name": "<lakehouse-name>",
        "id": "<(optional) lakehouse-id>",
        "workspaceId": "<(optional) workspace-id-that-contains-the-lakehouse>" // Add workspace ID if it's from another workspace
    },
    "mountPoints": [
        {
            "mountPoint": "/myMountPoint",
            "source": "abfs[s]://<file_system>@<account_name>.dfs.core.windows.net/<path>"
        },
        {
            "mountPoint": "/myMountPoint1",
            "source": "abfs[s]://<file_system>@<account_name>.dfs.core.windows.net/<path1>"
        },
    ],
}

Możesz wyświetlić aktualizację zasobów obliczeniowych na pasku stanu notesu i monitorować użycie procesora CPU i pamięci węzła obliczeniowego w czasie rzeczywistym.

Zrzut ekranu przedstawiający aktualizację zasobów obliczeniowych.

NotebookUtils

Notebook Utilities (NotebookUtils) to wbudowany pakiet ułatwiający wykonywanie typowych zadań w Fabric Notebook. Jest ona wstępnie zainstalowana w środowisku uruchomieniowym języka Python. Narzędzia NotebookUtils umożliwiają pracę z systemami plików, uzyskiwanie zmiennych środowiskowych, łączenie notatników, uzyskiwanie dostępu do magazynu zewnętrznego i pracę z tajnymi danymi.

Możesz użyć notebookutils.help() do wyświetlenia listy dostępnych interfejsów API oraz uzyskania pomocy dotyczącej metod lub odwołania się do dokumentacji NotebookUtils.

Narzędzia danych

Note

Obecnie funkcja jest dostępna w wersji zapoznawczej.

Za pomocą narzędzi notebookutils.data można nawiązać połączenie z podanym źródłem danych, a następnie odczytywać i wykonywać zapytania o dane przy użyciu instrukcji języka T-SQL.

Uruchom następujące polecenie, aby uzyskać przegląd dostępnych metod:

notebookutils.data.help()

Output:

Help on module notebookutils.data in notebookutils:

NAME
    notebookutils.data - Utility for read/query data from connected data sources in Fabric

FUNCTIONS
    connect_to_artifact(artifact: str, workspace: str = '', artifact_type: str = '', **kwargs)
        Establishes and returns an ODBC connection to a specified artifact within a workspace 
        for subsequent data queries using T-SQL.
        
        :param artifact: The name or ID of the artifact to connect to.
        :param workspace:  Optional; The workspace in which the provided artifact is located, if not provided,
                             use the workspace where the current notebook is located.
        :param artifactType: Optional; The type of the artifact, Currently supported type are Lakehouse, Warehouse and MirroredDatabase. 
                                If not provided, the method will try to determine the type automatically.
        :param **kwargs Optional: Additional optional configuration. Supported keys include:
            - tds_endpoint : Allow user to specify a custom TDS endpoint to use for connection.
        :return: A connection object to the specified artifact.
        
        :raises UnsupportedArtifactException: If the specified artifact type is not supported to connect.
        :raises ArtifactNotFoundException: If the specified artifact is not found within the workspace.
        
        Examples:
            sql_query = "SELECT DB_NAME()"
            with notebookutils.data.connect_to_artifact("ARTIFACT_NAME_OR_ID", "WORKSPACE_ID", "ARTIFACT_TYPE") as conn:
                df = conn.query(sql_query)
                display(df)
    
    help(method_name: str = '') -> None
        Provides help for the notebookutils.data module or the specified method.
        
        Examples:
        notebookutils.data.help()
        notebookutils.data.help("connect_to_artifact")
        :param method_name: The name of the method to get help with.

DATA
    __all__ = ['help', 'connect_to_artifact']

FILE
    /home/trusted-service-user/jupyter-env/python3.10/lib/python3.10/site-packages/notebookutils/data.py

Wykonywanie zapytań dotyczących danych z usługi Lakehouse

conn = notebookutils.data.connect_to_artifact("lakehouse_name_or_id", "optional_workspace_id", "optional_lakehouse_type")
df = conn.query("SELECT * FROM sys.schemas;")

Wykonywanie zapytań dotyczących danych z magazynu

conn = notebookutils.data.connect_to_artifact("warehouse_name_or_id", "optional_workspace_id", "optional_warehouse_type")
df = conn.query("SELECT * FROM sys.schemas;")

Wykonywanie zapytań dotyczących danych z bazy danych SQL

conn = notebookutils.data.connect_to_artifact("sqldb_name_or_id", "optional_workspace_id", "optional_sqldatabase_type") 
df = conn.query("SELECT * FROM sys.schemas;")

Note

Narzędzia danych w NotebookUtils są obecnie dostępne tylko w notatniku Pythona.

Przeglądanie fragmentów kodu

Przydatne fragmenty kodu w języku Python można znaleźć na karcie Edytuj>-Przeglądaj fragmenty kodu. Nowe przykłady języka Python są teraz dostępne. Możesz poznać fragment kodu języka Python, aby rozpocząć eksplorowanie notatnika.

zrzut ekranu przedstawiający miejsce przeglądania fragmentów kodu w języku Python.

Link semantyczny to funkcja umożliwiająca nawiązanie połączenia między modelami semantycznymi i nauką o danych synapse w usłudze Microsoft Fabric. Jest ona natywnie obsługiwana w notatniku Pythona. Inżynierowie analizy biznesowej i deweloperzy usługi Power BI mogą łatwo korzystać z połączenia semantycznego i zarządzać modelem semantycznym. Przeczytaj publiczny dokument , aby dowiedzieć się więcej na temat linku semantycznego.

Visualization

Oprócz wykresów tworzonych za pomocą bibliotek wbudowana funkcja wizualizacji umożliwia przekształcenie ramek danych w bogate wizualizacje danych. Funkcja display() w ramkach danych umożliwia tworzenie zaawansowanego widoku tabeli ramek danych i widoku wykresu.

Zrzut ekranu przedstawiający doświadczenie wizualizacji w notesie języka Python.

Note

Konfiguracje wykresu będą utrwalane w notesie języka Python, co oznacza, że po ponownym uruchomieniu komórki kodu, jeśli schemat docelowej ramki danych nie ulegnie zmianie, zapisane wykresy są nadal utrwalane.

IntelliSense kodu

Python notebook używa również Pylance jako serwera językowego. Aby uzyskać więcej informacji, zobacz ulepszanie programowania w języku Python za pomocą rozwiązania Pylance.

Możliwości nauki o danych

Odwiedź stronę Dokumentacja nauki o danych w usłudze Microsoft Fabric, aby dowiedzieć się więcej o nauce o danych i środowisku sztucznej inteligencji w usłudze Fabric. W tym miejscu wymieniono kilka kluczowych funkcji nauki o danych, które są natywnie obsługiwane w notesie języka Python.

  • Data Wrangler: Data Wrangler to narzędzie oparte na notesie, które udostępnia immersyjny interfejs do analizy danych eksploracji. Ta funkcja łączy wyświetlanie danych przypominających siatkę z dynamicznymi statystykami podsumowania, wbudowanymi wizualizacjami i biblioteką typowych operacji czyszczenia danych. Zapewnia czyszczenie danych, przekształcanie danych i integrację, co przyspiesza przygotowywanie danych za pomocą rozwiązania Data Wrangler.

  • MLflow: Eksperyment uczenia maszynowego to podstawowa jednostka organizacji i kontroli dla wszystkich powiązanych przebiegów uczenia maszynowego. Przebieg odpowiada pojedynczemu wykonaniu kodu modelu.

  • Automatyczne Rejestrowanie w Microsoft Fabric: Synapse Data Science w Microsoft Fabric obejmuje automatyczne rejestrowanie, co znacznie zmniejsza ilość kodu wymaganego do automatycznego rejestrowania parametrów, metryk i elementów modelu uczenia maszynowego podczas trenowania.

    Automatyczne rejestrowanie rozszerza funkcje śledzenia MLflow. Automatyczne rejestrowanie może przechwytywać różne metryki, w tym dokładność, stratę, wynik F1 i niestandardowe metryki zdefiniowane przez użytkownika. Korzystając z automatycznego rejestrowania, deweloperzy i analitycy danych mogą łatwo śledzić i porównywać wydajność różnych modeli i eksperymentów bez ręcznego śledzenia.

  • Copilot: Copilot dla notatników Data Science i Data Engineering to asystent sztucznej inteligencji, który pomaga analizować i wizualizować dane. Współdziała z tabelami lakehouse, zestawami danych Power BI i ramkami danych pandas/spark, dostarczając odpowiedzi i fragmenty kodu bezpośrednio w notatniku. W notatniku możesz użyć panelu czatu Copilot i funkcji Char-magics, a sztuczna inteligencja udostępnia odpowiedzi lub kod do skopiowania do notatnika.

Znane ograniczenia dotyczące publicznej wersji zapoznawczej

  • Doświadczenie na żywo z pulą zasobów nie jest gwarantowane dla każdego uruchomienia notesu języka Python. Rozpoczęcie sesji może zająć do 3 minut, jeśli uruchomienie notesu nie trafi do puli na żywo. Wraz ze wzrostem użycia notatników języka Python nasze inteligentne metody przydziału zasobów stopniowo zwiększają przydział zasobów w czasie rzeczywistym, aby zaspokoić zapotrzebowanie.

  • Integracja środowiska nie jest dostępna w notesie Pythona w publicznej wersji próbnej.

  • Funkcja ustawienia limitu czasu sesji jest obecnie niedostępna.

  • Copilot może wygenerować instrukcję Spark, która może nie być wykonywalna w notatniku Pythona.

  • Obecnie Copilot w notatnikach Python nie jest w pełni dostępny w wielu regionach. Proces wdrażania jest nadal w toku, prosimy o cierpliwość, ponieważ kontynuujemy wprowadzanie wsparcia w kolejnych regionach.