Поделиться через


Создание, разработка и обслуживание записных книжек Synapse

Записная книжка в Azure Synapse Analytics (записная книжка Synapse) — это веб-интерфейс для создания файлов, содержащих динамический код, визуализации и текст повествования. Записные книжки отлично подходят для проверки идей и использования быстрых экспериментов, чтобы получить аналитические сведения по данным. Записные книжки также широко используются в подготовке данных, визуализации данных, машинном обучении и других сценариях больших данных.

С помощью записной книжки Synapse можно выполнять следующие задачи.

  • Начните работу, потратив минимум усилий на настройку.
  • Помогите защитить данные с помощью встроенных функций безопасности предприятия.
  • Анализ данных между необработанными форматами (например, CSV, TXT и JSON), обработанными форматами файлов (например, Parquet, Delta Lake и ORC), а также табличными файлами данных SQL для Spark и SQL.
  • Повысьте продуктивность труда с расширенными возможностями разработки и встроенной визуализацией данных.

В этой статье описывается использование записных книжек в Synapse Studio.

Создание записной книжки

Вы можете создать новую записную книжку или импортировать существующую записную книжку в рабочую область Synapse из обозреватель объектов. Выберите меню "Разработка". + Нажмите кнопку и выберите "Записная книжка" или щелкните "Записные книжки" правой кнопкой мыши, а затем выберите "Создать записную книжку" или "Импортировать". Записные книжки Synapse распознают стандартные IPYNB-файлы Jupyter Notebook.

Снимок экрана: выбор для создания или импорта записной книжки.

Разработка записных книжек

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

В следующих разделах описаны операции разработки записных книжек:

Примечание.

В записных книжках SparkSession экземпляр создается автоматически и хранится в переменной с именем spark. Существует также переменная для SparkContext вызова sc. Пользователи могут получить доступ к этим переменным напрямую, но не должны изменять значения этих переменных.

Добавление ячейки

Существует несколько способов добавления новой ячейки в записную книжку:

  • Наведите указатель мыши между двумя ячейками и выберите Код или Markdown.

    Снимок экрана: кнопки Code и Markdown в записной книжке Synapse.

  • Используйте сочетания клавиш в командном режиме. Выберите клавишу A, чтобы вставить ячейку над текущей ячейкой. Выберите клавишу B, чтобы вставить ячейку под текущей ячейкой.

Настройка основного языка

