Преобразование данных с помощью записной книжки Synapse

ОБЛАСТЬ ПРИМЕНЕНИЯ:Фабрика данных Azure Azure Synapse Analytics

Совет

Опробуйте Фабрику данных в Microsoft Fabric— решение для аналитики "все в одном" для предприятий. Microsoft Fabric охватывает все, от перемещения данных до обработки и анализа данных, аналитики в режиме реального времени, бизнес-аналитики и отчетов. Узнайте, как начать новую пробную версию бесплатно!

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

Создание действия записной книжки Synapse

Вы можете создать действие записной книжки Synapse прямо на холсте конвейера Synapse или в редакторе записных книжек. Действие записной книжки Synapse выполняется в пуле Spark, который выбирается для этой записной книжки Synapse.

Добавление действия записной книжки Synapse с холста конвейера

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

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

(Необязательно) Вы также можете изменить значения "Пул Spark", "Размер исполнителя", "Динамическое выделение исполнителей", "Минимальное число исполнителей", "Максимальное число исполнителей", "Размер драйвера" в параметрах. Следует отметить, что измененные здесь параметры заменят параметры из сеанса настройки в Notebook. Если в текущем действии записной книжки параметры не указаны, при выполнении будут использоваться параметры из сеанса настройки в этой записной книжке.

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

Свойство Описание Обязательно
Пул Spark Ссылка на пул Spark. В списке можно выбрать пул Apache Spark. Если этот параметр не указан, выполнение будет происходить в пуле Spark записной книжки. Нет
Размер исполнителя Количество ядер и объем памяти, которые будут использоваться для исполнителей, выделяются в определенном пуле Apache Spark для сеанса. Нет
Динамическое выделение исполнителей Этот параметр сопоставляется с динамическим свойством выделения в конфигурации Spark для выделения исполнителей приложения Spark. Нет
Минимальное число исполнителей Минимальное число исполнителей, которые будут выделены в указанном пуле Spark для этого задания. Нет
Максимальное число исполнителей Максимальное число исполнителей, которые будут выделены в указанном пуле Spark для этого задания. Нет
Размер драйвера Количество ядер и объем памяти, которые будут использоваться для драйвера, предоставленного для задания в указанном пуле Apache Spark. Нет

Примечание

Выполнение параллельных записных книжек Spark в конвейерах Azure Synapse помещается в очередь и выполняется в порядке добавления (FIFO), порядок заданий в очереди соответствует временной последовательности, срок действия задания в очереди составляет 3 дня. Обратите внимание, что очередь для записной книжки работает только в конвейере Synapse.

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

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

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

Передача параметров

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

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

Снимок экрана: переключение параметра записной книжки Azure

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

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

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

Снимок экрана: назначение параметра

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

Считывание выходного значения ячейки в записной книжке Synapse

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

  1. Вызовите API mssparkutils.notebook.exit в действии записной книжки Synapse, чтобы получить значение, которое должно отображаться в выходных данных действия, например:

    mssparkutils.notebook.exit("hello world") 
    

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

  2. Считайте значение exitValue из выходных данных действия записной книжки. Ниже представлено простое выражение, которое сравнивает значение exitValue, полученное от действия запуска записной книжки, со строкой hello world:

    Снимок экрана: считывание выходного значения

Выполнение другой записной книжки Synapse

В действии записной книжки Synapse вы можете ссылаться на другие записные книжки, используя магическую команду %run или средства mssparkutils для записной книжки. Оба действия поддерживают вложенные вызовы функций. Основные отличия этих двух методов, которые следует учитывать в зависимости от сценария, приведены ниже:

  • Магическая команда %run копирует все ячейки из указанной записной книжки в ячейку %run и предоставляет доступ к контексту переменной. Если notebook1 ссылается на notebook2 через вызов %run notebook2, а notebook2 вызывает функцию mssparkutils.notebook.exit, выполнение ячейки в notebook1 останавливается. Мы рекомендуем использовать магическую команду %run, если вы хотите включить файл записной книжки.
  • Средства mssparkutils для записной книжки вызывают указанную записную книжку, как метод или функцию. Контекст переменной при этом не передается. Если notebook1 ссылается на notebook2 через вызов mssparkutils.notebook.run("notebook2"), а notebook2 вызывает функцию mssparkutils.notebook.exit, выполнение ячейки в notebook1 продолжается. Мы рекомендуем использовать служебные программы записных книжек mssparkutils, если вы хотите импортировать записную книжку.

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

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

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

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

Открыть моментальный снимок записной книжки:

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

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

Снимок экрана, на котором показаны сведения об ошибке пользователя.

Определение действия записной книжки Synapse

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

{
    "name": "parameter_test",
    "type": "SynapseNotebook",
    "dependsOn": [],
    "policy": {
        "timeout": "7.00:00:00",
        "retry": 0,
        "retryIntervalInSeconds": 30,
        "secureOutput": false,
        "secureInput": false
    },
    "userProperties": [],
    "typeProperties": {
        "notebook": {
            "referenceName": "parameter_test",
            "type": "NotebookReference"
        },
        "parameters": {
            "input": {
                "value": {
                    "value": "@pipeline().parameters.input",
                    "type": "Expression"
                }
            }
        }
    }
}

Выходные данные действия записной книжки Synapse

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

{
{
    "status": {
        "Status": 1,
        "Output": {
            "status": <livySessionInfo>
            },
            "result": {
                "runId": "<GUID>",
                "runStatus": "Succeed",
                "message": "Notebook execution is in Succeeded state",
                "lastCheckedOn": "2021-03-23T00:40:10.6033333Z",
                "errors": {
                    "ename": "",
                    "evalue": ""
                },
                "sessionId": 4,
                "sparkpool": "sparkpool",
                "snapshotUrl": "https://myworkspace.dev.azuresynapse.net/notebooksnapshot/{guid}",
                "exitCode": "abc" // return value from user notebook via mssparkutils.notebook.exit("abc")
            }
        },
        "Error": null,
        "ExecutionDetails": {}
    },

    "effectiveIntegrationRuntime": "DefaultIntegrationRuntime (West US 2)",
    "executionDuration": 234,
    "durationInQueue": {
        "integrationRuntimeQueue": 0
    },
    "billingReference": {
        "activityType": "ExternalActivity",
        "billableDuration": [
            {
                "meterType": "AzureIR",
                "duration": 0.06666666666666667,
                "unit": "Hours"
            }
        ]
    }
}

Известные проблемы

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