Partilhar via


Criar, desenvolver e manter blocos de anotações Synapse

Um bloco de anotações no Azure Synapse Analytics (um bloco de anotações Synapse) é uma interface da Web para você criar arquivos que contêm código dinâmico, visualizações e texto narrativo. Os blocos de notas são um bom local para validar ideias e utilizar experiências rápidas para obter informações dos seus dados. Os notebooks também são amplamente utilizados na preparação de dados, visualização de dados, aprendizado de máquina e outros cenários de big data.

Com um caderno Sinapse, você pode:

  • Comece com zero esforço de configuração.
  • Ajude a manter os dados seguros com recursos de segurança corporativos integrados.
  • Analise dados em formatos brutos (como CSV, TXT e JSON), formatos de arquivo processados (como Parquet, Delta Lake e ORC) e arquivos de dados tabulares SQL em relação ao Spark e SQL.
  • Seja produtivo com recursos de criação aprimorados e visualização de dados integrada.

Este artigo descreve como usar blocos de anotações no Synapse Studio.

Criar um bloco de notas

Você pode criar um novo bloco de anotações ou importar um bloco de anotações existente para um espaço de trabalho Synapse a partir do Pesquisador de Objetos. Selecione o menu Desenvolver . Selecione o + botão e selecione Bloco de Notas ou clique com o botão direito do rato em Blocos de Notas e, em seguida, selecione Novo bloco de notas ou Importar. Os notebooks Synapse reconhecem arquivos IPYNB padrão do Jupyter Notebook.

Captura de ecrã de seleções para criar ou importar um bloco de notas.

Desenvolver blocos de notas

Os blocos de notas consistem em células, que são blocos individuais de código ou texto que pode executar de forma independente ou em grupo.

As seções a seguir descrevem as operações relacionadas ao desenvolvimento de notebooks.

Nota

Nos blocos de notas, uma SparkSession instância é criada automaticamente para você e armazenada em uma variável chamada spark. Há também uma variável para SparkContext chamada sc. Os usuários podem acessar essas variáveis diretamente, mas não devem alterar os valores dessas variáveis.

Adicionar uma célula

Existem várias formas de adicionar uma nova célula ao seu bloco de notas:

  • Passe o cursor sobre o espaço entre duas células e selecione Código ou Markdown.

    Captura de ecrã dos botões Código e Markdown num caderno Synapse.

  • Use teclas de atalho no modo de comando. Selecione a tecla A para inserir uma célula acima da célula atual. Selecione a tecla B para inserir uma célula abaixo da célula atual.

Definir um idioma principal

Os notebooks Synapse suportam cinco idiomas Apache Spark:

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

Você pode definir o idioma principal para as células recém-adicionadas na lista suspensa Idioma na barra de comandos superior.

Captura de ecrã da lista pendente para selecionar um idioma num bloco de notas Synapse.

Usar vários idiomas

Você pode usar vários idiomas em um bloco de anotações especificando o comando mágico de idioma correto no início de uma célula. A tabela a seguir lista os comandos mágicos para alternar os idiomas das células.

Comando mágico Idioma Descrição
%%pyspark Python Execute uma consulta Python contra SparkContext.
%%spark Scala Execute uma consulta Scala em relação ao SparkContext.
%%sql SQL do Apache Spark Execute uma consulta do Spark SQL em relação ao SparkContext.
%%csharp .NET para Spark C# Execute uma consulta C# .NET para Spark em SparkContext.
%%sparkr R Execute uma consulta R em relação a SparkContext.

A imagem a seguir mostra um exemplo de como você pode escrever uma consulta PySpark usando o %%pyspark comando magic ou uma consulta Spark SQL usando o %%sql comando magic em um bloco de anotações Spark (Scala). O idioma principal do bloco de anotações está definido como PySpark.

Captura de tela dos comandos mágicos do Spark em um notebook Sinapse.

Usar tabelas temporárias para fazer referência a dados entre idiomas

