Spark Optimization Guide in Microsoft Fabric

In the universe of Business Intelligence moderno, lidar com grandes volumes de dados de forma eficiente é um desafio constante. Neste contexto, o Microsoft Fabric surge como uma plataforma unificada que simplifica a arquitetura de dados.

Além disso, a sua integração com o Apache Spark is at the heart of its large-scale data processing capability.

Neste artigo, vamos explorar como esta poderosa combinação funciona. Para isso, começaremos por compreender o papel do Spark no processamento distribuído e as suas principais vantagens.

Em seguida, mostraremos como configurar e melhorar a otimização Spark no Microsoft Fabric, através de diferentes configurações de clusters.

1. Overview of Microsoft Fabric

The Microsoft Fabric consolida diferentes funcionalidades numa única plataforma, facilitando a gestão integrada da informação.

Entre estas funcionalidades, destacam-se Data Warehousing, Data Engineering, processamento em tempo real, Data Science and Machine Learning.

Desta forma, as organizações conseguem gerir diferentes processos analíticos num ambiente unificado.

Configuração e otimização de processos Apache Spark para melhorar o desempenho no Microsoft Fabric.

2. How Does Spark Work?

The Apache Spark é um mecanismo de processamento distribuído que funciona através de uma arquitetura master-worker, com paralelismo inerente.

Assim, permite processar grandes volumes de dados através de múltiplas máquinas de forma coordenada.

2.1. Parallelism Architecture in Spark

Spark operates on a hierarchical architecture composed of two main types of nodes: the master node (also referred to as driver) and the worker nodes, que executam os executors.

Esta distribuição permite ao Spark dividir tarefas complexas em operações mais pequenas. Desta forma, diferentes componentes conseguem executar essas operações em paralelo.

Driver Node

The driver node atua como o coordenador central do cluster.

Neste sentido, assume as seguintes responsabilidades:

  • Analisar, distribuir e agendar tarefas entre os executors.
  • Maintaining the SparkContext, que representa a ligação ao cluster Spark.
  • Monitorizar o progresso da execução e garantir tolerância a falhas.

Worker Nodes e Executors

Por outro lado, os worker nodes contain the executors, que são processos responsáveis pela execução real das tarefas.

Cada executor tem duas responsabilidades principais:

  • Executar o código atribuído pelo driver/worker node.
  • Reportar o progresso dos cálculos de volta ao driver node.

2.2. How Parallelism Works

O Spark alcança o paralelismo através da divisão dos dados em partitions, que distribui pelos diferentes nós do cluster.

Desta forma, diferentes threads processam cada partição de forma independente, permitindo executar operações simultâneas.

Por exemplo, se um dataset estiver dividido em múltiplas partições de 128 MB, diferentes executors podem processá-las em paralelo.

Consequentemente, esta distribuição permite maximizar a utilização dos recursos computacionais.

Além disso, o Spark cria um DAG (Directed Acyclic Graph) para programar tarefas e orquestrar os nós worker no cluster.

Este mecanismo permite otimizar a sequência de operações. Por outro lado, facilita a recuperação em caso de falhas, replicando apenas as operações necessárias nos dados de um estado anterior.

3. Spark Configurations in Microsoft Fabric

A configuração dos clusters é uma etapa importante na otimização Spark no Microsoft Fabric.

Por isso, é fundamental considerar os requisitos de acesso, o dimensionamento dos recursos e as características dos processos.

3.1. Prerequisites

Antes de iniciar a configuração, é necessário garantir:

  • Acesso ao portal do Microsoft Fabric com as permissões necessárias (admin, contributor or member).
  • SKU de Fabric previamente contratado ou Fabric Trial ativo.

3.2. Configuration Steps

Pre-warmed Cluster Configuration

The Microsoft Fabric oferece Starter Pools that use clusters pre-warmed, executados em máquinas virtuais da Microsoft.

Desta forma, conseguem reduzir significativamente os tempos de início.

Estes clusters estão ativos e preparados para utilização, proporcionando a inicialização de sessões Spark tipicamente entre 5 e 10 segundos.

