Partilhar via


Transformar os dados com um bloco de notas do Synapse

APLICA-SE A: Azure Data Factory Azure Synapse Analytics

Gorjeta

Experimente o Data Factory no Microsoft Fabric, uma solução de análise tudo-em-um para empresas. O Microsoft Fabric abrange tudo, desde a movimentação de dados até ciência de dados, análises em tempo real, business intelligence e relatórios. Saiba como iniciar uma nova avaliação gratuitamente!

A atividade do bloco de anotações do Azure Synapse em um pipeline do Synapse executa um bloco de anotações do Synapse em seu espaço de trabalho do Azure Synapse. Este artigo baseia-se no artigo de atividades de transformação de dados, que apresenta uma visão geral da transformação de dados e das atividades de transformação suportadas. 

Criar uma atividade do bloco de anotações Synapse

Você pode criar uma atividade do bloco de anotações Synapse diretamente da tela do pipeline Synapse ou do editor do bloco de anotações. A atividade do bloco de anotações Synapse é executada no pool Spark que é escolhido no bloco de anotações Synapse.

Adicionar uma atividade de bloco de anotações Synapse da tela do pipeline

Arraste e solte o bloco de anotações Synapse em Atividades na tela do pipeline Synapse. Selecione na caixa de atividade do bloco de anotações Synapse e configure o conteúdo do bloco de anotações para a atividade atual nas configurações. Você pode selecionar um bloco de anotações existente no espaço de trabalho atual ou adicionar um novo.

Se você selecionar um bloco de anotações existente no espaço de trabalho atual, poderá clicar no botão Abrir para abrir diretamente a página do bloco de anotações.

(Opcional) Você também pode reconfigurar o pool do Spark\Tamanho do executor\Alocar executores dinamicamente\Executores mínimos\Executores máximos\Tamanho do driver nas configurações. Deve-se notar que as configurações reconfiguradas aqui substituirão as configurações da sessão de configuração no Notebook. Se nada estiver definido nas configurações da atividade atual do bloco de anotações, ele será executado com as configurações da sessão de configuração nesse bloco de anotações.

captura de tela-mostrando-criar-notebook-atividade

Property Descrição Obrigatório
Piscina de faísca Referência à piscina Spark. Você pode selecionar Apache Spark pool na lista. Se essa configuração estiver vazia, ela será executada no pool de faíscas do próprio notebook. Não
Tamanho do executor Número de núcleos e memória a serem usados para executores alocados no pool Apache Spark especificado para a sessão. Não
Alocar executores dinamicamente Essa configuração é mapeada para a propriedade de alocação dinâmica na configuração do Spark para alocação de executores do Spark Application. Não
Executores Min Número mínimo de executores a serem alocados no pool Spark especificado para o trabalho. Não
Max executores Número máximo de executores a serem alocados no pool de faíscas especificado para o trabalho. Não
Tamanho do driver Número de núcleos e memória a serem usados para o driver fornecido no pool Apache Spark especificado para o trabalho. Não

Nota

A execução de Spark Notebooks paralelos nos pipelines do Azure Synapse ser enfileirada e executada de forma FIFO, a ordem dos trabalhos na fila é de acordo com a sequência de tempo, o tempo de expiração de um trabalho na fila é de 3 dias, observe que a fila para notebook só funciona no pipeline de sinapse.

Adicionar um bloco de anotações ao pipeline Synapse

Selecione o botão Adicionar ao pipeline no canto superior direito para adicionar um bloco de anotações a um pipeline existente ou criar um novo pipeline.

captura de tela-mostrando-adicionar-notebook-para-pipeline

Parâmetros de passagem

Designar uma célula de parâmetros

Para parametrizar seu bloco de anotações, selecione as reticências (...) para acessar mais comandos na barra de ferramentas da célula. Em seguida, selecione Alternar célula de parâmetro para designar a célula como a célula de parâmetros.

screenshot-showing-azure-notebook-toggle-parameter

O Azure Data Factory procura a célula de parâmetros e usa os valores como padrão para os parâmetros passados no tempo de execução. O mecanismo de execução adicionará uma nova célula abaixo da célula de parâmetros com parâmetros de entrada para substituir os valores padrão.