Não é possível fazer referência a dados ou variáveis diretamente em diferentes idiomas em um bloco de anotações Synapse. No Spark, você pode fazer referência a uma tabela temporária entre idiomas. Aqui está um exemplo de como ler um DataFrame Scala no PySpark e no Spark SQL usando uma tabela temporária do Spark como solução alternativa:

  1. Na célula 1, leia um DataFrame de um conector de pool SQL usando Scala e crie uma tabela temporária:

    %%spark
    val scalaDataFrame = spark.read.sqlanalytics("mySQLPoolDatabase.dbo.mySQLPoolTable")
    scalaDataFrame.createOrReplaceTempView( "mydataframetable" )
    
  2. Na célula 2, consulte os dados usando o Spark SQL:

    %%sql
    SELECT * FROM mydataframetable
    
  3. Na célula 3, use os dados no PySpark:

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

Utilizar IntelliSense ao estilo IDE

Os notebooks Synapse são integrados com o editor de Mônaco para trazer o IntelliSense no estilo IDE para o editor de células. Os recursos de realce de sintaxe, marcador de erro e autocompletar código ajudam você a escrever código e identificar problemas mais rapidamente.

Os recursos do IntelliSense estão em diferentes níveis de maturidade para diferentes idiomas. Use a tabela a seguir para ver o que é suportado.

