Используйте опыт работы с Python в записных книжках

Notebook на Python — это новый опыт, построенный на основе ноутбуков в Fabric. Это универсальный и интерактивный инструмент, предназначенный для анализа данных, визуализации и машинного обучения. Он обеспечивает простой процесс разработки для написания и выполнения кода Python. Эта возможность делает его важным инструментом для специалистов по обработке и анализу данных, аналитиков и разработчиков бизнес-аналитиков, особенно для задач исследования, которые не требуют больших данных и распределенных вычислений.

Используя блокнот на Python, вы получаете:

  • Несколько встроенных ядер Python: Python-ноутбуки предлагают чистую среду для программирования на Python без Spark, с тремя встроенными версиями ядра Python: Python 3.10, Python 3.11 и Python 3.12. Среда поддерживает нативные функции IPython, такие как iPyWidget и магические команды.

  • Экономия: новая записная книжка Python предлагает преимущества экономии затрат, выполнив работу в одном кластере узлов с 2vCores/16 ГБ памяти по умолчанию. Эта настройка обеспечивает эффективное использование ресурсов для проектов исследования данных с меньшим размером данных.

  • Lakehouse и ресурсы доступны нативно: Fabric Lakehouse вместе с встроенными ресурсами ноутбука и полной функциональностью доступны в Python notebook. Эта функция позволяет пользователям легко переносить данные в блокнот Python: просто перетащите их, чтобы получить фрагмент кода.

  • Сочетайте программирование с T-SQL: Python notebook предлагает простой способ взаимодействовать с конечными точками аналитики Data Warehouse и SQL в Explorer. С помощью соединителя данных notebookutils вы можете легко выполнять скрипты T-SQL в контексте Python.

  • Поддержка популярных аналитических библиотек: Ноутбуки на Python оснащаются предустановленными библиотеками, такими как DuckDB, Polars и Scikit-learn, предоставляя комплексный набор инструментов для обработки данных, анализа и машинного обучения.

  • Расширенный IntelliSense: Ноутбук Python использует Pylance в качестве механизма IntelliSense вместе с другими настроенными для Fabric языковыми службами, чтобы обеспечить передовой опыт разработки для разработчиков, работающих с ноутбуками.

  • NotebookUtils и Semantic Link: Мощные наборы средств API позволяют вам легко использовать возможности Fabric и Power BI в рамках подхода code-first.

  • Расширенные возможности визуализации: За исключением популярных функций предварительного просмотра насыщенного датафрейма «Таблица» и функции «Диаграмма», он также поддерживает популярные библиотеки визуализации, такие как Matplotlib, Seaborn и Plotly. PowerBIClient также поддерживает эти библиотеки, чтобы помочь пользователям лучше понять шаблоны данных и аналитические сведения.

  • Общие возможности для Fabric Notebook: Все функции уровня Notebook естественно применимы для Python notebook, такие как редактирование, автосохранение, совместная работа, управление совместным доступом и правами, интеграция с Git, импорт/экспорт и многое другое.

  • Возможности в области науки о данных полного стека: расширенный набор средств с низким кодом Data Wrangler, фреймворк для машинного обучения MLFlow и мощные возможности Copilot доступны в блокноте Python.

Как получить доступ к блокноту на Python

После открытия блокнота в Fabric можно переключиться на Python в выпадающем меню языка на вкладке Home и конвертировать всю настройку блокнота в Python.

снимок экрана: переход на Python из языкового меню записной книжки.

Большинство распространённых функций поддерживаются на уровне ноутбука. Чтобы узнать больше, смотрите раздел «Как использовать блокноты Fabric» и «Разрабатывать, выполнять и управлять тетрадями Fabric». В этой статье перечислены ключевые возможности, специфичные для сценариев Python.

Запуск блокнотов Python

