Todos os produtos
Search
Central de documentação

DataWorks:Desenvolvimento com Notebook

Última atualização: Jul 05, 2026

O DataWorks Notebook é um ambiente interativo e modular para análise e desenvolvimento de dados. Use células Python, SQL e Markdown em conjunto para se conectar a motores de computação como MaxCompute, EMR e AnalyticDB, cobrindo desde processamento de dados e análise exploratória até visualização e desenvolvimento de modelos. Este documento orienta você sobre como usar o Notebook de forma eficiente para desenvolvimento de dados e agendamento de tarefas.

Execute seu primeiro Notebook

Esta seção explica como criar um Notebook, passar uma variável do Python para o SQL e consultar dados em uma tabela do MaxCompute.

Antes de começar, verifique se os seguintes requisitos foram atendidos:

  • O novo Data Studio está ativado no seu workspace.

  • Um grupo de recursos serverless foi criado. A execução de Notebooks no ambiente de produção exige um grupo de recursos serverless.

  • Uma instância de ambiente de desenvolvimento pessoal foi criada. Caso seu Notebook contenha células Python, essa instância é obrigatória para executá-las e depurá-las no ambiente de desenvolvimento.

    Se ainda não tiver criado uma, consulte Criar uma instância de ambiente de desenvolvimento pessoal .

Etapas:

  1. Crie um nó de Notebook

    1. Acesse o Data Studio. Em Data Development, dentro de Workspace Directories, crie um nó de Notebook.

    2. Nomeie o Notebook (por exemplo, hello_notebook) e envie-o.

  2. Selecione um ambiente de desenvolvimento pessoal

    Na barra de navegação superior, clique em Personal Development Environment e selecione sua instância de ambiente de desenvolvimento pessoal na lista suspensa.

  3. Escreva uma célula Python para definir uma variável

    Adicione uma célula Python e insira o código abaixo. Esta etapa define uma variável de cidade para a consulta SQL da próxima etapa.

    # Define a variable for subsequent SQL queries
    city = 'Beijing'
    print(f"Defined city variable city = {city}")
  4. Escreva uma célula SQL para consultar dados

    1. Abaixo da primeira célula, adicione uma célula SQL.

    2. No canto inferior direito da célula, altere o tipo de SQL para MaxCompute SQL.

    3. Insira o seguinte código SQL. O código referencia a variável city definida na célula Python anterior por meio da sintaxe ${city}.

      -- Query using the variable defined in Python  
      SELECT '${city}' AS city;
  5. Execute todas as células e verifique a saída

    1. Clique em Run All na barra de ferramentas do Notebook.

    2. Observe a saída de cada célula:

      • A célula Python imprime Defined city variable city = Beijing.

      • A célula SQL exibe o resultado da consulta em uma tabela logo abaixo.

Você criou e executou um Notebook que transfere dados entre Python e SQL.

Conceitos principais

Compreender os conceitos a seguir ajuda a garantir um comportamento consistente ao mover Notebooks do ambiente de desenvolvimento para o de produção.

Modos de Notebook

O DataWorks Notebook oferece suporte a dois modos:

  • Modo SQL e Markdown: Contém apenas células SQL e Markdown. Ideal para consultas puras de dados e documentação. Nesse modo, basta um grupo de recursos serverless para executar tanto no ambiente de desenvolvimento quanto no de produção, sem necessidade de instância de ambiente de desenvolvimento pessoal. Trata-se do modo padrão, e o Notebook exibe SQL Kernel no canto superior direito.

  • Modo Completo (Python + SQL + Markdown): Permite o uso combinado de células Python, SQL e Markdown. Recomendado para cenários complexos que exigem processamento, análise e visualização de dados. No ambiente de desenvolvimento, é necessária uma instância de ambiente de desenvolvimento pessoal para executar códigos Python. Após selecionar esse ambiente, o canto superior direito do Notebook exibirá image (a versão do Python serve apenas como referência).

Ambiente de desenvolvimento versus ambiente de produção

Aspecto

Ambiente de desenvolvimento

Ambiente de produção

Tempo de execução

Instância de ambiente de desenvolvimento pessoal

O Resource Group e a Image especificados nas configurações de agendamento

Principais diferenças

Para Notebooks com células Python, utiliza-se uma instância dedicada de desenvolvimento pessoal. Nela, é possível instalar livremente bibliotecas Python para depuração.

Já para Notebooks contendo apenas células SQL e Markdown, basta um grupo de recursos serverless.

Tarefas agendadas periodicamente pelo Operation Center ou acionadas manualmente como execuções de fluxo de trabalho no Data Studio rodam no grupo de recursos definido nas configurações de agendamento. O ambiente (incluindo bibliotecas de dependência e rede) depende inteiramente da imagem e da configuração do grupo de recursos escolhidas.

