Escolhendo entre o Python e o PySpark Notebooks no Microsoft Fabric

Com a introdução de notebooks Python leves no Microsoft Fabric, os clientes agora têm duas opções robustas para criar e dimensionar fluxos de trabalho de análise: Notebooks Python e Notebooks PySpark. Embora ambos forneçam uma interface familiar do Notebook, elas diferem significativamente na forma como gerenciam recursos de computação, escalabilidade e custo-eficiência.

O Fabric simplifica o processo de seleção ou transição entre tipos de notebook, permitindo que os profissionais de dados otimizem para agilidade, desempenho e orçamento. Este guia foi projetado para ajudá-lo a avaliar qual Bloco de Anotações é mais adequado para suas necessidades atuais e como evoluir sua abordagem à medida que suas cargas de trabalho aumentam em complexidade e escala. O 'pool inicial' fornece um contêiner de computação pré-aquecido que permite inicialização quase instantânea para notebooks Python ou PySpark.

Matriz de Decisão Rápida – Escolher Rápido

Melhor para seleção rápida com base no tipo de carga de trabalho.

Use essa referência de alto nível para determinar rapidamente o tipo de bloco de anotações mais adequado para padrões comuns de carga de trabalho. Esta tabela é melhor para análises de arquitetura e planejamento em estágio inicial.

Cenário Notebook Recomendado
Inclui bibliotecas pré-instaladas do DuckDB e polars Blocos de Anotações do Python
Dados pequenos a médios (cabe na memória) Notebooks Python (ou PySpark em um cluster Spark de nó único)
Exploração rápida e protótipo Notebooks Python (ou PySpark em um cluster Spark de nó único)
Conjuntos de dados grandes (10 GB+) excedendo a memória Cadernos do PySpark
Fluxos de trabalho complexos de dados ou pipelines de ETL Cadernos do PySpark
Execução paralela ou de alta concorrência Cadernos do PySpark
Precisa de APIs nativas do Spark (MLlib, SQL, Streaming) Cadernos do PySpark

Resumo rápido de cenários-chave – Comparar profundamente

Use essa tabela de comparação estruturada para entender as compensações arquitetônicas e operacionais entre tipos de notebook. Mais adequado para avaliações de engenharia ou planejamento de implementação.

Execução & Desempenho

Cenário Notebooks Python (VM de 2 núcleos) Blocos de Anotações do PySpark (Computação do Spark)
Hora de Inicialização O pool inicial interno é inicializado em aproximadamente 5 segundos, enquanto o pool sob demanda leva cerca de 3 minutos. O tempo de inicialização varia de ~5 segundos (pool inicial) até vários minutos (clusters Spark sob demanda).
Transformações rápidas e chamadas à API Ideal para conjuntos de dados de tamanho pequeno a médio (até 1 GB) Otimizado para grandes conjuntos de dados usando a execução vetorizada.
Cargas de trabalho moderadas Não otimizado para tamanhos de dados próximos à saturação de memória Eficiente no dimensionamento por meio da computação distribuída.
Manipulação de conjuntos de dados grandes Limitado por memória de nó único. Pode ter dificuldades com o dimensionamento. O processamento distribuído garante a manipulação escalonável de cargas de trabalho de vários GB para TB.
Execução do High-Concurrency Paralelismo manual no estilo FIFO por caderno Simultaneidade gerenciada pelo sistema com suporte para execução paralela.
Personalização e dimensionamento de recursos Computação fixa (VM de 2 núcleos); não é dimensionado automaticamente. Os usuários podem escalar manualmente usando %%config dentro do notebook. Alocação de recursos flexível; dá suporte ao dimensionamento automático e configurações personalizadas do Spark.

Fluxo de trabalho e orquestração