Python-ноутбуки поддерживают несколько методов выполнения заданий:

  • Интерактивный запуск: Вы можете интерактивно запускать блокнот Python, как родной блокнот Jupyter.
  • Запуск расписания: Вы можете использовать лёгкий опыт планировщика на странице настроек блокнота, чтобы запустить блокнот на Python в виде пакетной работы.
  • Запуск конвейера: записные книжки Python можно оркестрировать в конвейере в качестве действий в записных книжках. Процесс генерирует снимок после выполнения задания.
  • Эталонный запуск: вы можете использовать notebookutils.notebook.run() или notebookutils.notebook.runMultiple() для запуска записных книжек Python в другой записной книжке Python в виде пакетного задания. Процесс генерирует снимок после завершения эталонного запуска.
  • %run: Вы можете использовать %run для обращения к другим ноутбукам и их запуска в том же контексте выполнения, чтобы напрямую вызывать функции и повторно использовать переменные, определённые в этих ноутбуках. Дополнительные сведения см. в документации по использованию записной книжки.
  • Запуск общедоступного API. Вы можете запланировать запуск записной книжки Python с помощью общедоступного API. API диспетчера заданий поддерживает параметризованные запуски и возвращает коды завершения из выполнения записных книжек. Значения выхода можно использовать для условной оркестрации и сигнализации результатов при использовании ноутбуков Python в сценариях автоматизации и CI/CD. Убедитесь, что свойства языка и ядра в метаданных полезной нагрузки общедоступного API настроены правильно. Значения параметров, передаваемые через общедоступный API, доступны записной книжке Python во время выполнения, используя стандартный шаблон доступа к параметрам, используемый в записных книжках Fabric. Дополнительные сведения о форме запроса для параметров и извлечении выходного значения см. в статье "Управление и выполнение блокнотов в Fabric с помощью API". Вы можете отслеживать статус выполнения и отменять экземпляры заданий с помощью API планировщика заданий, дополняя просмотр всех запусков в пользовательском интерфейсе.

Note

Проверка подлинности служебного принципала поддерживается для REST API элементов (CRUD для записных книжек) и API планировщика заданий (выполнение), что обеспечивает безопасную автоматизацию и CI/CD для записных книжек Python. Добавьте сервисный принципал в рабочую область с соответствующей ролью для использования этих API-интерфейсов.

Вы можете отслеживать детали выполнения задания блокнота Python на вкладке ленты "Запуск" - >"Просмотр всех запусков".

Note

В настоящее время %run поддерживает ссылки только на элементы в записных книжках Python, но не на модули кода (например, файлы .py) из папки ресурсов записной книжки.

Взаимодействие с данными

Вы можете взаимодействовать с Lakehouse, складами, конечными точками аналитики SQL и встроенными папками ресурсов в ноутбуках Python.

Note

Runtime Python Notebook предустановлен с библиотеками delta-rs и duckdb для поддержки как чтения, так и записи данных Delta Lake. Однако некоторые функции Delta Lake могут быть не полностью поддерживаемы. Для получения дополнительной информации и последних обновлений смотрите документацию delta-rs и DuckDB .

Взаимодействие с Lakehouse

Можно установить дом на озере по умолчанию или добавить несколько домиков на озере для исследования и использования их в тетрадях.

Если вы не знакомы с чтением объектов данных, таких как таблица Delta, попробуйте перетащить файл и таблицу Delta на холст блокнота или воспользоваться опцией «Загрузить данные » в выпадающем меню объекта. Ноутбук автоматически вставляет фрагмент кода в ячейку и генерирует код для чтения целевого объекта данных.

Note

Если при загрузке большого объёма данных вы столкнётесь с OOM, попробуйте использовать DuckDB, Polars или PyArrow вместо panda.

Вы можете найти операцию write lakehouse в фрагменте Browse code snippet ->Write data to Delta table.

снимок экрана, показывающий операцию записи в lakehouse.

Взаимодействие с хранилищем и сочетание программирования с помощью T-SQL

Вы можете добавить склады или конечные точки аналитики SQL через Warehouse Explorer Notebook. Аналогичным образом можно перетащить таблицы на холст записной книжки или использовать сочетания клавиш в раскрывающемся меню таблицы. Блокнот автоматически генерирует для вас фрагмент кода. Вы можете использовать служебные программы notebookutils.data для установления подключения к хранилищам и запроса данных с помощью инструкций T-SQL в контексте Python.