Como garantir consistência

Caso tenha instalado pacotes Python via pip install ou métodos similares na instância de ambiente de desenvolvimento pessoal, será necessário criar uma imagem do DataWorks a partir do seu ambiente de desenvolvimento pessoal e selecionar essa imagem personalizada nas configurações de agendamento. Isso assegura que o ambiente de produção tenha as mesmas dependências do ambiente de desenvolvimento.

Importante

Observações sobre conectividade de rede: Quando um ambiente de desenvolvimento pessoal não está associado a uma VPC, ele é vinculado por padrão a um endereço IP público aleatório com largura de banda limitada, permitindo acesso direto à Internet. Contudo, nós de Notebook implantados em produção utilizam a rede do grupo de recursos configurado nas definições de agendamento. Recomendamos associar o ambiente de desenvolvimento pessoal ao mesmo grupo de recursos usado nessas configurações para manter a consistência da rede.

Recursos de computação e kernels

No DataWorks Notebook, a execução de código depende de dois conceitos fundamentais: recursos de computação e kernels.

  • Recurso de computação: É o motor de computação back-end responsável por executar e processar efetivamente as tarefas de dados. Ele define o ambiente de tempo de execução, o poder de processamento e a lógica de execução das tarefas.

    • Definição: Uma instância de serviço de computação independente e agendável, como um projeto do MaxCompute ou um cluster EMR Serverless Spark.

    • Finalidade: Fornece o poder de computação real para consultas SQL, jobs Spark e outras tarefas.

    • Seleção: É obrigatório associar explicitamente uma tarefa a um recurso de computação específico antes da execução.

  • Kernel: Componente do ambiente Notebook que analisa e executa o código escrito em uma célula. Determina qual linguagem de programação a célula aceita.

    • Kernel Python:

      • Funcionalidade: Executa código escrito em Python. Suporta lógicas complexas, como processamento de dados, implementação de algoritmos e agendamento de tarefas.

      • Modo de interação: No kernel Python, utilize Magic Command (como %sql) ou bibliotecas SDK para enviar tarefas de computação encapsuladas (como instruções SQL) a um recurso de computação específico, obtendo os resultados para análises posteriores.

    • Kernel SQL:

      • Funcionalidade: Interpreta e envia diretamente consultas SQL.

      • Modo de interação: Encaminha instruções SQL diretamente ao recurso de computação back-end (como EMR Spark SQL ou MaxCompute SQL Session) especificado para a célula.

    • Kernel Markdown:

      • Funcionalidade: Renderiza documentos rich text em formato Markdown. Não executa nenhuma lógica de computação.

Resumo:

  • O kernel atua como o interpretador de linguagem front-end, definindo o que você escreve (Python ou SQL).

  • O recurso de computação funciona como o motor de execução back-end, determinando onde o código roda (no MaxCompute ou Spark).

Tipos de diretório e casos de uso

O local onde o Notebook é criado determina seu modelo de colaboração, permissões e processo de implantação.

Tipo de diretório

Caso de uso

Colaboração e implantação

Diretórios do workspace

Colaboração em equipe e tarefas periódicas de produção. Os nós neste diretório são compartilhados em todo o workspace e seguem o processo padrão de desenvolvimento, envio e implantação.

Oferece suporte à colaboração multiusuário. Os nós precisam ser implantados no ambiente de produção antes de poderem ser agendados periodicamente.

Diretórios pessoais

Desenvolvimento e depuração individuais. Invisível para outros membros do workspace, destina-se a scripts pessoais e tarefas temporárias.

Visível apenas para você. Para agendar tarefas, primeiro envie os nós para os diretórios do workspace e depois implante-os.

Desenvolva e depure Notebooks

Importante
  • Por padrão, o Data Studio não salva automaticamente. Salve seu trabalho manualmente com frequência para evitar perda de código. Também é possível ativar o salvamento automático no editor do Data Studio acessando Settings > Files: Auto Save.

  • Se o Notebook parar de responder ou travar durante a execução, clique em Restart na barra de ferramentas para reiniciar o kernel do Notebook.

Gerenciamento de células

  • Adicionar uma célula: Passe o mouse sobre a borda superior ou inferior de uma célula existente e clique no botão + SQL que aparecer. Alternativamente, use os botões na barra de ferramentas superior.

  • Alterar o tipo da célula: Clique no rótulo de tipo no canto inferior direito da célula (por exemplo, Python) e escolha um novo tipo no menu, como SQL ou Markdown. O código existente é preservado ao trocar de tipo, mas deve ser atualizado manualmente para corresponder à nova linguagem.

  • Mover uma célula: Passe o mouse sobre a barra vertical azul à esquerda da célula, mantenha pressionado e arraste para reordenar.

  • Executar uma célula:

    • Executar uma única célula: Clique no botão Run à esquerda da célula.

    • Executar todas as células: Clique no botão Run All na barra de ferramentas do Notebook.