Idiomas Realce da sintaxe Marcador de erro de sintaxe Preenchimento de código de sintaxe Conclusão de código para variáveis Autocompletar código de função de sistema Conclusão de código de função de usuário Recuo inteligente Dobragem de código
PySpark (Python) Sim Sim Sim Sim Sim Sim Sim Sim
Spark (Scala) Sim Sim Sim Sim Sim Sim Não Sim
SQL do Apache Spark Sim Sim Sim Sim Sim Não Não Não
.NET para Spark (C#) Sim Sim Sim Sim Sim Sim Sim Sim

Uma sessão ativa do Spark é necessária para usufruir da conclusão de código variável, da conclusão de código de funções do sistema e da conclusão de código de funções do usuário para .NET for Spark (C#).

Usar trechos de código

Os blocos de anotações Synapse fornecem trechos de código que facilitam a inserção de padrões de código comumente usados. Esses padrões incluem configurar sua sessão do Spark, ler dados como um DataFrame do Spark e desenhar gráficos usando Matplotlib.

Trechos aparecem misturados com outras sugestões em teclas de atalho do IntelliSense no estilo IDE. O conteúdo dos trechos de código está alinhado com a linguagem da célula de código. Você pode ver os trechos disponíveis inserindo o trecho ou qualquer palavra-chave que apareça no título do trecho no editor de célula de código. Por exemplo, inserindo leitura, você pode ver a lista de trechos para ler dados de várias fontes de dados.

GIF animado de trechos de código em um caderno Synapse.

Formatar células de texto usando botões da barra de ferramentas

Você pode usar os botões de formatação na barra de ferramentas da célula de texto para executar ações comuns de Markdown. Essas ações incluem colocar o texto em negrito, colocar o texto em itálico, criar parágrafos e títulos por meio de um menu suspenso, inserir código, inserir uma lista não ordenada, inserir uma lista ordenada, inserir um hiperlink e inserir uma imagem de uma URL.

Captura de ecrã da barra de ferramentas da célula de texto num bloco de notas Sinapse.

Desfazer ou refazer uma operação de célula

Para revogar as operações de célula mais recentes, selecione o botão Desfazer ou o botão Refazer, ou selecione a tecla Z ou Shift+Z. Agora você pode desfazer ou refazer até 10 operações de células históricas.

Captura de ecrã dos botões Desfazer e Refazer num bloco de notas Synapse.

As operações de célula suportadas incluem:

  • Inserir ou excluir uma célula. Você pode revogar operações de exclusão selecionando Desfazer. Esta ação mantém o conteúdo do texto junto com a célula.
  • Reordenar as células.
  • Ative ou desative uma célula de parâmetro.
  • Converter entre uma célula de código e uma célula de Markdown.

Nota

Não é possível desfazer operações de texto ou operações de comentário numa célula.

Comentar uma célula de código

  1. Selecione o botão Comentários na barra de ferramentas do bloco de anotações para abrir o painel Comentários .

    Captura de ecrã do botão Comentários e do painel Comentários num bloco de notas Sinapse.

  2. Selecione o código na célula de código, selecione Novo no painel Comentários , adicione comentários e, em seguida, selecione o botão Publicar comentário .

    Captura de tela da caixa para inserir um comentário em um bloco de anotações Synapse.

  3. Se necessário, podes executar as ações Editar comentário, Resolver thread e Eliminar thread selecionando o ícone Mais com três pontos (...) ao lado do teu comentário.

    Captura de ecrã de comandos adicionais para uma célula de código num bloco de notas Synapse.

Mover uma célula

Para mover uma célula, selecione o lado esquerdo da célula e arraste-a para a posição desejada.

GIF animado de células em movimento em um caderno Synapse.

Copiar uma célula

Para copiar uma célula, primeiro crie uma nova célula e, em seguida, selecione todo o texto na célula original, copie o texto e cole o texto na nova célula. Quando a célula está no modo de edição, os atalhos de teclado tradicionais para selecionar todo o texto são limitados à célula.

Gorjeta

Os cadernos Synapse também fornecem trechos de padrões de código comumente usados.

Excluir uma célula

Para excluir uma célula, selecione o botão Excluir à direita da célula.

Você também pode usar teclas de atalho no modo de comando. Selecione Shift+D para excluir a célula atual.

Captura de ecrã do botão para eliminar uma célula num bloco de notas Synapse.

Recolher entrada de célula

Para recolher a entrada da célula atual, selecione o menu Mais comandos através das reticências (...) na barra de ferramentas da célula e, em seguida, selecione Ocultar entrada. Para expandir a entrada, selecione Mostrar entrada enquanto a célula está recolhida.

GIF animado de colapso e expansão da entrada de células em um caderno Synapse.

Recolher saída da célula

Para recolher a saída da célula atual, selecione o ícone de Mais comandos (...) na barra de ferramentas da célula e, em seguida, selecione Ocultar saída. Para expandir a saída, selecione Mostrar saída enquanto a saída da célula estiver oculta.

GIF animado de colapso e expansão da saída de células em um notebook Synapse.

Utilize uma estrutura de tópicos do caderno

O contorno (índice) apresenta o primeiro cabeçalho Markdown de qualquer bloco Markdown numa janela da barra lateral para navegação rápida. A barra lateral de contorno é redimensionável e dobrável para se ajustar à tela da melhor maneira possível. Para abrir ou ocultar a barra lateral, selecione o botão Contorno na barra de comandos do bloco de notas.

Captura de ecrã da barra lateral de contorno num caderno Synapse.

Executar um caderno

Pode executar as células de código no seu bloco de notas individualmente ou todas de uma só vez. O estado e o progresso de cada célula aparecem no bloco de notas.

Nota

A exclusão de um bloco de anotações não cancela automaticamente nenhum trabalho em execução no momento. Se você precisar cancelar um trabalho, vá para o hub Monitor e cancele-o manualmente.

Executar uma célula

Há várias maneiras de executar o código em uma célula:

  • Passe o cursor sobre a célula que pretende executar e, em seguida, selecione o botão Executar célula ou selecione Ctrl+Enter.

    Captura de tela do comando para executar uma célula em um bloco de anotações Sinapse.

  • Use teclas de atalho no modo de comando. Selecione Shift+Enter para executar a célula atual e selecione a célula abaixo dela. Selecione Alt+Enter para executar a célula atual e inserir uma nova célula abaixo dela.

Executar todas as células

Para executar todas as células do bloco de anotações atual em sequência, selecione o botão Executar tudo .

Captura de ecrã do botão para executar todas as células num bloco de notas Sinapse.

Executar todas as células acima ou abaixo

Para executar em sequência todas as células acima da célula atual, expanda a lista suspensa do botão Executar tudo e selecione Executar células acima. Selecione Executar células abaixo para executar todas as células abaixo da atual em sequência.

Captura de tela dos comandos para executar células acima e abaixo da célula atual em um bloco de anotações Sinapse.

Cancelar todas as células em execução

Para cancelar as células em execução ou as células que aguardam na fila, selecione o botão Cancelar tudo .

Captura de ecrã do botão para cancelar todas as células em execução ou em espera num bloco de notas Sinapse.

Referenciar um bloco de notas

Para fazer referência a outro bloco de anotações dentro do contexto do bloco de anotações atual, use o comando mágico %run <notebook path>. Todas as variáveis definidas no bloco de notas de referência estão disponíveis no bloco de notas atual.

Eis um exemplo:

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

A referência do bloco de anotações funciona no modo interativo e nos pipelines.

O %run comando magic tem estas limitações:

  • O comando suporta chamadas aninhadas, mas não chamadas recursivas.
  • O comando suporta passar apenas um caminho absoluto ou o nome de um caderno como parâmetro. Não suporta caminhos relativos.
  • Atualmente, o comando suporta apenas quatro tipos de valor de parâmetro: int, float, boole string. Não suporta operações de substituição variáveis.
  • Os cadernos referenciados devem ser publicados. Você precisa publicar os blocos de anotações para fazer referência a eles, a menos que selecione a opção para habilitar uma referência de bloco de anotações não publicada. O Synapse Studio não reconhece os cadernos inéditos do repositório Git.
  • Os blocos de notas referenciados não suportam profundidades de instrução superiores a cinco.

Usar o explorador de variáveis

Um bloco de anotações Synapse fornece um explorador de variáveis interno na forma de uma tabela que lista variáveis na sessão atual do Spark para células PySpark (Python). A tabela inclui colunas para nome, tipo, comprimento e valor da variável. Mais variáveis aparecem automaticamente à medida que são definidas nas células de código. A seleção de cada cabeçalho de coluna classifica as variáveis na tabela.

Para abrir ou ocultar o explorador de variáveis, selecione o botão Variáveis na barra de comandos do bloco de notas.

Captura de tela do explorador de variáveis em um bloco de anotações Synapse.

Nota

O explorador de variáveis suporta apenas Python.

Usar o indicador de status da célula

Um status detalhado passo a passo de uma execução de célula é exibido abaixo da célula para ajudar a ver o progresso atual. Depois que a execução da célula terminar, um resumo com a duração total e a hora de término aparecerá e permanecerá lá para referência futura.

Captura de ecrã do resumo da execução de uma célula num notebook Synapse.

Usar o indicador de progresso do Spark

Um notebook Synapse é puramente baseado em Spark. As células de código são executadas no pool do Apache Spark sem servidor remotamente. Um indicador de progresso do trabalho do Spark com uma barra de progresso em tempo real ajuda você a entender o status da execução do trabalho.

O número de tarefas para cada trabalho ou estágio ajuda a identificar o nível paralelo do seu trabalho do Spark. Você também pode aprofundar-se na interface do utilizador do Spark de um trabalho (ou etapa) específico selecionando o link no nome do trabalho ou da etapa.

Captura de tela do indicador de progresso do Spark em um bloco de anotações Sinapse.

Configurar uma sessão do Spark

No painel Configurar sessão, que você pode encontrar selecionando o ícone de engrenagem na parte superior do bloco de anotações, você pode especificar a duração do tempo limite, o número de executores e o tamanho dos executores a serem fornecidos à sessão atual do Spark. Reinicie a sessão do Spark para que as alterações de configuração entrem em vigor. Todas as variáveis do bloco de anotações armazenadas em cache são limpas.

Você também pode criar uma configuração a partir da configuração do Apache Spark ou selecionar uma configuração existente. Para obter detalhes, consulte Gerenciar configuração do Apache Spark.

Captura de tela do painel para configurar uma sessão em um bloco de anotações Synapse.

Comando Magic para configurar uma sessão do Spark

Você também pode especificar as configurações da sessão do Spark através do comando magic %%configure. Para que as configurações entrem em vigor, reinicie a sessão do Spark.

Recomendamos que execute %%configure no início do seu bloco de notas. Aqui está um exemplo. Para obter a lista completa de parâmetros válidos, consulte as informações do Livy no 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" 
    }
}