снимок экрана: ярлыки таблиц хранилища.

Note

Конечные точки аналитики SQL доступны только для чтения.

Папка ресурсов ноутбука

Папка Notebook Resources Built-in resources нативно доступна в Python-ноутбуках. Вы можете легко взаимодействовать с файлами в встроенной папке ресурсов, используя Python-код, как будто работаете с локальной файловой системой. В настоящее время папка ресурсов Environment не поддерживается.

Операции ядра

Python-ноутбуки поддерживают три встроенных ядра: Python 3.10, Python 3.11 и Python 3.12. По умолчанию выбрано ядро Python 3.12. Вы можете легко переключаться между ними.

Вы можете прервать, перезапустить или переключить ядро на вкладке Home ленты. Прерывание ядра в Python-ноутбуках — это то же самое, что отменить ячейку в Spark notebook.

снимок экрана с операциями ядра.

Аномальный выход ядра приводит к прерыванию выполнения кода и потере переменных, но не останавливает сессию ноутбука.

Некоторые команды могут привести к отказу ядра. Например, quit() и exit().

Сведения о жизненном цикле поддержки каждой версии ядра Python, включая даты окончания поддержки и действия по миграции, см. в статье Среда выполнения записных книжек Python и жизненный цикл ядра в Fabric.

Управление библиотеками

Используйте команды %pip и %conda для встроенных установок. Эти команды поддерживают как публичные библиотеки, так и кастомизированные библиотеки.

Для кастомизированных библиотек загрузите файлы библиотеки в папку Встроенные ресурсы . Платформа поддерживает различные типы библиотек, включая такие форматы, как Wheel (.whl), JAR (.jar), DLL (.dll) и Python (.py). Просто перетащите файл, и фрагмент кода генерируется автоматически.

Возможно, вам придётся перезапустить ядро, чтобы использовать обновлённые пакеты.

Чтобы лучше понять и использовать похожие команды, обратитесь к следующей таблице.

Command/Syntax Основная цель Как он работает в Jupyter Notebook Типичный вариант использования Notes
%pip install package Установка пакетов Python Запускает pip в ядре Python ноутбука Рекомендуемый способ установки пакетов В ноутбуках на Python, то же самое, что !pipи ; не перезагружает ядро автоматически
!pip install package Установка пакетов Python с помощью оболочки Запуск pip в качестве команды оболочки Альтернативный способ установки пакетов В ноутбуках на Python, то же самое, что %pipи ; не перезагружает ядро автоматически
import sys; sys.exit(0) Перезапуск ядра записной книжки Немедленно перезапускает ядро Программно перезапустить ядро Очищает все переменные и состояния; не рекомендуется использовать напрямую
notebookutils.session.restartPython() Перезапуск ядра записной книжки Внутренние вызовы sys.exit(0) Рекомендуемый способ перезапуска ядра Официальный API, более безопасный и более совместимый, чем использование sys.exit(0) напрямую

Note

  • В Python-ноутбуках %pip ведут !pipсебя одинаково: оба устанавливают пакеты в текущую среду ядра, и ни один не перезагружается автоматически после установки.
  • Если нужно перезапустить ядро (например, после установки определённых пакетов), используйте notebookutils.session.restartPython() вместо import sys; sys.exit(0).
    • notebookutils.session.restartPython() это официальный API, который обворачивает sys.exit(0) , и он безопаснее и более совместим в среде ноутбуков.
  • Не используйте sys.exit(0) напрямую, если это не необходимо.

Мониторинг использования ресурсов записной книжки Python в режиме реального времени

Это важно

Эта функция доступна в предварительной версии.

Используя панель мониторинга ресурсов, вы можете отслеживать критически важную информацию во время выполнения, такую как длительность сессии, тип вычислений и метрики ресурсов в реальном времени, включая потребление процессора и памяти, непосредственно внутри вашего ноутбука. Эта функция предоставляет немедленный обзор активного сеанса и используемых ресурсов.