Passagem de variáveis

Passar variáveis Python para SQL

Variáveis definidas em uma célula Python podem ser referenciadas diretamente em células SQL subsequentes usando o formato ${variable_name}.

Exemplo:

  1. Célula Python

    table_name = "dwd_user_info_d"
    limit_num = 10
  2. Célula SQL

    SELECT * FROM ${table_name} LIMIT ${limit_num};

Passar resultados SQL para Python

Quando uma célula SQL executa uma consulta SELECT, o resultado gera automaticamente uma variável DataFrame utilizável nas células Python seguintes.

Importante

Se houver múltiplas instruções SQL, apenas o resultado da última instrução será armazenado na variável DataFrame.

  • Nomenclatura da variável: O nome padrão começa com df_. Clique no nome da variável no canto inferior esquerdo da célula SQL para renomeá-la.

  • Tipo da variável:

    Se houver suporte para vários tipos de variáveis, clique em DataFrame no canto inferior esquerdo para alternar o tipo.
    • Para MaxCompute SQL, há suporte para objetos Pandas DataFrame e MaxCompute MaxFrame.

    • Para ADB Spark SQL, há suporte para objetos Pandas DataFrame e PySpark MaxFrame.

    • Para outros tipos de SQL, o objeto gerado é um Pandas DataFrame.

Exemplo:

image

Visualizar linhagem (beta)

Nota

Regiões suportadas: China (Hangzhou), China (Shanghai), China (Beijing), China (Zhangjiakou), China (Ulanqab), China (Shenzhen), China (Chengdu) e China (Hong Kong).

Quando o código do Notebook se torna complexo, envolvendo leitura e escrita em múltiplas tabelas ou arquivos, compreender o fluxo de dados pode ser difícil. O recurso de análise de linhagem analisa estaticamente o código Python nos Notebooks (com suporte ao framework MaxFrame) para ajudar a rastrear rapidamente a origem e o destino dos dados.

Procedimento

Na barra de ferramentas do Notebook, clique no botão Lineage. O sistema analisa automaticamente o código de todas as células do Notebook atual e exibe um gráfico de linhagem abaixo.

Importante
  • A análise de linhagem baseia-se na análise estática do código do Notebook. Ela reflete a lógica de dados descrita no código, e não o fluxo real após a execução da tarefa. Portanto, é possível visualizar a linhagem sem executar o código.

  • Atualmente, este recurso destina-se a desenvolvimento e depuração. A linhagem analisada não é relatada automaticamente ao Data Map.

  • Ao modificar o código, clique novamente em Lineage ou Refresh para obter o gráfico de linhagem mais recente.

Cenários suportados

O recurso de análise de linhagem suporta atualmente apenas os seguintes cenários:

  • Linhagem entre tabelas do MaxCompute: Ao ler dados de uma ou mais tabelas do MaxCompute, processá-los com MaxFrame e gravar os resultados em outra tabela do MaxCompute, o sistema exibe claramente as relações de processamento entre as tabelas.

    Por exemplo, é possível unir uma tabela de pedidos (ods_order) com uma tabela de dimensão de lojas (dim_shop) e gravar os resultados em uma tabela ampla de pedidos (dwd_order).

  • Linhagem entre tabelas do MaxCompute e dados externos: Quando o código processa interações entre tabelas do MaxCompute e dados externos (como conjuntos de dados associados ou arquivos OSS), a análise de linhagem mostra claramente as relações entre eles.

    • Via conjuntos de dados associados: Quando o código acessa um conjunto de dados associado pelo caminho de montagem de um ambiente de desenvolvimento pessoal (como /mnt/data/) e troca dados com tabelas do MaxCompute (por exemplo, lendo de um conjunto de dados e gravando em uma tabela, ou vice-versa), o gráfico de linhagem mostra o pipeline completo de dados entre ambos.

    • Via caminhos OSS: Mesmo sem associar um conjunto de dados, a análise de linhagem identifica o fluxo bidirecional de dados entre caminhos de armazenamento OSS e tabelas do MaxCompute quando o código lê ou grava diretamente em arquivos através de caminhos OSS.

      Nota

      Se o caminho OSS estiver registrado como um conjunto de dados no Data Map, o gráfico de linhagem o exibirá automaticamente como um nó de conjunto de dados, facilitando o gerenciamento dos seus ativos de dados.

Programação assistida pelo Copilot

O DataWorks Copilot é um assistente inteligente de programação integrado que ajuda a gerar e explicar códigos.

Como invocar o Copilot:

  • Clique no ícone Copilot image no canto superior esquerdo da célula selecionada.

  • Clique com o botão direito dentro de uma célula SQL e selecione Copilot.

  • Use o atalho de teclado Cmd+I (Mac) ou Ctrl+I (Windows).