Aqui estão algumas considerações para o comando mágico %%configure.

  • Recomendamos que você use o mesmo valor para driverMemory e executorMemory em %%configure. Também recomendamos que driverCores e executorCores tenham o mesmo valor.
  • Você pode usar %%configure nos pipelines do Synapse, mas caso não o configure na primeira célula de código, a execução do pipeline falhará, uma vez que não consegue reiniciar a sessão.
  • O %%configure comando usado em mssparkutils.notebook.run é ignorado, mas o comando usado em %run <notebook> continua a ser executado.
  • Você deve usar as propriedades de configuração padrão do Spark no corpo "conf". Não suportamos referências de primeiro nível para as propriedades de configuração do Spark.
  • Algumas propriedades especiais do Spark não terão efeito no "conf" corpo, incluindo "spark.driver.cores", "spark.executor.cores", "spark.driver.memory", "spark.executor.memory", e "spark.executor.instances".

Configuração de sessão parametrizada a partir de um pipeline

Você pode usar a configuração de sessão parametrizada para substituir valores no comando mágico com parâmetros da execução do pipeline (atividade do notebook). Ao preparar uma %%configure célula de código, você pode substituir valores padrão usando um objeto como este:

{
      "activityParameterName": "parameterNameInPipelineNotebookActivity",
      "defaultValue": "defaultValueIfNoParameterFromPipelineNotebookActivity"
} 