Cenário Notebooks Python (VM de 2 núcleos) Blocos de Anotações do PySpark (Computação do Spark)
Orquestração de API Eficaz para fluxos de orquestração e controle leves, especialmente integrações baseadas em REST/gRPC Menos ideal para tarefas básicas de orquestração devido a uma inicialização mais longa e sobrecarga distribuída.
DAGs de ETL complexos Limitado à execução de tarefas sequenciais (FIFO) em um único nó, sem suporte para processamento paralelo. Dá suporte à execução simultânea de tarefas em DAGs usando o agendamento de FlFO ou FAlR, permitindo o processamento paralelo eficiente para fluxos de trabalho complexos de ETL.

Suporte à Plataforma & Biblioteca

Cenário Notebooks Python (VM de 2 núcleos) Blocos de Anotações do PySpark (Computação do Spark)
Acesso à biblioteca Suporte forte para bibliotecas Python em vários ambientes de execução; no entanto, o acesso limitado às bibliotecas específicas do Spark pode exigir integração manual. Dá suporte total a MLlib, Spark SQL, PySpark e Spark Streaming.
Tratamento do Delta Lake O runtime do Python Notebook vem com as bibliotecas deltas e duckdb pré-instaladas, permitindo a leitura e gravação de dados de Delta Lake. No entanto, alguns recursos do Delta Lake ainda podem não ter suporte. Totalmente suportado com compatibilidade nativa.

Prontidão para Produção & Prontidão Empresarial

Cenário Notebooks Python (VM de 2 núcleos) Blocos de Anotações do PySpark (Computação do Spark)
Gerenciamento de Produção Recursos de produção limitados; Não dá suporte a variáveis de ambiente. Suporte para fluxos de trabalho de produção com variáveis de ambiente, gerenciamento de biblioteca por meio de itens de ambiente e implantação baseada em item.

Considerações de custo

Cenário Notebooks Python (VM de 2 núcleos) Blocos de Anotações do PySpark (Computação do Spark)
Perfil de Custo Menor custo inicial (mínimo de 2 vCores); mais adequado para cargas de trabalho leves e ad hoc. Custo inicial mais alto (mínimo de 4 vCores); projetado para cargas de trabalho escalonáveis de nível empresarial. O dimensionamento automático pode reduzir os custos, potencialmente resultando em um TCO (custo total de propriedade) menor.

Quando usar Notebooks Python vs. PySpark

O Fabric Notebooks oferece flexibilidade para uma ampla gama de usuários e cargas de trabalho. Esta seção ajuda você a avaliar qual tipo de bloco de anotações se alinha melhor às suas necessidades atuais e futuras.

Use o Python Notebooks para iteração rápida, análise econômica e desenvolvimento interativo. Eles são ideais para conjuntos de dados menores e incluem suporte nativo para bibliotecas como DuckDB e Polars.

Use Notebooks PySpark para computação distribuída, fluxos de trabalho ETL de nível de produção ou em cenários em que alta simultaneidade e APIs nativas do Spark são essenciais.

Escolha Blocos de Anotações do Python quando:

  • Você precisa de uma inicialização rápida (normalmente em segundos) em um contêiner leve de 2 núcleos.
  • Se minimizar o custo de computação for uma prioridade para análise interativa ou microempregos agendados.
  • Você deseja acesso imediato a bibliotecas instaláveis por pip e DuckDB e Polars pré-instalados.
  • Você precisa testar em diferentes versões de runtime do Python.
  • Seus dados se ajustam confortavelmente em um único nó de memória.

Escolha Blocos de Anotações do PySpark quando:

  • Suas cargas de trabalho excedem os limites de memória ou computação de um único nó.
  • Você precisa de pools com alta simultaneidade para executar tarefas paralelamente em Notebooks.
  • Você está orquestrando pipelines ETL complexos com agendamento FAIR ou FIFO.
  • Você conta com APIs nativas do Spark, como MLlib, Spark SQL ou Spark Streaming.
  • Você precisa de recursos de nível de produção, como variáveis de ambiente e gerenciamento de biblioteca baseado em item.

Principais Diferenças em um relance - referenciar concisamente

Consulte o Glossário no final deste guia para obter definições de termos como VORDER, NEE e Items-Based Library Management.