Записные книжки Synapse поддерживают четыре языка Apache Spark:

  • PySpark (Python)
  • Spark (Scala)
  • SQL Spark
  • .NET Spark (C#)
  • SparkR (R)

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

Снимок экрана раскрывающегося списка для выбора языка в записной книжке Synapse.

Использование нескольких языков

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

Магические команды Язык Description
%%pyspark Python Выполните запрос Python для SparkContext.
%%spark Scala Выполните запрос Scala для SparkContext.
%%sql SQL Spark Выполните sql-запрос Spark для SparkContext.
%%csharp .NET для Spark C# Выполните запрос SparkContext.NET для Spark C#.
%%sparkr R Выполните запрос R для SparkContext.

На следующем рисунке показан пример того, как можно написать запрос PySpark с помощью %%pyspark волшебной команды или запроса Spark SQL с помощью %%sql волшебной команды в записной книжке Spark (Scala). Основной язык записной книжки имеет значение PySpark.

Снимок экрана: волшебные команды Spark в записной книжке Synapse.

Использование временных таблиц для ссылки на данные на разных языках

Вы не можете ссылаться на данные или переменные непосредственно на разных языках в записной книжке Synapse. В Spark можно ссылаться на временную таблицу на разных языках. Ниже приведен пример чтения кадра данных Scala в PySpark и Spark SQL с помощью временной таблицы Spark в качестве обходного решения:

  1. В ячейке 1 считывает кадр данных из соединителя пула SQL с помощью Scala и создает временную таблицу:

    %%spark
    val scalaDataFrame = spark.read.sqlanalytics("mySQLPoolDatabase.dbo.mySQLPoolTable")
    scalaDataFrame.createOrReplaceTempView( "mydataframetable" )
    
  2. В ячейке 2 запросите данные с помощью Spark SQL:

    %%sql
    SELECT * FROM mydataframetable
    
  3. В ячейке 3 используйте данные в PySpark:

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

Использование IntelliSense в стиле IDE

Записные книжки Synapse интегрированы с редактором Monaco, что позволяет работать с функцией IntelliSense в IDE в редакторе ячеек. Функции выделения синтаксиса, маркера ошибки и автоматического завершения кода помогают быстрее писать код и выявлять проблемы.

Возможности IntelliSense находятся на разных уровнях зрелости для разных языков. В приведенной ниже таблице приведены сведения о поддерживаемых функциях.

Языки Подсветка синтаксиса Маркер синтаксической ошибки Завершение кода синтаксиса Завершение кода переменной Завершение кода системной функции Завершение кода пользовательской функции Смарт-отступ Свертывание кода
PySpark (Python) Да Да Да Да Да Да Да Да
Spark (Scala) Да Да Да Да Да Да No Да
SQL Spark Да Да Да Да Да No No No
.NET для Spark C# Да Да Да Да Да Да Да Да

Активный сеанс Spark необходим для получения преимуществ от завершения кода переменной, завершения системного кода функции и завершения пользовательского кода функции для .NET для Spark (C#).

Использование фрагментов кода

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

Фрагменты кода отображаются в сочетаниях клавиш в стиле IDE IntelliSense , смешанных с другими предложениями. Содержимое фрагментов кода соответствует языку ячейки кода. Доступные фрагменты можно увидеть, введя фрагмент кода или все ключевые слова, которые отображаются в заголовке фрагмента кода в редакторе ячеек кода. Например, введя чтение, можно просмотреть список фрагментов для чтения данных из различных источников данных.

Анимированный GIF фрагментов кода в записной книжке Synapse.

Форматирование текстовых ячеек с помощью кнопок панели инструментов

Для выполнения распространенных действий Markdown можно использовать кнопки форматирования на панели инструментов текстовой ячейки. К этим действиям относятся создание полужирного текста, создание текстовых курсивов, создание абзацев и заголовков с помощью раскрывающегося меню, вставка кода, вставка неупорядоченного списка, вставка упорядоченного списка, вставка гиперссылки и вставка изображения из URL-адреса.

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

Отмена или повторение операции ячейки

Чтобы отменить последние операции ячейки, нажмите кнопку "Отменить" или "Повторить" или нажмите клавишу Z или SHIFT+Z. Теперь можно отменить или повторить до 10 исторических операций ячеек.

Снимок экрана: кнопки отмены и повтора в записной книжке Synapse.

К поддерживаемым операциям ячеек относятся:

  • Вставка или удаление ячейки. Операции удаления можно отменить, выбрав "Отменить". Это действие сохраняет текстовое содержимое вместе с ячейкой.
  • Изменение порядка ячеек.
  • Включите или отключите ячейку параметра.
  • Преобразование между ячейкой кода и ячейкой Markdown.

Примечание.

Вы не можете отменить текстовые операции или операции комментариев в ячейке.

Комментарий к ячейке кода

  1. Нажмите кнопку "Примечания" на панели инструментов записной книжки, чтобы открыть панель "Комментарии".

    Снимок экрана: кнопка

  2. Выберите код в ячейке кода, выберите "Создать " на панели "Примечания ", добавьте комментарии и нажмите кнопку "Опубликовать комментарий ".

    Снимок экрана: поле для ввода комментария в записную книжку Synapse.

  3. При необходимости вы можете выполнить редактирование комментариев, разрешить поток и удалить действия потока , выбрав рядом с комментарием многоточие (...).

    Снимок экрана: дополнительные команды для ячейки кода в записной книжке Synapse.

Перемещение ячейки

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

Анимированный GIF-файл перемещения ячеек в записной книжке Synapse.

Копирование ячейки

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

Совет

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

Удаление ячейки

Чтобы удалить ячейку, нажмите кнопку "Удалить " справа от ячейки.

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

Снимок экрана: кнопка удаления ячейки в записной книжке Synapse.

Свернуть входные данные ячейки

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

Анимированный GIF-файл для сворачивания и расширения входных данных ячеек в записной книжке Synapse.

Свернуть выходные данные ячейки

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

Анимированный GIF-файл сворачивания и расширения выходных данных ячейки в записной книжке Synapse.

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

Структура (оглавление) представляет первый заголовок Markdown любой ячейки Markdown в боковом окне для быстрой навигации. Боковая панель контура может изменяться и сворачиваема, чтобы лучше всего подходить к экрану. Чтобы открыть или скрыть боковую панель, нажмите кнопку "Структура " на панели команд записной книжки.

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

Запуск записной книжки

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

Примечание.

Удаление записной книжки не отменяет автоматически выполняемые задания. Если вам нужно отменить задание, перейдите в центр мониторинга и отмените его вручную.

Выполнение ячейки

Существует несколько способов запуска кода в ячейке:

  • Наведите указатель мыши на ячейку, которую вы хотите запустить, и нажмите кнопку "Запустить ячейку " или нажмите клавиши CTRL+ВВОД.

    Снимок экрана: команда для запуска ячейки в записной книжке Synapse.

  • Используйте сочетания клавиш в командном режиме. Нажмите клавиши SHIFT+ВВОД, чтобы запустить текущую ячейку и выберите под ней ячейку. Нажмите клавиши ALT+ВВОД, чтобы запустить текущую ячейку и вставить новую ячейку под ней.

Выполнение всех ячеек

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

Снимок экрана: кнопка запуска всех ячеек в записной книжке Synapse.

Выполнение всех ячеек выше или ниже

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

Снимок экрана: команды для выполнения ячеек выше и ниже текущей ячейки в записной книжке Synapse.

Отмена выполнения всех ячеек

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

Снимок экрана: кнопка отмены всех запущенных или ожидающих ячеек в записной книжке Synapse.

Ссылка на записную книжку

Чтобы ссылаться на другую записную книжку в контексте текущей записной книжки, используйте магическую %run <notebook path> команду. Все переменные, определенные в записной книжке, переход к которой выполняется по ссылке, доступны в текущей записной книжке.

Приведем пример:

%run /<path>/Notebook1 { "parameterInt": 1, "parameterFloat": 2.5, "parameterBool": true, "parameterString": "abc" }

Ссылка на записную книжку работает как в интерактивном режиме, так и в конвейерах.

Магическая %run команда имеет следующие ограничения:

  • Команда поддерживает вложенные вызовы, но не рекурсивные вызовы.
  • Команда поддерживает передачу абсолютного пути или имени записной книжки только в качестве параметра. Он не поддерживает относительные пути.
  • В настоящее время команда поддерживает только четыре типа значений параметров: int, , floatboolи string. Он не поддерживает операции замены переменных.
  • Записные книжки, на которые ссылается ссылка, должны быть опубликованы. Чтобы ссылаться на них, необходимо опубликовать записные книжки, если вы не можете включить ссылку на неопубликованную записную книжку. Synapse Studio не распознает неопубликованные записные книжки из репозитория Git.
  • Указанные записные книжки не поддерживают глубину инструкций размером более пяти.

Использование обозревателя переменных

Записная книжка Synapse предоставляет встроенный обозреватель переменных в виде таблицы, которая перечисляет переменные в текущем сеансе Spark для ячеек PySpark (Python). Таблица содержит столбцы для имени переменной, типа, длины и значения. Дополнительные переменные отображаются автоматически, так как они определены в ячейках кода. Выбор каждого заголовка столбца сортирует переменные в таблице.

Чтобы открыть или скрыть обозреватель переменных, нажмите кнопку "Переменные " на панели команд записной книжки.

Снимок экрана: обозреватель переменных в записной книжке Synapse.

Примечание.

Обозреватель переменных поддерживает только Python.

Использование индикатора состояния ячейки

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

Снимок экрана: сводка ячейки, выполняемой в записной книжке Synapse.

Использование индикатора хода выполнения Spark

Записная книжка Synapse основана исключительно на Spark. Ячейки кода выполняются удаленно в бессерверном пуле Apache Spark. Индикатор хода выполнения задания Spark с индикатором хода выполнения в режиме реального времени помогает понять состояние выполнения задания.

Количество задач для каждого задания или этапа помогает определить параллельный уровень задания Spark. Вы можете глубже изучить пользовательский интерфейс Spark по определенному заданию или этапу, перейдя по ссылке на его имени.

Снимок экрана: индикатор хода выполнения Spark в записной книжке Synapse.

Настройка сеанса Spark

На панели "Настройка сеанса", которую можно найти, выбрав значок шестеренки в верхней части записной книжки, можно указать длительность ожидания, количество исполнителей и размер исполнителей для передачи текущему сеансу Spark. Перезапустите сеанс Spark, чтобы изменения конфигурации вступили в силу. Все кэшированные переменные записной книжки очищаются.

Вы также можете создать конфигурацию из конфигурации Apache Spark или выбрать существующую. Дополнительные сведения см. в разделе "Управление конфигурацией Apache Spark".

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

Волшебная команда для настройки сеанса Spark

Вы также можете указать параметры сеанса Spark с помощью волшебной команды %%configure. Чтобы сделать параметры вступили в силу, перезапустите сеанс Spark.

Рекомендуется запустить %%configure в начале записной книжки. Вот пример. Полный список допустимых параметров см . в сведениях о Livy на сайте GitHub.

%%configure
{
    //You can get a list of valid parameters to configure the session from https://github.com/cloudera/livy#request-body.
    "driverMemory":"28g", // Recommended values: ["28g", "56g", "112g", "224g", "400g", "472g"]
    "driverCores":4, // Recommended values: [4, 8, 16, 32, 64, 80]
    "executorMemory":"28g",
    "executorCores":4, 
    "jars":["abfs[s]://<file_system>@<account_name>.dfs.core.windows.net/<path>/myjar.jar","wasb[s]://<containername>@<accountname>.blob.core.windows.net/<path>/myjar1.jar"],
    "conf":{
    //Example of a standard Spark property. To find more available properties, go to https://spark.apache.org/docs/latest/configuration.html#application-properties.
        "spark.driver.maxResultSize":"10g",
    //Example of a customized property. You can specify the count of lines that Spark SQL returns by configuring "livy.rsc.sql.num-rows".
        "livy.rsc.sql.num-rows":"3000" 
    }
}

Ниже приведены некоторые рекомендации по магической команде %%configure :

  • Мы рекомендуем использовать одно и то же значение для driverMemory и executorMemory в %%configure. Мы также рекомендуем driverCores использовать и executorCores иметь то же значение.
  • Вы можете использовать %%configure в конвейерах Synapse, но если он не задан в первой ячейке кода, запуск конвейера завершится ошибкой, так как он не может перезапустить сеанс.
  • Команда %%configure , используемая в ней, игнорируется, но команда, используемая в mssparkutils.notebook.run %run <notebook> продолжении выполнения.
  • В тексте необходимо использовать стандартные "conf" свойства конфигурации Spark. Мы не поддерживаем ссылки на первый уровень для свойств конфигурации Spark.
  • Некоторые специальные свойства Spark не вступают в силу в "conf" тексте, включая "spark.driver.cores", "spark.executor.cores", "spark.driver.memory"и "spark.executor.memory""spark.executor.instances".

Параметризованная конфигурация сеанса из конвейера

Для замены значений в волшебной команде %%configure можно использовать параметризованную конфигурацию сеанса с параметрами запуска конвейера (действие записной книжки). При подготовке %%configure ячейки кода можно переопределить значения по умолчанию с помощью объекта, как показано ниже:

{
      "activityParameterName": "paramterNameInPipelineNotebookActivity",
      "defaultValue": "defaultValueIfNoParamterFromPipelineNotebookActivity"
} 

В следующем примере показаны значения 4 по умолчанию и "2000"настраиваемые значения.

%%configure  

{ 
    "driverCores": 
    { 
        "activityParameterName": "driverCoresFromNotebookActivity", 
        "defaultValue": 4 
    }, 
    "conf": 
    { 
        "livy.rsc.sql.num-rows": 
        { 
            "activityParameterName": "rows", 
            "defaultValue": "2000" 
        } 
    } 
} 

Записная книжка использует значение по умолчанию при запуске записной книжки в интерактивном режиме напрямую или если действие записной книжки конвейера не предоставляет соответствующий параметр "activityParameterName".

В режиме выполнения конвейера можно использовать вкладку "Параметры" для настройки параметров для действия записной книжки конвейера.

Снимок экрана: параметризованная конфигурация сеанса в записной книжке Synapse.

Если вы хотите изменить конфигурацию сеанса, имя параметра действия записной книжки конвейера должно совпадать с activityParameterName именем записной книжки. В этом примере во время выполнения 8 конвейера заменяются и 4000 заменяются %%configuredriverCores livy.rsc.sql.num-rows.

Если выполнение конвейера завершается сбоем после использования %%configure волшебной команды, вы можете получить дополнительные сведения об ошибке, запустив %%configure волшебную ячейку в интерактивном режиме записной книжки.

Перенесение данных в записную книжку

Вы можете загрузить данные из Azure Data Lake Storage 2-го поколения, Хранилище BLOB-объектов Azure и пулов SQL, как показано в следующих примерах кода.

Чтение CSV-файла из Azure Data Lake Storage 2-го поколения в виде кадра данных 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')

Чтение CSV-файла из Хранилище BLOB-объектов Azure в виде кадра данных 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 Azure Blob Storage 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)

Считывание данных из основной учетной записи хранения

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

Снимок экрана: открытие новой таблицы Spark для доступа к данным файлов в Azure Synapse Analytics.

Использование мини-приложений IPython

Мини-приложения — это события объектов Python, которые имеют представление в браузере, часто как ползунок или текстовое поле. Мини-приложения IPython работают только в средах Python. В настоящее время они не поддерживаются на других языках (например, Scala, SQL или C#).

Действия по использованию мини-приложений IPython

  1. ipywidgets Импортируйте модуль для использования платформы Jupyter Widgets:

    import ipywidgets as widgets
    
  2. Используйте функцию верхнего уровня display , чтобы отобразить мини-приложение или оставить выражение widget типа в последней строке ячейки кода:

    slider = widgets.IntSlider()
    display(slider)
    
    slider = widgets.IntSlider()
    slider
    
  3. Запустите ячейку. Мини-приложение отображается в области вывода.

    Снимок экрана: ползунок мини-приложения IPython в записной книжке Synapse.

Вы можете использовать несколько display() вызовов для отображения одного экземпляра мини-приложения несколько раз, но они остаются синхронизированы друг с другом:

slider = widgets.IntSlider()
display(slider)
display(slider)

Снимок экрана: несколько ползунков мини-приложений IPython в записной книжке Synapse.

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

slider1 = widgets.IntSlider()
slider2 = widgets.IntSlider()
display(slider1)
display(slider2)

Поддерживаемые мини-приложения

Тип мини-приложения Мини-приложения
Числовое IntSlider, FloatSlider, FloatLogSliderIntRangeSliderFloatRangeSliderIntProgressFloatProgressBoundedIntTextBoundedFloatTextIntTextFloatText
Логический ToggleButton, , CheckboxValid
Выбор Dropdown, RadioButtons, SelectSelectionSliderSelectionRangeSliderToggleButtonsSelectMultiple
Строка Text, Text areaComboboxPasswordLabelHTMLHTML MathImageButton
Воспроизведение (анимация) Date picker, , Color pickerController
Контейнер или макет Box, HBox, VBoxGridBoxAccordionTabsStacked

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

  • В следующей таблице перечислены мини-приложения, которые сейчас не поддерживаются, а также обходные пути.

    Функция Обходное решение
    Мини-приложение Output Вместо этого можно использовать функцию print() для записи текста в stdout.
    widgets.jslink() Функцию widgets.link() можно использовать для связывания двух аналогичных мини-приложений.
    Мини-приложение FileUpload Недоступно.
  • Глобальная display функция, которая предоставляет Azure Synapse Analytics, не поддерживает отображение нескольких мини-приложений в одном вызове (т display(a, b). е. ). Это поведение отличается от функции IPython display .

  • Если закрыть записную книжку, содержащую мини-приложение IPython, вы не сможете просматривать или взаимодействовать с мини-приложением, пока не запустите соответствующую ячейку еще раз.

Сохранение записных книжек

Вы можете сохранить одну записную книжку или все записные книжки в рабочей области:

  • Чтобы сохранить изменения, внесенные в одну записную книжку, нажмите кнопку "Опубликовать " на панели команд записной книжки.

    Снимок экрана: кнопка публикации изменений в записной книжке Synapse.

  • Чтобы сохранить все записные книжки в рабочей области, нажмите кнопку Опубликовать все на панели команд рабочей области.

    Снимок экрана: кнопка публикации изменений во всех записных книжках в рабочей области Synapse.

На панели свойств записной книжки можно настроить включение выходных данных ячейки при сохранении.

Снимок экрана: свойства записной книжки Synapse и флажок для включения выходных данных ячейки при сохранении.

Использование магических команд

В записных книжках Synapse вы можете использовать привычные магические команды Jupyter. Просмотрите следующие списки доступных в настоящее время магических команд. Расскажите нам варианты использования на сайте GitHub , чтобы мы могли продолжать создавать более волшебные команды в соответствии с вашими потребностями.

Примечание.

В конвейерах Synapse поддерживаются только следующие магические команды: %%pyspark, %%spark, %%csharp. %%sql

Доступные магические команды для строк:

%lsmagic, , %time%history%timeit%run,%load

Доступные магические команды для ячеек:

%%time, %%timeit, %%capture%%writefile%%sql%%pyspark%%spark%%csharp%%html%%configure

Ссылка на неопубликованную записную книжку

Ссылка на неопубликованную записную книжку полезна при локальной отладке. При включении этой функции записная книжка выполняет получение текущего содержимого в веб-кэше. Если вы запускаете ячейку со ссылкой на инструкцию записной книжки, вы ссылаетесь на записные книжки в текущем браузере записных книжек вместо сохраненной версии в кластере. Другие записные книжки могут ссылаться на изменения в редакторе записных книжек, не требуя публикации (режим реального времени) или фиксации изменений (режим Git). С помощью этого подхода можно предотвратить загрязнение общих библиотек во время процесса разработки или отладки.

Вы можете включить ссылку на неопубликованную записную книжку, установив соответствующий флажок на панели свойств .

Снимок экрана: флажок для включения ссылки на неопубликованную записную книжку Synapse.

В следующей таблице сравниваются случаи. Хотя %run и mssparkutils.notebook.run имеют то же поведение здесь, таблица используется %run в качестве примера.

Регистр Отключить Включить
Режим реального времени
Nb1 (опубликовано)
%run Nb1
Запуск опубликованной версии Nb1 Запуск опубликованной версии Nb1
Nb1 (новое)
%run Nb1
Ошибка Запустить новую Nb1
Nb1 (ранее опубликовано, изменено)
%run Nb1
Запуск опубликованной версии Nb1 Запуск измененной версии Nb1
Режим Git
Nb1 (опубликовано)
%run Nb1
Запуск опубликованной версии Nb1 Запуск опубликованной версии Nb1
Nb1 (новое)
%run Nb1
Ошибка Запустить новую Nb1
Nb1 (не опубликовано, зафиксировано)
%run Nb1
Ошибка Запуск зафиксированной Nb1
Nb1 (ранее опубликовано, зафиксировано)
%run Nb1
Запуск опубликованной версии Nb1 Запуск зафиксированной версии Nb1
Nb1 (ранее опубликовано, новое в текущей ветви)
%run Nb1
Запуск опубликованной версии Nb1 Запустить новую Nb1
Nb1 (не опубликовано, ранее зафиксировано, изменено)
%run Nb1
Ошибка Запуск измененной версии Nb1
Nb1 (ранее опубликовано и зафиксировано, изменено)
%run Nb1
Запуск опубликованной версии Nb1 Запуск измененной версии Nb1

Сводка:

  • Если вы отключите ссылку на неопубликованную записную книжку, всегда запустите опубликованную версию.
  • Если включить ссылку на неопубликованную записную книжку, ссылка всегда принимает текущую версию записной книжки, которая отображается в пользовательском интерфейсе записной книжки.

Управление активными сеансами

Вы можете повторно использовать сеансы записной книжки, не запуская новые сеансы. В записных книжках Synapse можно управлять активными сеансами в одном списке. Чтобы открыть список, выберите многоточие (...) и выберите пункт "Управление сеансами".

Снимок экрана: выбор для открытия списка активных сеансов записной книжки Synapse.

В области "Активные сеансы " перечислены все сеансы в текущей рабочей области, запущенной из записной книжки. В списке отображаются сведения о сеансе и соответствующие записные книжки. Отсоединение с записной книжкой, остановка сеанса и просмотр действий мониторинга доступны здесь. Кроме того, вы можете подключить выбранную записную книжку к активному сеансу, запущенному из другой записной книжки. Затем сеанс отсоединяется от предыдущей записной книжки (если она не неактивна) и подключена к текущей.

Снимок экрана: панель для активных сеансов в рабочей области Synapse.

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

Журналы Python можно найти и задать различные уровни и форматы журналов с помощью следующего примера кода:

import logging

# Customize the logging format for all loggers
FORMAT = "%(asctime)s - %(name)s - %(levelname)s - %(message)s"
formatter = logging.Formatter(fmt=FORMAT)
for handler in logging.getLogger().handlers:
    handler.setFormatter(formatter)

# Customize the log level for all loggers
logging.getLogger().setLevel(logging.INFO)

# Customize the log level for a specific logger
customizedLogger = logging.getLogger('customized')
customizedLogger.setLevel(logging.WARNING)

# Logger that uses the default global log level
defaultLogger = logging.getLogger('default')
defaultLogger.debug("default debug message")
defaultLogger.info("default info message")
defaultLogger.warning("default warning message")
defaultLogger.error("default error message")
defaultLogger.critical("default critical message")

# Logger that uses the customized log level
customizedLogger.debug("customized debug message")
customizedLogger.info("customized info message")
customizedLogger.warning("customized warning message")
customizedLogger.error("customized error message")
customizedLogger.critical("customized critical message")

Просмотр журнала входных команд

Записные книжки Synapse поддерживают волшебную команду %history для печати журнала входных команд для текущего сеанса. Магическая %history команда аналогична стандартной команде Jupyter IPython и работает для нескольких контекстов языка в записной книжке.

%history [-n] [range [range ...]]

В приведенном выше коде -n указан номер выполнения печати. Значение range может быть следующим:

  • N: печать кода выполняемой Nth ячейки.
  • M-N: печать кода из Mth исполняемой ячейки Nth .

Например, чтобы распечатать журнал входных данных от первой до второй выполненной ячейки, используйте %history -n 1-2.

Интеграция записной книжки

Добавление записной книжки в конвейер

Чтобы добавить записную книжку в существующий конвейер или создать новый конвейер, нажмите кнопку "Добавить к конвейеру " в правом верхнем углу.

Снимок экрана: параметры меню для добавления записной книжки в существующий или новый конвейер Synapse.

Назначение ячейки параметра

Чтобы параметризировать записную книжку, выберите многоточие (...), чтобы получить доступ к дополнительным командам на панели инструментов ячеек. Затем выберите ячейку параметра Toggle, чтобы назначить ячейку в качестве ячейки параметра.

Снимок экрана: параметр меню для обозначения ячейки в качестве ячейки параметров.

Фабрика данных Azure ищет ячейку параметра и обрабатывает эту ячейку как значение по умолчанию для параметров, переданных во время выполнения. Подсистема выполнения добавляет новую ячейку под ячейкой параметра с входными параметрами для перезаписи значений по умолчанию.

Назначение значений параметров из конвейера

После создания записной книжки с параметрами его можно запустить из конвейера с помощью действия записной книжки Synapse. После добавления действия на холст конвейера можно задать значения параметров в разделе "Базовые параметры" на вкладке "Параметры".

Снимок экрана: область назначения параметров в Azure Synapse Analytics.

При назначении значений параметров можно использовать язык выражений конвейера или системные переменные.

Использование сочетаний клавиш

Аналогично Jupyter Notebook, в записных книжках Synapse есть модальный пользовательский интерфейс. Клавиатура выполняет различные действия в зависимости от режима ячейки записной книжки. Записные книжки Synapse поддерживают следующие два режима для ячейки кода:

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

    Снимок экрана: режим команды в записной книжке Synapse.

  • Режим редактирования: если ячейка находится в режиме редактирования, текстовый курсор предложит ввести в ячейку. Введите режим редактирования, выбрав клавишу ВВОД или с помощью мыши, чтобы выбрать область редактора ячейки.

    Снимок экрана: режим редактирования в записной книжке Synapse.

Сочетания клавиш в режиме команды

Действие Ярлык записной книжки Synapse
Запуск текущей ячейки и выбор ниже SHIFT+ENTER
Запуск текущей ячейки и вставка ниже Alt+Ввод
Выполнение текущей ячейки CTRL + ВВОД
Выбор ячейки выше Up
Выбор ячейки ниже Down
Выбор предыдущей ячейки тыс.
Выбор следующей ячейки J
Вставка ячейки выше а
Вставка ячейки ниже Б
Удаление выбранных ячеек Shift+D
Переключение в режим правки Введите

Сочетания клавиш в режиме редактирования

Действие Ярлык записной книжки Synapse
Перемещение курсора вверх Up
Перемещение курсора вниз Down
Отмена CTRL+Z
Повторить CTRL+Y
Добавление и удаление комментариев CTRL+/
Удаление слова перед CTRL+BACKSPACE
Удаление слова после CTRL+DELETE
Переход к началу ячейки Ctrl+Home
Передох к концу ячейки Ctrl+End
Переход на одно слово влево CTRL+LEFT
Переход на одно слово вправо CTRL+RIGHT
Выделить все CTRL+A
Отступ CTRL+]
Понижение уровня CTRL+[
Переключение в режим команд ESC