O exemplo a seguir mostra valores padrão de 4 e "2000", que também são configuráveis:

%%configure  

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

O bloco de anotações usa o valor padrão se você executar o bloco de anotações no modo interativo diretamente ou se a atividade do bloco de anotações de pipeline não fornecer um parâmetro que corresponda ao "activityParameterName".

Durante o modo de execução do pipeline, pode-se usar a guia Configurações para configurar as definições de uma atividade do bloco de anotações do pipeline.

Captura de tela da configuração da sessão parametrizada em um notebook Synapse.

Se pretender alterar a configuração da sessão, o nome do parâmetro de atividade do notebook de pipeline deve ser o mesmo que activityParameterName no notebook. Neste exemplo, durante uma execução de pipeline, 8 substitui driverCores em %%configuree 4000 substitui livy.rsc.sql.num-rows.

Se uma execução de pipeline falhar depois de usar o %%configure comando mágico, poderá obter mais informações de erro executando a %%configure célula mágica no modo interativo do notebook.

Trazer dados para um bloco de notas

Você pode carregar dados do Azure Data Lake Storage Gen 2, do Armazenamento de Blobs do Azure e dos pools SQL, conforme mostrado nos exemplos de código a seguir.

Ler um arquivo CSV do Azure Data Lake Storage Gen2 como um Spark DataFrame

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')

Ler um arquivo CSV do Armazenamento de Blobs do Azure como um DataFrame do 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)

Ler dados da conta de armazenamento principal

Você pode acessar dados na conta de armazenamento principal diretamente. Não há necessidade de fornecer as chaves secretas. No Data Explorer, clique com o botão direito do mouse em um arquivo e selecione Novo bloco de anotações para ver um novo bloco de anotações com um extrator de dados gerado automaticamente.

