O DataWorks Notebook oferece um ambiente interativo que combina células Python, SQL e Markdown. Com ele, você se conecta a engines de computação como MaxCompute, EMR e AnalyticDB para processar dados, realizar análises exploratórias, criar visualizações e desenvolver modelos.
Início rápido: Execute seu primeiro notebook em 5 minutos
Crie um notebook, passe um parâmetro do Python para o SQL e consulte uma tabela do MaxCompute.
Pré-requisitos
O Data Studio deve estar ativado no seu workspace.
É necessário ter um grupo de recursos serverless.
-
Uma instância de ambiente de desenvolvimento pessoal é obrigatória para notebooks com células Python.
Caso ainda não tenha criado uma: Create a personal development environment instance .
Procedimento:
-
Crie um nó de notebook
Acesse o Data Studio. Na seção DataStudio do Project Directory, crie um novo nó de notebook.
Insira um nome para o notebook, como
hello_notebook, e envie-o.
-
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.
-
Escreva uma célula Python para definir um parâmetro
Defina uma variável de cidade para a consulta SQL.
# Define a variable for the subsequent SQL query city = 'Beijing' print(f"Defined city variable city = {city}") -
Escreva uma célula SQL para consultar dados
Abaixo da primeira célula, adicione uma nova célula SQL.
No canto inferior direito da célula, altere o tipo de SQL para
MaxCompute SQL.-
Insira o seguinte SQL. Ele referencia a variável
cityda célula Python usando a sintaxe${city}.-- Query data using the variable defined in Python SELECT '${city}' AS city;
-
Execute as células e visualize os resultados
Clique no botão Run All na barra de ferramentas do notebook.
-
Acompanhe a execução de cada célula:
A célula Python exibe
Defined city variable city = Beijing.Uma tabela com o resultado da consulta aparece abaixo da célula SQL.
Você criou e executou um notebook com interação entre Python e SQL.
Conceitos fundamentais
Compreenda estes conceitos para garantir que o notebook funcione de forma consistente nos ambientes de desenvolvimento e produção.
Modos de notebook
O DataWorks Notebook opera em dois modos:
Modo SQL e Markdown (padrão): Suporta apenas células SQL e Markdown para consulta de dados e documentação. Requer somente um grupo de recursos serverless, sem necessidade de instância de ambiente de desenvolvimento pessoal. O SQL Kernel aparece no canto superior direito.
Modo Completo (Python + SQL + Markdown): Aceita células Python, SQL e Markdown para processamento, análise e visualização de dados. A execução de código Python exige uma instância de ambiente de desenvolvimento pessoal. Após selecioná-la, a versão do kernel surge no canto superior direito, conforme ilustrado em
(versão apenas para referência).
Ambiente de desenvolvimento versus ambiente de produção
Item | Ambiente de desenvolvimento | Ambiente de produção |
Ambiente de execução | Instância de ambiente de desenvolvimento pessoal | O Resource Group e a Image definidos na configuração de scheduling |
Principais diferenças | Notebooks com células Python utilizam uma instância de desenvolvimento dedicada, onde é possível instalar livremente bibliotecas Python para depuração. Para notebooks compostos apenas por células SQL e Markdown, basta um grupo de recursos serverless. | As tarefas são executadas no grupo de recursos definido na configuração de agendamento, independentemente de serem acionadas periodicamente pelo Operation Center ou manualmente pelo Data Studio. O ambiente (bibliotecas, acesso à rede etc.) depende da imagem e do grupo de recursos escolhidos. |
Garantia de consistência | Caso tenha instalado pacotes Python via Importante Conectividade de rede: Um ambiente de desenvolvimento pessoal não vinculado a uma VPC tem acesso limitado à rede pública por padrão. O acesso à rede de um notebook implantado depende do seu grupo de recursos. Vincule seu ambiente de desenvolvimento pessoal ao mesmo grupo de recursos usado no agendamento para manter a consistência. | |
Recursos de computação e kernels
Dois conceitos determinam a execução do código: recurso de computação e kernel.
-
Recurso de computação: Engine de backend responsável por executar e processar tarefas de dados, definindo o ambiente de execução e o poder computacional.
Definição: Uma instância de service de computação independente e agendável, como um projeto MaxCompute ou um cluster EMR Serverless Spark.
Função: Fornece o poder de processamento real para consultas SQL, jobs Spark e outras tarefas.
Seleção: Cada tarefa deve ser vinculada a um recurso de computação específico.
-
Kernel: Analisa e executa o código dentro de uma célula, determinando a linguagem de programação utilizada.
-
Kernel Python:
Função: Executa código Python, suportando lógicas complexas para processamento de dados, implementação de algoritmos e orquestração de tarefas.
Modelo de interação: Dentro do kernel Python, use
Magic Commands(como%sql) ou SDKs para submeter uma tarefa computacional (como uma consulta SQL) a um recurso de computação específico. Em seguida, recupere os resultados para análises adicionais.
-
Kernel SQL:
Função: Interpreta e submete diretamente consultas escritas em SQL.
Modelo de interação: O kernel SQL encaminha instruções SQL diretamente ao recurso de computação de backend designado (por exemplo, uma sessão EMR Spark SQL ou MaxCompute SQL) para execução.
-
Kernel Markdown:
Função: Renderiza rich text formatado em Markdown. Não executa nenhuma lógica computacional.
-
Resumo da relação:
O kernel atua como o interpretador de linguagem de frontend, definindo "o que você escreve" (Python ou SQL).
O recurso de computação funciona como a engine de execução de backend, definindo "onde o código roda" (no MaxCompute ou Spark).
Tipos de diretório e casos de uso
O local onde você cria o notebook define seu escopo de colaboração, permissões e opções de implantação.
|
Tipo de diretório |
Caso de uso |
Colaboração e implantação |
|
Workspace Directories |
Colaboração em equipe e tarefas de produção agendadas. Os nós são compartilhados dentro do workspace e seguem um fluxo de trabalho de desenvolvimento, commit e implantação. |
Colaboração multiusuário. Os nós precisam ser implantados em produção para execução agendada. |
|
Personal Directory |
Desenvolvimento e depuração individuais. Privado, destinado a scripts pessoais e tarefas temporárias. |
Visível apenas para você. Para agendar um nó, faça primeiro o commit nos Workspace Directories e depois implante-o. |
Desenvolva e depure um notebook
O Data Studio não salva automaticamente por padrão. Salve manualmente para evitar perda de código ou ative o salvamento automático em Setup > Files: Auto Save.
Se o notebook ficar lento ou não responder, clique no botão Restart na barra de ferramentas superior para reiniciar o kernel.
Gerenciamento de células
Adicionar uma célula: Passe o mouse sobre a borda superior ou inferior de uma célula e clique em um botão como + SQL, ou utilize os botões da barra de ferramentas.
Alterar o tipo da célula: Clique no identificador de tipo (ex.:
Python) no canto inferior direito e escolha um novo tipo, comoSQLouMarkdown. O código é preservado, mas pode exigir ajustes.Mover uma célula: Passe o mouse sobre a linha vertical azul à esquerda da célula, clique e arraste para reordená-la.
-
Executar células:
Executar uma única célula: Clique no ícone Run à esquerda da célula.
Executar todas as células: Clique no botão Run All na barra de ferramentas superior do notebook.
Passagem de parâmetros
Passe variáveis Python para SQL
Referencie variáveis Python em células SQL usando o formato ${variable_name}.
Exemplo:
-
Célula Python
table_name = "dwd_user_info_d" limit_num = 10 -
Célula SQL
SELECT * FROM ${table_name} LIMIT ${limit_num};
Passe resultados SQL para Python
Quando uma célula SQL executa uma consulta SELECT, o resultado é convertido automaticamente em uma variável DataFrame, disponível para uso nas células Python seguintes.
Se uma célula contiver múltiplas instruções SQL, apenas o resultado da última instrução será salvo na variável DataFrame.
Nomeação de variáveis: 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 de variável:
Se houver suporte a múltiplos tipos de variáveis, alterne o tipo clicando no nome do DataFrame no canto inferior esquerdo.
Para MaxCompute SQL, há suporte tanto para objetos
Pandas DataFramequantoMaxCompute MaxFrame.Para ADB Spark SQL, ambos os objetos
Pandas DataFrameePySpark DataFramesão suportados.Para outros tipos de SQL, um objeto
Pandas DataFrameé gerado.
Visualize a linhagem de dados (Beta)
Regiões suportadas: China (Hangzhou), China (Shanghai), China (Beijing), China (Zhangjiakou), China (Ulanqab), China (Shenzhen), China (Chengdu) e China (Hong Kong).
O recurso de linhagem de dados esclarece o fluxo de informações por meio da análise estática de código Python (com suporte ao framework MaxFrame) no notebook.
Procedimento
Na barra de ferramentas superior do notebook, clique no botão Lineage. O sistema analisa automaticamente o código de todas as células do notebook atual e exibe o gráfico de linhagem de dados no editor.
A linhagem de dados é um recurso Beta que suporta apenas código Python/MaxFrame. O painel de linhagem mostra o fluxo de dados entre tabelas de origem e destino como um grafo direcionado.
A análise de linhagem examina o código estático do seu notebook. Ela reflete a lógica de dados definida no código, e não o fluxo real de dados de uma execução de tarefa. É possível visualizar a linhagem sem executar o código.
Atualmente, este recurso destina-se a desenvolvimento e depuração. O sistema não reporta automaticamente as relações de linhagem analisadas ao Data Map.
Ao modificar o código, clique novamente em Lineage ou Refresh para gerar um gráfico de linhagem atualizado.
Cenários suportados
A análise de linhagem de dados suporta apenas os seguintes cenários:
-
Linhagem entre tabelas MaxCompute: Ao ler dados de uma ou mais tabelas MaxCompute, processá-los com MaxFrame e gravar o resultado em outra tabela MaxCompute, o gráfico de linhagem exibe as relações de processamento entre as tabelas.
Por exemplo, ao juntar uma tabela de pedidos (ods_order) com uma tabela de dimensão de lojas (dim_shop) e gravar o resultado em uma tabela ampla de pedidos (dwd_order).
-
Linhagem entre tabelas MaxCompute e dados externos: Quando seu código interage tanto com fontes de dados externas (como datasets vinculados ou arquivos OSS) quanto com tabelas MaxCompute, o recurso de linhagem visualiza essas relações.
-
Via dataset vinculado: Se você acessar um dataset vinculado pelo caminho de montagem do seu ambiente de desenvolvimento pessoal (ex.:
/mnt/data/) e trocar dados com uma tabela MaxCompute (lendo do dataset para a tabela ou vice-versa), o gráfico de linhagem mostra o fluxo completo de dados. -
Via caminho OSS: Mesmo sem um dataset vinculado, se você ler ou gravar arquivos diretamente usando um caminho OSS no seu código, a análise de linhagem identifica o fluxo bidirecional de dados entre o caminho OSS e a tabela MaxCompute.
NotaSe esse caminho OSS também estiver registrado como dataset no Data Map, o gráfico de linhagem o exibirá automaticamente como um nó de dataset, facilitando a gestão de ativos.
-
Programação assistida pelo Copilot
O DataWorks Copilot é um assistente de programação com IA integrado que ajuda a gerar e explicar códigos.
Como invocar:
Clique no ícone Copilot
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(macOS) ouCtrl+I(Windows).
Agende e implante um notebook
Para executar um notebook de forma agendada, configure suas propriedades de agendamento e implante-o no ambiente de produção.
1. Configure parâmetros de agendamento (agendamento parametrizado)
Configure o agendamento parametrizado para que os parâmetros do notebook mudem dinamicamente a cada execução. Por exemplo, processe uma partição diferente a cada dia.
Marque a célula de parâmetros: Na célula Python com definições de parâmetros, clique em
...no canto superior direito e selecione Mark Cell as Parameters. Uma tagparametersmarca a célula como ponto de entrada de parâmetros.-
Configure os parâmetros de agendamento:
No painel à direita do notebook, clique em Scheduling Settings.
-
Na área Scheduling Parameters, atribua um valor às variáveis definidas no seu código, como
var.Por exemplo, defina o valor do parâmetro como
$[yyyymmdd]. Durante a execução do agendamento, ele será substituído dinamicamente pela data real.
Quando o sistema de agendamento executa automaticamente uma tarefa, o valor real do parâmetro var no código é substituído dinamicamente pelo valor configurado nos parâmetros de agendamento.
2. Configure o ambiente de execução e recursos
-
Configure uma imagem: Na configuração de Scheduling, selecione uma imagem com todas as dependências exigidas pelo notebook. Isso garante a execução bem-sucedida em produção.
ImportanteCaso tenha instalado pacotes Python usando
pip install, você deve crie uma imagem do DataWorks a partir do ambiente de desenvolvimento pessoal para garantir que a produção tenha as mesmas dependências. Selecione essa imagem na configuração de scheduling. Resource Group: Selecione o grupo de recursos para a tarefa. Para grupos de recursos serverless, configure no máximo
16CUpara evitar falhas de inicialização. Máximo por tarefa:64CU.Configure uma função associada: Associe uma função RAM ao nó para controle granular de permissões. Associate a role: Securely access other cloud resources.
3. Implante o nó
Apenas nós nos Workspace Directories podem ser implantados e agendados.
Para notebooks nos Workspace Directories: Após concluir a configuração, clique no botão Publish na barra de ferramentas superior.
Para notebooks no seu Personal Directory: Primeiro clique no botão Save e depois envie para o projeto antes de implantá-lo.
Após a implantação, monitore sua tarefa de notebook na página Auto Triggered Nodes no Operation Center.
Perguntas frequentes
-
P: Por que meu código acessa a rede pública durante o desenvolvimento, mas falha em uma execução agendada?
R: Os ambientes de desenvolvimento e produção utilizam políticas de rede diferentes.
Ambiente de desenvolvimento (ambiente de desenvolvimento pessoal): Um ambiente de desenvolvimento pessoal não vinculado a uma Virtual Private Cloud (VPC) tem acesso limitado à rede pública por padrão, mas permite instalar pacotes temporariamente ou chamar APIs.
Ambiente de produção (tarefa agendada): Por questões de segurança e estabilidade, tarefas agendadas rodam em uma VPC por padrão e não acessam diretamente a rede pública. A configuração de rede da tarefa depende do grupo de recursos selecionado nas Scheduling Settings. Se a VPC desse grupo de recursos não tiver um NAT gateway configurado, a tarefa não conseguirá acessar a rede pública.
Solução: Configure seu ambiente de desenvolvimento pessoal e o grupo de recursos serverless para usarem a mesma VPC.
-
P: Por que meu código roda com sucesso no ambiente de desenvolvimento, mas não encontra um pacote de terceiros em uma execução agendada?
R: Empacote todas as dependências em uma imagem personalizada e selecione-a na configuração das Scheduling Settings. Crie uma imagem do DataWorks a partir de um ambiente de desenvolvimento pessoal.
-
P: Como alterar a versão do kernel Python?
R: Instale uma versão diferente do Python no terminal
do seu ambiente de desenvolvimento pessoal. Em seguida, clique no botão
no lado direito da barra de ferramentas do notebook para alternar as versões do kernel. Não recomendamos instalar kernels Python adicionais, pois novas versões podem não ter as dependências necessárias pelas células SQL.