Além disso, não exigem configuração manual.

Os Starter Pools utilizam nós de tamanho médio, que escalam dinamicamente de acordo com as necessidades dos trabalhos Spark.

Assim, quando não existem dependências de bibliotecas personalizadas ou propriedades Spark customizadas, as sessões podem iniciar quase instantaneamente.

Isto acontece porque o cluster já se encontra em execução e não necessita de tempo adicional de provisionamento.

No entanto, existem cenários em que o tempo de início pode ser superior:

  • Bibliotecas personalizadas: Podem acrescentar entre 30 segundos e 5 minutos para personalização da sessão.
  • Alta utilização regional: Quando os Starter Pools estão saturados, a criação de novos clusters pode demorar entre 2 e 5 minutos.
  • Opções de rede: Private Links ou Managed VNets podem desativar os Starter Pools, obrigando à criação de clusters on-demand.

High Concurrency Mode Activation

It is recommended to enable the High Concurrency Mode para permitir que múltiplos notebooks partilhem a mesma sessão Spark.

Desta forma, é possível otimizar a utilização de recursos e reduzir significativamente os tempos de início.

Além disso, os pools personalizados com High Concurrency proporcionam uma experiência de início de sessão mais rápida, comparativamente às sessões Spark standard.

To enable High Concurrency Mode:

  1. Access the Workspace Settings.
  2. Navigate to Data Engineering/Science > Spark Settings > High Concurrency.
  3. Enable the option For notebooks.
Processamento distribuído e análise de grandes volumes de dados com Apache Spark no Microsoft Fabric.

EEspecificações Recomendadas para Pools

Para demonstrar as configurações ideais, consideremos um exemplo com o SKU F64.

Base Capacity:

  • F64 = 64 Capacity Units = 128 Spark VCores.
  • Com um burst factor 3x, é possível atingir um máximo de 384 Spark VCores.

Neste caso, o burst factor multiplica a capacidade de processamento disponível, permitindo aumentar o desempenho.

ParameterValor RecomendadoExplanation
Node FamilyMemory OptimizedSuitable for data processing workloads
Node SizeMedium (8 VCores)Balance between performance and concurrency
AutoscaleEnabled (min: 2, max: 48)48 nodes × 8 VCores = 384 VCores (maximum burst)
Dynamic AllocationEnabledAllows automatic adjustment of executors based on demand

Dynamic Allocation Configuration:

  • Min Executors: 2 (baseline para disponibilidade imediata).
  • Max Executors: 46 (reservando 2 nós para driver e overhead).
  • Initial Executors: 4 (equilíbrio entre tempo de arranque e utilização de recursos).

Scaling Based on SKU:

For different SKUs, the maximum configurations vary:

SKUCapacity UnitsMax Spark VCoresRecommended Node SizeMax Nodes
F2212Small3
F8848Medium6
F161696Medium12
F6464384Medium/Large48/24
F128128768Large48

Dynamic Allocation Configuration:

  • Min Executors: 2 (baseline para disponibilidade imediata).
  • Max Executors: 46 (reservando 2 nós para driver e overhead).
  • Initial Executors: 4 (equilíbrio entre tempo de arranque e utilização de recursos).

Scaling Based on SKU

Para diferentes SKUs, as configurações máximas variam.

Por isso, é importante avaliar os recursos disponíveis antes de definir o número e o tamanho dos nós.

SKUCapacity UnitsMax Spark VCoresRecommended Node SizeMax Nodes
F2212Small3
F8848Medium6
F161696Medium12
F6464384Medium/Large48/24
F128128768Large48

Configuration Through the Portal

Depois de definir os requisitos do cluster, é possível avançar para a configuração no portal do Microsoft Fabric.

In the Microsoft Fabric portal:

  1. Go to the section Engenharia de Dados > Spark Settings.
  2. Select New Pool para criar um cluster personalizado.
  3. Set the Node Family and Node Size, conforme os requisitos.
  4. Configurar o Autoscale, com número mínimo de nós igual a 1 (o Fabric garante disponibilidade restaurável mesmo com um único nó).
  5. Enable Dynamic Executor Allocation para otimizar automaticamente os recursos.