Captura de tela que mostra a abertura de uma nova tabela do Spark para acessar dados de arquivo no Azure Synapse Analytics.

Utilize widgets IPython

Widgets são objetos Python dinâmicos que têm uma representação no navegador, geralmente como um controle, tal como um controlo deslizante ou uma caixa de texto. Os widgets IPython funcionam apenas em ambientes Python. No momento, eles não são suportados em outros idiomas (por exemplo, Scala, SQL ou C#).

Etapas para usar widgets IPython

  1. Importe o ipywidgets módulo para usar a estrutura Jupyter Widgets:

    import ipywidgets as widgets
    
  2. Use a função de nível display superior para renderizar um widget ou deixe uma expressão de widget tipo na última linha da célula de código:

    slider = widgets.IntSlider()
    display(slider)
    
    slider = widgets.IntSlider()
    slider
    
  3. Corra a célula. O widget aparece na área de saída.

    Captura de ecrã de um controle deslizante de widget IPython em um notebook Synapse.

Você pode usar várias display() chamadas para renderizar a mesma instância de widget várias vezes, mas elas permanecem sincronizadas entre si:

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

Captura de tela de vários controles deslizantes de widget IPython em um notebook Synapse.

Para renderizar dois widgets independentes um do outro, crie duas instâncias de widget:

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

Widgets suportados

Tipo de widget Widgets
Numérico IntSlider, FloatSlider, FloatLogSlider, IntRangeSlider, FloatRangeSlider, IntProgress, FloatProgress, BoundedIntText, BoundedFloatText, IntText, FloatText
Booleano ToggleButton, Checkbox, Valid
Seleção Dropdown, RadioButtons, Select, SelectionSlider, SelectionRangeSlider, ToggleButtons, SelectMultiple
String Text, Text area, Combobox, Password, LabelHTML, HTML Math, Image, Button
Reproduzir (animação) Date picker, Color picker, Controller
Caixa/Layout Box, HBox, VBox, GridBox, Accordion, Tabs, Stacked

Limitações conhecidas

  • A tabela a seguir lista widgets que não são suportados no momento, juntamente com soluções alternativas:

    Caraterística Solução
    Output Widget Em vez disso, você pode usar a print() função para escrever texto no stdout.
    widgets.jslink() Você pode usar a widgets.link() função para vincular dois widgets semelhantes.
    FileUpload Widget Nenhum disponível.
  • A função global display que o Azure Synapse Analytics fornece não suporta a exibição de vários widgets em uma chamada (ou seja, display(a, b)). Esse comportamento é diferente da função IPython display .

  • Se você fechar um bloco de anotações que contém um widget IPython, não poderá visualizar ou interagir com o widget até executar a célula correspondente novamente.

Guardar cadernos

Pode guardar um único bloco de notas ou todos os blocos de notas na sua área de trabalho:

  • Para salvar as alterações feitas em um único bloco de anotações, selecione o botão Publicar na barra de comandos do bloco de anotações.

    Captura de ecrã do botão para publicar alterações num bloco de notas Sinapse.

  • Para salvar todos os blocos de anotações em seu espaço de trabalho, selecione o botão Publicar tudo na barra de comandos do espaço de trabalho.

    Captura de tela do botão para publicar alterações em todos os blocos de anotações em um espaço de trabalho do Synapse.

No painel de Propriedades do bloco de notas, pode configurar se deseja incluir a saída da célula ao guardar.

Captura de ecrã das propriedades do notebook Synapse e a caixa de seleção para incluir a saída das células ao guardar.

Use comandos mágicos

Você pode usar comandos mágicos Jupyter familiares em notebooks do Synapse. Analise as seguintes listas de comandos mágicos atualmente disponíveis. Conte-nos seus casos de uso no GitHub para que possamos continuar a criar mais comandos mágicos para atender às suas necessidades.

Nota

Somente os seguintes comandos mágicos são suportados nos pipelines Synapse: %%pyspark, %%spark, %%csharp, %%sql.

Comandos mágicos disponíveis para linhas:

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

Comandos mágicos disponíveis para células:

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

Fazer referência a um bloco de notas não publicado

Fazer referência a um bloco de anotações não publicado é útil quando você deseja depurar localmente. Quando activares esta funcionalidade, uma execução de caderno busca o conteúdo atual no cache da web. Se executar uma célula que inclua uma declaração de referência de bloco de anotações, irá referenciar os blocos de notas de apresentação no navegador de anotações atual em vez de uma versão salva num cluster. Outros blocos de anotações podem fazer referência às alterações no editor do bloco de anotações sem exigir que você publique (modo ao vivo) ou confirme (modo Git) as alterações. Usando esta abordagem, pode-se evitar a poluição de bibliotecas comuns durante o processo de desenvolvimento ou depuração.

Você pode habilitar a referência a um bloco de anotações não publicado marcando a caixa de seleção apropriada no painel Propriedades .

Captura de tela da caixa de seleção para habilitar a referência a um bloco de anotações Synapse não publicado.

A tabela a seguir compara casos. Embora %run e mssparkutils.notebook.run tenham o mesmo comportamento aqui, a tabela usa %run como exemplo.

Incidente Desativar Ativar
Modo ao vivo
Nb1 (publicado)
%run Nb1
Executar a versão publicada do Nb1 Executar a versão publicada do Nb1
Nb1 (novo)
%run Nb1
Erro Executar o novo Nb1
Nb1 (publicado anteriormente, editado)
%run Nb1
Executar a versão publicada do Nb1 Executar versão editada do Nb1
Modo Git
Nb1 (publicado)
%run Nb1
Executar a versão publicada do Nb1 Executar a versão publicada do Nb1
Nb1 (novo)
%run Nb1
Erro Executar o novo Nb1
Nb1 (não publicado, comprometido)
%run Nb1
Erro Executar Nb1 confirmado
Nb1 (publicado anteriormente, comprometido)
%run Nb1
Executar a versão publicada do Nb1 Executar a versão confirmada do Nb1
Nb1 (publicado anteriormente, novo na ramificação atual)
%run Nb1
Executar a versão publicada do Nb1 Executar novo Nb1
Nb1 (não publicado, previamente comprometido, editado)
%run Nb1
Erro Executar versão editada do Nb1
Nb1 (previamente publicado e comprometido, editado)
%run Nb1
Executar a versão publicada do Nb1 Executar versão editada do Nb1

Em resumo:

  • Se desativares a referência a um bloco de anotações não publicado, executa sempre a versão publicada.
  • Se você habilitar a referência a um bloco de anotações não publicado, a execução de referência sempre adotará a versão atual do bloco de anotações que aparece na UX do notebook.

Gerenciar sessões ativas

Pode reutilizar as suas sessões de bloco de notas sem ter de iniciar novas. Nos blocos de anotações Synapse, você pode gerenciar suas sessões ativas em uma única lista. Para abrir a lista, selecione as reticências (...) e, em seguida, selecione Gerir sessões.

Captura de tela de seleções para abrir uma lista de sessões ativas do bloco de anotações Sinapse.

O painel Sessões ativas lista todas as sessões no espaço de trabalho atual que você iniciou a partir de um bloco de anotações. A lista mostra as informações da sessão e os blocos de anotações correspondentes. As ações Desanexar com bloco de anotações, Parar a sessão e Exibir no monitoramento estão disponíveis aqui. Além disso, pode ligar o bloco de notas selecionado a uma sessão ativa iniciada a partir de outro bloco de notas. A sessão é então separada do bloco de notas anterior (se não estiver inativo) e anexada ao atual.

Captura de tela do painel para sessões ativas em um espaço de trabalho do Synapse.

Usar logs do Python em um notebook

Você pode encontrar logs Python e definir diferentes níveis e formatos de log usando o seguinte código de exemplo:

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")

Ver o histórico de comandos de entrada

Os blocos de anotações Synapse suportam o comando mágico %history para imprimir o histórico de comandos de entrada para a sessão atual. O %history comando magic é semelhante ao comando padrão Jupyter IPython e funciona para vários contextos de linguagem em um notebook.

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

No código anterior, -n é o número de execução de impressão. O range valor pode ser:

  • N: Imprima o Nth código da célula executada.
  • M-N: Imprima o código da célula Mth para a célula Nth executada.

Por exemplo, para imprimir o histórico de entrada da primeira para a segunda célula executada, use %history -n 1-2.

Integrar um bloco de notas

Adicionar um bloco de anotações a um pipeline

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

Captura de ecrã das opções de menu para adicionar um caderno a um pipeline Synapse novo ou existente.

Designar uma célula de parâmetro

Para parametrizar o seu bloco de notas, selecione as reticências (...) para aceder a 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âmetro.

Captura de ecrã da opção de menu para designar uma célula como uma célula de parâmetro.

O Azure Data Factory procura a célula de parâmetro e trata essa célula como o padrão para os parâmetros passados no momento da execução. O mecanismo de execução adiciona uma nova célula abaixo da célula de parâmetro com parâmetros de entrada para substituir os valores padrão.

Atribuir valores de parâmetros de um pipeline

Depois de criar um caderno de notas com parâmetros, pode executá-lo a partir de um pipeline usando uma atividade de caderno de notas Synapse. Depois de adicionar a atividade à tela do pipeline, pode definir os valores dos parâmetros na seção de Parâmetros básicos da guia Configurações.

Captura de ecrã da área para atribuição de parâmetros no Azure Synapse Analytics.

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

Usar teclas de atalho

Semelhante aos Jupyter Notebooks, os notebooks Synapse têm uma interface de usuário modal. O teclado faz coisas diferentes, dependendo do modo em que a célula do notebook está. Os blocos de anotações Synapse suportam os dois modos a seguir para uma célula de código:

  • Modo de comando: uma célula está no modo de comando quando nenhum cursor de texto está solicitando que você digite. Quando uma célula está no modo de comando, você pode editar o bloco de anotações como um todo, mas não digitar em células individuais. Entre no modo de comando selecionando a tecla Esc ou usando o mouse para selecionar fora da área do editor de uma célula.

    Captura de tela do modo de comando em um notebook Synapse.

  • Modo de edição: quando uma célula está no modo de edição, um cursor de texto solicita que você digite a célula. Entre no modo de edição selecionando a tecla Enter ou usando o mouse para selecionar a área do editor de uma célula.

    Captura de tela do modo de edição em um bloco de anotações Sinapse.

Teclas de atalho no modo de comando

Ação Atalho do bloco de anotações Synapse
Execute a célula atual e selecione as opções abaixo Shift+Enter
Execute a célula atual e insira abaixo Alt+Enter
Executar célula atual Ctrl+Enter
Selecionar célula acima Acima
Selecione a célula abaixo Baixo
Selecionar célula anterior K
Selecionar célula seguinte J
Inserir célula acima A
Inserir célula abaixo B
Excluir células selecionadas Shift+D
Mudar para o modo de edição Entrar

Teclas de atalho no modo de edição

Ação Atalho do bloco de anotações Synapse
Mover o cursor para cima Acima
Mover o cursor para baixo Baixo
Anular Ctrl+Z
Refazer Ctrl+Y
Comentar/Descomentar Ctrl+/
Excluir palavra antes Ctrl+Backspace
Eliminar a palavra seguinte Ctrl+Eliminar
Ir para o início da célula Ctrl+Home
Ir para o fim da célula Ctrl+End
Vá uma palavra para a esquerda Ctrl+Esquerda
Vá uma palavra à direita Ctrl+Direita
Selecionar tudo Ctrl+A
Recuo Ctrl+]
Desidentar Ctrl+[
Mudar para o modo de comando Esc