Монитор ресурсов улучшает видимость того, как задания Python используют системные ресурсы. Это помогает оптимизировать производительность, управлять затратами и снизить риск ошибок, связанных с нехваткой памяти (OOM). Отслеживая метрики в режиме реального времени, можно определить ресурсоемкие операции, проанализировать шаблоны использования и принять обоснованные решения о масштабировании или изменении кода.

Чтобы начать использовать его, задайте язык записной книжки на Python и запустите сеанс. Затем можно открыть монитор, щелкнув вычислительные ресурсы в строке состояния записной книжки или выбрав "Просмотреть использование ресурсов " на панели инструментов. Панель мониторинга ресурсов появляется автоматически, обеспечивая интегрированный опыт мониторинга кода на Python в ноутбуках Fabric.

Снимок экрана: мониторинг использования ресурсов записной книжки Python в режиме реального времени.

Волшебная команда конфигурации сеанса

Подобно настройке конфигурации сеанса Spark в блокноте, вы также можете использовать %%configure в блокноте Python. Python-ноутбуки поддерживают настройку размера вычислительного узла, точек монтажа и стандартного lakehouse сессии блокнота. Эти настройки можно использовать как в интерактивных тетрадях, так и в активностях с конвейерными блокнотами. Используйте %%configure команду в начале блокнота, иначе придётся перезапустить сессию блокнота, чтобы настрои вступили в силу.

Ниже приведены поддерживаемые свойства записной книжки 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>"
        },
    ],
}

Вы можете просматривать обновление вычислительных ресурсов в строке статуса ноутбука и отслеживать использование процессора и памяти вычислительного узла в реальном времени.

снимок экрана: обновление вычислительных ресурсов.

Note

Запуски, инициированные с помощью API, учитывают конфигурацию сеансов, такую как вычислительные виртуальные ядра и defaultLakehouse, указанные через метаданные записной книжки или %%configure. API планировщика заданий также поддерживает выбор целевого Lakehouse и окружения во время выполнения. Дополнительные сведения о полях нагрузки см. в статье «Управление и выполнение записных книжек в Fabric с помощью API».

NotebookUtils

Notebook Utilities (NotebookUtils) — это встроенный пакет, который помогает легко выполнять обычные задачи в Fabric notebook. Он предустановлен на Python runtime. Используйте NotebookUtils для работы с файловыми системами, получения переменных среды, объединения блокнотов, доступа к внешнему хранилищу и работы с секретами.

Используйте notebookutils.help(), чтобы вывести список доступных API и получить справку по методам. Для получения дополнительной информации смотрите документацию NotebookUtils.

Служебные программы данных

Note

В настоящее время эта функция доступна в предварительной версии.

Используйте notebookutils.data утилиты, чтобы подключиться к источнику данных. Затем вы можете читать и запрашивать данные с помощью оператора T-SQL.

Выполните следующую команду, чтобы получить общие сведения о доступных методах:

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

Запрос данных из Lakehouse

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

Запрос данных из хранилища

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

Запрос данных из базы данных 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

Утилиты Data в NotebookUtils пока доступны только на Python-ноутбуках.

Просмотр фрагментов кода

Полезные фрагменты кода на Python вы можете найти на вкладке «Редактировать», выбрав фрагмент «Просмотр кода». Теперь доступны новые образцы Python. Чтобы начать изучать блокнот, изучайте фрагменты кода на Python.

снимок экрана, показывающий, где можно просматривать фрагменты кода Python.

Семантическая связь — это функция, которую можно использовать для соединения семантических моделей и Synapse Data Science. Python-ноутбуки нативно поддерживают эту функцию. Инженеры BI и разработчики Power BI могут использовать семантическую связь для легкого соединения и управления семантическими моделями. Чтобы узнать больше, см. публичный документ.

Visualization