Integration with Data Sources:

  • Utilizar conectores nativos para estabelecer ligações a Data Lakes or Data Warehouses.
  • Além disso, verificar se as credenciais e configurações de segurança estão corretamente definidas.

Notebook and Task Configuration:

  • Configurar notebooks (Python ou Scala) para desenvolver scripts de transformação.
  • Posteriormente, agendar tarefas batch ou configurar processos streaming, conforme os requisitos.

Custom pools have a autopause padrão de 2 minutos.

Após esse período de inatividade, as sessões expiram e os clusters deixam de ter recursos alocados. Desta forma, a plataforma cobra apenas pelo tempo de utilização ativa.

No entanto, as parametrizações ideais do cluster podem variar consoante os processos que serão executados.

Por isso, é fundamental realizar uma avaliação acompanhada de testes para cada caso.

4. Best Practices and Technical Considerations

A otimização Spark no Microsoft Fabric exige uma avaliação adequada dos recursos disponíveis e das características de cada processo.

Neste sentido, é importante considerar o dimensionamento, a automatização, a monitorização e a segurança.

Sizing and Optimization

É fundamental dimensionar corretamente o cluster.

Para isso, considere os seguintes fatores:

Burst Factor: Determine a capacidade de escalabilidade instantânea necessária para lidar com picos de processamento.

Neste caso, a lógica deve incluir a multiplicação do número de VCores utilizados na seleção. Assim, é possível atingir o burst factor pretendido.

Por exemplo, para um SKU F64, com 128 VCores base, configure o pool para atingir até 384 VCores.

Para isso, ajuste o número e o tamanho dos nós, como no exemplo: Medium nodes (8 VCores cada) × 48 nós = 384 VCores.

Número de Cores e Memória: Para o driver node, selecione um número adequado de cores e memória.

Isto é importante porque este nó coordena o processamento e deve suportar as tarefas de gestão do cluster.

Por outro lado, nos worker nodes, a escolha deve considerar a multiplicação dos recursos necessários para o processamento paralelo, nomeadamente núcleos e memória.

Além disso, avalie a possibilidade de escalar estes nós para ajustar o desempenho conforme a carga.

Automation and Scheduling

Automatize processos recorrentes através de scripts e agendamentos.

Desta forma, consegue garantir maior consistência e minimizar erros.

Monitoring

Utilize as ferramentas de monitorização nativas do Microsoft Fabric para identificar possíveis problemas.

Assim, pode ajustar o desempenho do cluster em tempo real.

Security

Assegure a implementação de políticas de segurança robustas, configurando as permissões necessárias.

Além disso, utilize ligações seguras para garantir o acesso adequado aos dados.

Quais os Próximos Passos?

A B2F dispõe de uma sólida experiência no desenvolvimento de soluções em Microsoft Fabric, assim como na implementação de processos baseados em Apache Spark.

Caso necessite de apoio especializado para maximizar o desempenho e a eficiência da sua plataforma analítica, a nossa equipa está preparada para colaborar consigo.

Desta forma, podemos encontrar as soluções mais adequadas aos desafios específicos da sua organização.

Ready to define a successful future?

Get in touch

João Conde Pereira

João Conde Pereira

Business Intelligence Team Leader
Share the Post

Related Posts

Governance de Dados na Cloud: Fabric, Azure e Databricks Copiar

Business Intelligence

Data Governance in Cloud Environments

19 Jun 2026

Tiago Marques

Business Intelligence Consultant
Descubra como as ferramentas BPM e o Bonita ajudam a automatizar processos, reduzir custos e melhorar a eficiência das empresas.

Business Intelligence

BPM Tools and BonitaSoft

11 May 2026

José Silva

Software Developer

Ready to define a successful future?

Get in touch

Visualização de dados e indicadores de gestão numa solução de software empresarial
shape

Pedido de Contacto

Don't hesitate and get in touch with us.