Agende e implante Notebooks

Para executar um Notebook em um cronograma periódico, configure as definições de agendamento e implante-o no ambiente de produção.

Etapa 1: Configurar parâmetros de agendamento (agendamento parametrizado)

Caso precise que os parâmetros do Notebook mudem dinamicamente a cada execução agendada (por exemplo, processando dados de partições diferentes diariamente), configure o agendamento parametrizado.

  1. Marcar uma célula de parâmetros: Na célula Python que contém as definições principais de parâmetros, clique no menu ... no canto superior direito e selecione Mark Cell as Parameters. Uma tag parameters será adicionada à célula, indicando que ela é o ponto de entrada de parâmetros para a tarefa agendada.

    image

  2. Configurar parâmetros de agendamento:

    1. No painel lateral direito do Notebook, clique em Schedule Settings.

    2. Na seção Scheduling Parameters, atribua valores às variáveis definidas no código (como var).

      image

Quando o sistema de agendamento executar a tarefa automaticamente, o valor real do parâmetro var no código será substituído dinamicamente pelo valor configurado nos parâmetros de agendamento.

Etapa 2: Configurar o ambiente de execução e recursos

  1. Configurar uma imagem: Nas configurações de agendamento, selecione uma imagem que contenha todas as dependências necessárias ao Notebook. Isso é fundamental para garantir a execução bem-sucedida no ambiente de produção.

    Importante

    Caso tenha instalado pacotes Python via pip install ou métodos similares na instância de ambiente de desenvolvimento pessoal, será necessário criar uma imagem do DataWorks a partir do seu ambiente de desenvolvimento pessoal e selecionar essa imagem personalizada nas configurações de agendamento. Isso assegura que o ambiente de produção tenha as mesmas dependências do ambiente de desenvolvimento.

  2. Configurar um grupo de recursos: Selecione o grupo de recursos para execução da tarefa. Para grupos de recursos serverless, recomenda-se configurar no máximo 16CU para evitar falhas na inicialização da tarefa devido a recursos insuficientes. O máximo suportado para uma única tarefa é 64CU.

  3. Configurar uma função associada: Para controle de acesso granular, associe uma função RAM específica ao nó para que ele seja executado sob essa identidade. Para mais informações, consulte Configurar uma função associada para um nó.

Etapa 3: Implantar o nó

Apenas nós em diretórios do workspace podem ser implantados e agendados periodicamente.

  • Para Notebooks em diretórios do workspace: Após concluir a configuração, clique em Deploy na barra de ferramentas superior.

  • Para Notebooks em diretórios pessoais: Clique primeiro em Save para Submit to Workspace Directory e, em seguida, implante o nó.

Após a implantação bem-sucedida, monitore e gerencie suas tarefas de Notebook na página Scheduled Tasks no Operation Center.

Perguntas frequentes

  • P: Por que meu código acessa a Internet durante o desenvolvimento, mas falha nas execuções agendadas?

    R: Isso ocorre porque os ambientes de desenvolvimento e produção possuem políticas de rede diferentes.

    • Ambiente de desenvolvimento (ambiente de desenvolvimento pessoal): Para facilitar a depuração, quando nenhuma VPC está configurada, a instância de ambiente de desenvolvimento pessoal fornece acesso limitado à Internet por padrão, permitindo instalar pacotes temporariamente ou chamar APIs.

    • Ambiente de produção (tarefas agendadas): Por questões de segurança e estabilidade, as tarefas executam em uma VPC por padrão e não acessam diretamente a Internet. A configuração de rede depende do grupo de recursos selecionado em Schedule Settings. Se a VPC do grupo de recursos não tiver um NAT Gateway de Internet configurado, o acesso à Internet ficará indisponível.

    • Solução: Garanta que a instância de ambiente de desenvolvimento pessoal e o grupo de recursos serverless estejam configurados com a mesma VPC.

  • P: Por que meu código roda com sucesso no ambiente de desenvolvimento, mas não encontra pacotes de terceiros nas execuções agendadas?

    R: Certifique-se de que todos os pacotes de dependência (como bibliotecas Python) foram previamente incluídos em uma imagem personalizada e que essa imagem foi especificada em Schedule Settings. Para mais detalhes, consulte Criar uma imagem do DataWorks a partir do seu ambiente de desenvolvimento pessoal.

  • P: Como altero a versão do kernel Python?

    R: Instale manualmente a versão desejada do Python no terminal image do ambiente de desenvolvimento pessoal e, em seguida, clique em image no lado direito da barra de ferramentas do Notebook para alternar para outra versão do kernel Python. Não recomendamos instalar kernels Python adicionais, pois novas versões podem não ter as dependências exigidas pelas células SQL, impedindo seu funcionamento adequado.

Referências