Esta seção fornece uma referência rápida para as diferenças técnicas e arquitetônicas fundamentais entre o Python e o PySpark Notebooks.

Categoria Blocos de Anotações do Python Cadernos do PySpark
Tempo de Execução da Computação Contêiner leve (VM de 2 núcleos) Cluster Spark (conjunto de nó único ou alta concorrência)
Hora da inicialização Inicialização instantânea (segundos por meio do pool inicial) A inicialização do sistema varia de aproximadamente 5 segundos (por meio de um pool de inicialização) a vários minutos (ao usar clusters Spark sob demanda).
Perfil de Custo Custo mais baixo; ideal para tarefas curtas e protótipos Custo mais alto; adequado para cargas de trabalho escalonáveis e de execução longa
Controle de versão do Python/Spark Várias versões do Python disponíveis Vinculado a uma versão específica do runtime do Spark
Bibliotecas personalizadas pip install + pastas de recursos pip install + diretórios de recursos + elemento de ambientes
Funcionalidades do Fabric Spark Acesso limitado aos recursos do mecanismo Spark Acesso completo: NEE, Autotune, VORDER, Vegas Cache
Compatibilidade do Delta Lake Parcialmente compatível; possíveis problemas de desempenho Totalmente suportado e otimizado

Evoluindo sua carga de trabalho: do Python para o PySpark

Os Blocos de Anotações do Fabric foram projetados para crescer com a complexidade da carga de trabalho. Esta seção descreve como você pode dimensionar sua estratégia do Notebook de exploração simples para processamento de dados distribuídos.

Etapa Notebook Recomendado Condição de gatilho
Iniciar Notebooks Python (2 núcleos) Cargas de trabalho pequenas e interativas
Ampliar Notebooks do Python (alternar manualmente para uma VM maior) Aproximando-se dos limites de memória ou CPU
Expansão horizontal Blocos de Anotações do PySpark (alternar manualmente para o pool do Spark) Necessidade de computação distribuída ou execução paralela

Dica

À medida que você faz a transição para o PySpark, verifique se o código usa a sintaxe compatível com Spark. Valide suas cargas de trabalho no ambiente spark antes de implantar em produção.

Resumo

O Python Notebooks dá suporte a operações de kernel, como interromper e reiniciar o kernel, o que acelera o desenvolvimento interativo. Elas são ideais para a análise rápida e econômica de conjuntos de dados de pequeno a médio porte, e se destacam em prototipagem, experimentação e tarefas leves agendadas.

À medida que o volume de dados e a complexidade aumentam, os Notebooks PySpark oferecem o poder de computação distribuído e os recursos de nível de produção necessários para análise corporativa em larga escala. Escolher o Bloco de Anotações correto é um processo em evolução. Comece com a opção mais simples que atenda às suas necessidades atuais e dimensione à medida que o cenário de dados cresce.

Consulte o Glossário na página final para obter explicações sobre termos como NEE, VORDER e Vegas Cache.

Glossário de termos

  • Item-Based Gerenciamento de Biblioteca: Gerencia pacotes versionados e bibliotecas de produção dentro do item Ambiente.
  • Compatibilidade do Delta Lake: suporte entre ambientes para tabelas Delta; totalmente compatível com o PySpark.
  • Agendamento JUSTO: uma política de agendamento que aloca recursos de forma justa entre trabalhos simultâneos do Spark.
  • Agendamento FIFO: ordem de execução de primeiroFirst-Out para agendamento de trabalho.
  • NEE (Mecanismo de Execução Nativa): um mecanismo de consulta otimizado exclusivo para o Fabric Spark.
  • Pool do Spark: um recurso de computação compartilhado para executar cargas de trabalho distribuídas do Spark.
  • VORDER: Otimização de estrutura para caminhos de execução de consultas vetorizados.
  • Aceleração vetorizada: processa dados em lotes usando operações de vetor para um desempenho mais rápido.
  • Cache de Vegas: um cache na memória que acelera o acesso repetido aos dados do Spark.