Помимо построения диаграмм с помощью библиотек, встроенная функция визуализации позволяет преобразовывать DataFrames в богатые визуализации данных. Используйте функцию display() в датафреймах для создания богатого просмотра таблицы и диаграммы.

Скриншот, показывающий опыт визуализации в ноутбуках на Python.

Note

Блокнот Python сохраняет конфигурации диаграмм. После повторного запуска кодовой ячейки, если схема целевого фрейма данных не меняется, сохранённые диаграммы остаются.

Код IntelliSense

Python-ноутбуки также используют Pylance в качестве сервера языка. Для получения дополнительной информации см. раздел «Улучшить разработку на Python с помощью Pylance».

Возможности обработки и анализа данных

Чтобы узнать больше о Data Science и опыте работы с ИИ в Fabric, смотрите документацию по Data Science в Fabric. В этой статье перечислены несколько ключевых функций науки о данных, которые нативно поддерживают ноутбуки Python.

  • Data Wrangler: Data Wrangler — это инструмент на базе ноутбука, который предоставляет погружающий интерфейс для исследовательского анализа данных. Эта функция объединяет отображение данных, таких как сетка, с динамической сводной статистикой, встроенными визуализациями и библиотекой общих операций очистки данных. Он обеспечивает очистку данных, преобразование и интеграцию, что ускоряет подготовку данных с помощью Data Wrangler.

  • MLflow: эксперимент в области машинного обучения является основной единицей организации и контролем для всех связанных сеансов выполнения машинного обучения. Запуск соответствует одному выполнению кода модели.

  • Fabric Auto Logging: Synapse Data Science включает автологинг, который значительно сокращает количество кода, необходимого для автоматического логирования параметров, метрик и элементов модели машинного обучения во время обучения.

    Автологирование расширяет возможности отслеживания MLflow. Автологирование может записывать различные метрики, включая точность, потерю, оценку F1 и пользовательские метрики, которые вы определяете. Используя автологирование, разработчики и специалисты по обработке и анализу данных могут легко отслеживать и сравнивать производительность различных моделей и экспериментов без ручного отслеживания.

  • Copilot: Copilot для ноутбуков по инженерии данных и науке о данных — это AI-ассистент, который помогает анализировать и визуализировать данные. Copilot немедленно учитывает контекст, не требуя запуска сеанса. Он понимает рабочую область, присоединенные схемы Lakehouse, таблицы и файлы, структуру записной книжки и состояние среды выполнения, а также может работать во всем рабочем процессе записной книжки.

    Copilot поддерживает многошаговые возможности для всего блокнота: он может генерировать, рефакторить, обобщать и валидировать код в нескольких ячейках и на нескольких этапах в блокнотах Python. Вы можете использовать панель чата Copilot и команды чата, такие как /fix, в записной книжке.

    Если происходит сбой ячейки, функция «Исправить с помощью Copilot» предоставляет сводку ошибок, анализ первопричин и рекомендуемые исправления, а также опцию автоматического применения изменений кода после отображения сравнения для утверждения. Вы также можете использовать команду /fix в чате Copilot для целевой диагностики конкретной ячейки или всей записной книжки.

Известные ограничения

  • Опыт живого пула не гарантирован для каждого запуска Python notebook. Запуск сеанса может занять до трёх минут, если запуск блокнота не использует активный пул. По мере того как растёт использование блокнотов Python, механизмы интеллектуального пулинга постепенно увеличивают объём активного пула, чтобы удовлетворить спрос.

  • Интеграция среды недоступна на ноутбуках Python.

  • Фиксированный тайм-аут для сессии недоступен.

  • Copilot улучшил учёт контекста и помощь для записных книжек Python, но иногда может предложить код Spark, который не может быть непосредственно выполнен в записной книжке Python. Опыт работы с Copilot применяется к сбойным ячейкам Python, а диагностика заданий Spark не охватывает чистые запуски Python.

  • В настоящее время Copilot на ноутбуках Python не полностью поддерживается в нескольких регионах. Процесс развертывания всё ещё продолжается. Следите за новостями: поддержка появится в новых регионах.