Atribuir valores de parâmetros de um pipeline

Depois de criar um bloco de anotações com parâmetros, você pode executá-lo a partir de um pipeline com a atividade do bloco de anotações Sinapse. Depois de adicionar a atividade à tela do pipeline, você poderá definir os valores dos parâmetros na seção Parâmetros básicos na guia Configurações .

screenshot-showing-assign-a-parameter

Ao atribuir valores de parâmetro, você pode usar a linguagem de expressão de pipeline ou variáveis de sistema.

Ler o valor de saída da célula do bloco de notas Synapse

Você pode ler o valor de saída da célula do bloco de anotações nas próximas atividades seguindo as etapas abaixo:

  1. Chame a API mssparkutils.notebook.exit na atividade do bloco de anotações Synapse para retornar o valor que você deseja mostrar na saída da atividade, por exemplo:

    mssparkutils.notebook.exit("hello world") 
    

    Salvando o conteúdo do bloco de anotações e acionando novamente o pipeline, a saída da atividade do bloco de anotações conterá o exitValue que pode ser consumido para as seguintes atividades na etapa 2.

  2. Leia a propriedade exitValue da saída da atividade do bloco de anotações. Aqui está uma expressão de exemplo que é usada para verificar se o exitValue buscado da saída da atividade do notebook é igual a "hello world":

    screenshot-showing-read-exit-value

Executar outro bloco de anotações Synapse

Você pode fazer referência a outros blocos de anotações em uma atividade de bloco de anotações Synapse chamando %run magic ou utilitários de notebook mssparkutils. Ambos suportam chamadas de função de aninhamento. As principais diferenças desses dois métodos que você deve considerar com base no seu cenário são:

  • %run magic copia todas as células do bloco de anotações referenciado para a célula %run e compartilha o contexto da variável. Quando notebook1 faz referência a notebook2 via %run notebook2 e notebook2 chama uma função mssparkutils.notebook.exit , a execução da célula no notebook1 será interrompida. Recomendamos que você use %run magic quando quiser "incluir" um arquivo de bloco de anotações.
  • MSSTareTilUtils Notebook Utilities chama o bloco de anotações referenciado como um método ou uma função. O contexto da variável não é compartilhado. Quando notebook1 faz referência a notebook2 via mssparkutils.notebook.run("notebook2") e notebook2 chama uma função mssparkutils.notebook.exit , a execução da célula no notebook1 continuará. Recomendamos que você use os utilitários de notebook mssparkutils quando quiser "importar" um notebook.

Ver histórico de execução de atividades do bloco de notas

Vá para Pipeline executa na guia Monitor , você verá o pipeline que você acionou. Abra o pipeline que contém a atividade do bloco de anotações para ver o histórico de execução.

Você pode ver o instantâneo de execução mais recente do bloco de anotações, incluindo a entrada e a saída das células, selecionando o botão abrir o bloco de anotações .

Captura de ecrã que mostra o histórico de atividades do bloco de notas.

Abrir instantâneo do bloco de anotações:

Captura de ecrã que mostra um instantâneo do bloco de notas aberto.

Você pode ver a entrada ou saída da atividade do notebook selecionando o botão de entrada ou Saída . Se o pipeline falhou com um erro do usuário, selecione a saída para verificar o campo de resultado para ver o rastreio detalhado do erro do usuário.

Captura de tela que mostra os detalhes do erro do usuário.

Definição da atividade do bloco de anotações Synapse

Aqui está a definição JSON de exemplo de uma atividade de bloco de anotações Sinapse:

{
    "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"
                }
            }
        }
    }
}

Saída de atividade do bloco de anotações Synapse

Aqui está o exemplo JSON de uma saída de atividade do bloco de anotações Sinapse:

{
{
    "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"
            }
        ]
    }
}

Problemas conhecidos

Se o nome do bloco de anotações estiver parametrizado na atividade Pipeline Notebook, a versão do bloco de anotações em status não publicado não poderá ser referenciada nas execuções de depuração.