Compartilhar via


Comparar a Engenharia de Dados do Fabric ao Spark no Azure Synapse

Essa comparação entre a Engenharia de Dados do Fabric e o Spark no Azure Synapse fornece um resumo dos principais recursos e uma análise detalhada em várias categorias, que incluem Pools do Spark, configuração, bibliotecas, notebooks e definições de trabalho do Spark.

A tabela a seguir compara o Spark do Azure Synapse e o Spark do Fabric em diferentes categorias:

Categoria Azure Synapse Spark Spark do Fabric
Pools do Spark Pool do Spark
-
-
Pool inicial / Pool personalizado
V-Order
Alta simultaneidade
Configurações do Spark Nível do pool
Nível de definição de trabalho do Notebook ou do Spark
Nível de ambiente
Nível do Notebook ou Definição de trabalho do Spark
Bibliotecas do Spark Pacotes no nível do workspace
Pacotes no nível do pool
Pacotes embutidos
-
Bibliotecas de ambiente
Bibliotecas embutidas
Recursos Notebook (Python, Scala, Spark SQL, R, .NET)
Definição de trabalho do Spark (Python, Scala, .NET)
Pipelines de dados do Synapse
Atividades de pipeline (notebook, SJD)
Notebook (Python, Scala, Spark SQL, R)
Definição de trabalho do Spark (Python, Scala, R)
Pipelines de dados do Data Factory
Atividades de pipeline (notebook, SJD)
Dados Armazenamento principal (ADLS Gen2)
Residência de dados (baseada em cluster/região)
Armazenamento primário (OneLake)
Residência de dados (com base em capacidade/região)
Metadados Metastore do Hive interno (HMS)
HMS externo (usando o BD SQL do Azure)
HMS interno (lakehouse)
-
conexões Tipo de conector (serviços vinculados)
Fontes de dados
Conexão da fonte de dados com a identidade do workspace
Tipo de conector (DMTS)
Fontes de dados
-
Segurança RBAC e controle de acesso
ACLs de armazenamento (ADLS Gen2)
Links Privados
VNet gerenciada (isolamento de rede)
Identidade do workspace do Synapse
Proteção contra Exfiltração dos Dados (DEP)
Marcas de serviço
Key Vault (via mssparkutils/serviço vinculado)
RBAC e controle de acesso
OneLake RBAC
Links Privados
VNet Gerenciada
Identidade do espaço de trabalho
-
Marcas de serviço
Key Vault (via mssparkutils)
DevOps Integração com o Azure DevOps
CI/CD (não há suporte interno)
Integração com o Azure DevOps
Pipelines de implantação
Experiência do desenvolvedor Integração do IDE (IntelliJ)
Interface do usuário do Synapse Studio
Colaboração (workspaces)
Livy API
API/SDK
mssparkutils
Integração do IDE (VS Code)
Interface do usuário do Fabric
Colaboração (workspaces e compartilhamento)
-
API/SDK
mssparkutils
Log e monitoramento Assistente do Spark
Trabalhos e pools de monitoramento internos (por meio do Synapse Studio)
Servidor de histórico do Spark
Prometheus/Grafana
Log Analytics
Conta de Armazenamento
Hubs de Eventos
Assistente do Spark
Trabalhos e pools de monitoramento internos (por meio do Hub de Monitoramento)
Servidor de histórico do Spark
-
-
-
-
BCDR (continuidade dos negócios e recuperação de desastre) BCDR (dados) ADLS Gen2 BCDR (dados) OneLake

Considerações e limitações:

  • Integração do DMTS: você não pode usar o DMTS por meio de notebooks e definições de trabalho do Spark.

  • RBAC no nível da carga de trabalho: o Fabric dá suporte a quatro funções de workspace diferentes. Para obter mais informações, confira Funções em workspaces no Microsoft Fabric.

  • Identidade gerenciada: atualmente, o Fabric não dá suporte à execução de notebooks e definições de trabalho do Spark usando a identidade do workspace ou a identidade gerenciada do Azure KeyVault em notebooks.

  • CI/CD: você pode usar a API/o SDK do Fabric e os pipelines de implantação.

  • API Livy e como enviar e gerenciar trabalhos do Spark: a API Livy está no roteiro, mas ainda não foi exposta no Fabric. Você deve criar notebooks e definições de trabalho do Spark com a interface do usuário do Fabric.

  • Logs e métricas do Spark: no Azure Synapse, você pode emitir logs e métricas do Spark para seu próprio armazenamento, por exemplo, Log Analytics, blob e Hubs de Eventos. Você também pode obter uma lista de aplicativos Spark para o workspace da API. Atualmente, ambos os recursos não estão disponíveis no Fabric.

  • Outras considerações:

    • JDBC: o suporte à conexão JDBC não está disponível no momento no Fabric.

Comparação do pool do Spark

A tabela a seguir compara os Pools do Spark no Azure Synapse e no Fabric.

Configurações do Spark Azure Synapse Spark Spark do Fabric
Pool dinâmico (instâncias pré-aquecidas) - Sim, pools iniciais
Pool personalizado Sim Yes
Versões do Spark (runtime) 2.4, 3.1, 3.2, 3.3, 3.4 3.3, 3.4, 3.5
Autoscale Sim Yes
Alocação dinâmica de executores Sim, até 200 Sim, com base na capacidade
Tamanhos de nó ajustáveis Sim, 3-200 Sim, 1 com base na capacidade
Configuração de nó personalizada 3 nós 1 nó
Família de tamanhos de nós Otimizado para memória, GPU acelerada Otimizado para memória
Tamanho do nó Small-XXXLarge Small-XXLarge
Pausa automática Sim, personalizável com o mínimo de 5 minutos Sim, 2 minutos não personalizáveis
Alta simultaneidade Não Sim
V-Order Não Sim
Spark Autotune Não Sim
Mecanismo de execução nativo Não Sim
Limites de simultaneidade Fixo Variável com base na capacidade
Vários pools do Spark Sim Sim (ambientes)
Cache inteligente Sim Yes
Suporte ao SDK/à API Sim Sim
  • Runtime: O Fabric não dá suporte às versões 2.4, 3.1 e 3.2 do Spark. O Fabric Spark dá suporte ao Spark 3.3 com Delta 2.2 no Runtime 1.1, Spark 3.4 com Delta 2.4 no Runtime 1.2 e Spark 3.5 com Delta 3.1 no Runtime 1.3.

  • Dimensionamento automático: no Spark do Azure Synapse, o pool pode escalar verticalmente até 200 nós, independentemente do tamanho do nó. No Fabric, o número máximo de nós está sujeito ao tamanho do nó e à capacidade provisionada. Veja o exemplo a seguir para o SKU F64.

    Tamanho do pool do Spark Azure Synapse Spark Spark do Fabric (Pool Personalizado, SKU F64)
    Small Mín: 3, máx: 200 Mín: 1, máx: 32
    Médio Mín: 3, máx: 200 Mín: 1, máx: 16
    grande Mín: 3, máx: 200 Mín: 1, máx: 8
    Extragrande Mín: 3, máx: 200 Mín: 1, máx: 4
    XX-Grande Mín: 3, máx: 200 Mín: 1, máx: 2
  • Tamanhos de nó ajustáveis: no Spark do Azure Synapse, você pode acessar até 200 nós. No Fabric, o número de nós que você pode ter em seu pool do Spark personalizado depende do tamanho do nó e da capacidade do Fabric. A capacidade é uma medida de quanto poder de computação você pode usar no Azure. Uma maneira de pensar nisso é que dois vCores do Spark (uma unidade de poder de computação do Spark) são iguais a uma unidade de capacidade. Por exemplo, um SKU F64 de capacidade do Fabric tem 64 unidades de capacidade, o que equivale a 128 VCores Spark. Portanto, se você escolher um tamanho de nó pequeno, poderá ter até 32 nós no pool (128/4 = 32). Em seguida, o total de vCores na capacidade/vCores por tamanho de nó = número total de nós disponíveis. Para obter mais informações, confira computação do Spark.

  • Família de tamanho de nó: os pools do Spark do Fabric só dão suporte à família de tamanho de nó otimizado para memória por enquanto. Se você estiver usando um Pool do Spark de SKU acelerada por GPU no Azure Synapse, eles não estarão disponíveis no Fabric.

  • Tamanho do nó: o tamanho do nó xx-grande vem com 432 GB de memória no Azure Synapse, enquanto o mesmo tamanho de nó tem 512 GB no Fabric, incluindo 64 vCores. O restante dos tamanhos de nó (pequeno a x grande) tem os mesmos vCores e memória no Azure Synapse e Fabric.

  • Pausa automática: se você habilitá-la no Spark no Azure Synapse, o pool do Apache Spark será pausado automaticamente após uma quantidade especificada de tempo ocioso. Essa configuração é pode ser definida no Azure Synapse (mínimo de 5 minutos), mas os pools personalizados têm uma duração de uso automático padrão não personalizável de 2 minutos no Fabric após a expiração da sessão. A expiração da sessão padrão é definida como 20 minutos no Fabric.

  • Alta simultaneidade: o Fabric dá suporte à alta simultaneidade em notebooks. Para obter mais informações, confira Modo de alta simultaneidade no Spark no Fabric.

  • Limites de simultaneidade: em termos de simultaneidade, o Spark do Azure Synapse tem um limite de 50 trabalhos simultâneos de execução por pool do Spark e 200 trabalhos na fila por pool do Spark. O máximo de trabalhos ativos é de 250 para cada pool do Spark e 1.000 para cada workspace. No Spark do Microsoft Fabric, as SKUs de capacidade definem os limites de simultaneidade. As SKUs têm limites variados no máximo de trabalhos simultâneos que variam de 1 a 512. Além disso, o Spark do Fabric tem um sistema de limitação dinâmico baseado em reserva para gerenciar a simultaneidade e garantir uma operação suave mesmo durante os horários de pico de uso. Para obter mais informações, confira Limites de simultaneidade e filas nas capacidades do Spark no Microsoft Fabric e capacidades do Fabric.

  • Vários Pools do Spark: se você quiser ter vários Pools do Spark, use ambientes do Fabric para selecionar um pool por bloco de anotações ou definição de trabalho do Spark. Para obter mais informações, confira Criar, configurar e usar um ambiente no Microsoft Fabric.

Observação

Saiba como migrar pools do Spark do Azure Synapse para o Fabric.

Comparação de configurações do Spark

As configurações do Spark podem ser aplicadas em diferentes níveis:

  • Nível de ambiente: essas configurações são usadas como a configuração padrão para todos os trabalhos do Spark no ambiente.
  • Nível embutido: definir configurações do Spark embutidas usando notebooks e definições de trabalho do Spark.

Embora ambas as opções sejam compatíveis com o Spark do Azure Synapse e o Fabric, há algumas considerações:

Configuração do Spark Azure Synapse Spark Spark do Fabric
Nível de ambiente Sim, pools Sim, ambientes
Embutido Sim Yes
Importar/exportar Sim Sim (.yml de ambientes)
Suporte ao SDK/à API Sim Sim
  • Nível de ambiente: no Azure Synapse, você pode definir várias configurações do Spark e atribuí-las a diferentes pools do Spark. Você pode fazer isso no Fabric usando ambientes.

  • Em linha: no Azure Synapse, os notebooks e os trabalhos do Spark dão suporte à anexação de diferentes configurações do Spark. No Fabric, as configurações de nível de sessão são personalizadas com a configuração spark.conf.set(<conf_name>, <conf_value>). Para trabalhos em lotes, você também pode aplicar configurações por meio do SparkConf.

  • Importação/exportação: essa opção para configurações do Spark está disponível em ambientes do Fabric.

  • Outras considerações:

    • Configurações imutáveis do Spark: algumas configurações do Spark são imutáveis. Se você receber a mensagem AnalysisException: Can't modify the value of a Spark config: <config_name>, a propriedade em questão será imutável.
    • Agendador FAIR: o agendador FAIR é usado no modo de alta simultaneidade.
    • V-Order: V-Order é a otimização de tempo de gravação aplicada aos arquivos parquet habilitados por padrão em pools do Spark no Fabric.
    • Gravação otimizada: a gravação otimizada é desabilitada por padrão no Azure Synapse, mas habilitada por padrão para o Spark no Fabric.

Comparação de bibliotecas do Spark

Você pode aplicar bibliotecas do Spark em diferentes níveis:

  • Nível do workspace: você não pode carregar/instalar essas bibliotecas em seu workspace e, posteriormente, atribuí-las a um pool específico do Spark no Azure Synapse.
  • Nível de ambiente: você pode carregar/instalar bibliotecas em um ambiente. Bibliotecas de nível de ambiente estão disponíveis para todos os notebooks e definições de trabalho do Spark em execução no ambiente.
  • Embutida: além das bibliotecas no nível do ambiente, você também pode especificar bibliotecas embutidas. Por exemplo, no início de uma sessão de notebook.

Considerações:

Biblioteca do Spark Azure Synapse Spark Spark do Fabric
Nível do workspace Sim Não
Nível de ambiente Sim, pools Sim, ambientes
Embutido Sim Yes
Importar/exportar Sim Yes
Suporte ao SDK/à API Sim Sim
  • Outras considerações:
    • Bibliotecas internas: o Fabric e o Azure Synapse compartilham um núcleo comum do Spark, mas podem diferir ligeiramente em suporte diferente de suas bibliotecas de runtime. Normalmente, o uso de código é compatível, com algumas exceções. Nesse caso, os usuários podem precisar de compilação, adição de bibliotecas personalizadas e ajuste de sintaxe. Veja as bibliotecas internas de runtime do Fabric Spark aqui.

Comparação de notebooks

Notebooks e definições de trabalho do Spark são itens de código primários para desenvolver trabalhos do Apache Spark no Fabric. Há algumas diferenças entre os notebooks do Spark no Azure Synapse e os notebooks do Spark no Fabric:

Funcionalidade do notebook Azure Synapse Spark Spark do Fabric
Importar/exportar Sim Yes
Configuração de sessão Sim, interface do usuário e em linha Sim, interface do usuário (ambiente) e embutida
IntelliSense Sim Yes
mssparkutils Sim Yes
Recursos do Notebook Não Sim
Colaboração Não Sim
Alta simultaneidade Não Sim
.NET para Spark C# Sim Não
Suporte à atividade de pipeline Sim Yes
Suporte interno à execução agendada Não Sim
Suporte ao SDK/à API Sim Yes
  • mssparkutils: como as conexões DMTS ainda não têm suporte no Fabric, apenas getToken e getSecret têm suporte por enquanto no Fabric para mssparkutils.credentials.

  • Recursos de notebooks: os notebooks Fabric fornecem um sistema de arquivos semelhante ao Unix para ajudar você a gerenciar suas pastas e arquivos. Para obter mais informações, confira Como usar notebooks do Microsoft Fabric.

  • Colabore: o bloco de anotações do Fabric é um item colaborativo que dá suporte a vários usuários editando o mesmo bloco de anotações. Para obter mais informações, confira Como usar notebooks do Microsoft Fabric.

  • Alta simultaneidade: no Fabric, você pode anexar blocos de anotações a uma sessão de alta simultaneidade. Essa opção é uma alternativa para usuários que usam ThreadPoolExecutor no Azure Synapse. Para obter mais informações, confira Configurar o modo de alta simultaneidade para notebooks do Fabric.

  • .NET para Spark C#: o Fabric não dá suporte ao .NET Spark (C#). No entanto, recomendamos que os usuários com cargas de trabalho existentes escritas em C# ou F# migrem para Python ou Scala.

  • Suporte interno à execução agendada: o Fabric dá suporte a execuções agendadas para notebooks.

  • Outras considerações:

    • Você pode usar recursos dentro de um notebook que só têm suporte em uma versão específica do Spark. Lembre-se de que o Spark 2.4 e 3.1 não têm suporte no Fabric.
    • Se o seu notebook ou trabalho do Spark estiver usando um serviço vinculado com diferentes conexões de fonte de dados ou pontos de montagem, você deverá modificar seus trabalhos do Spark para usar métodos alternativos de lidar com conexões de fontes de dados e coletores externos. Use o código spark para se conectar a fontes de dados usando bibliotecas do Spark disponíveis.

Comparação de definição de trabalho do Spark

Considerações importantes sobre a definição de trabalho do Spark:

Funcionalidade de trabalho do Spark Azure Synapse Spark Spark do Fabric
PySpark Sim Yes
Scala Sim Yes
.NET para Spark C# Sim Não
SparkR Não Sim
Importar/exportar Sim (interface do usuário) Não
Suporte à atividade de pipeline Sim Yes
Suporte interno à execução agendada Não Sim
Políticas de repetição Não Sim
Suporte ao SDK/à API Sim Yes
  • Trabalhos do Spark: você pode trazer seus arquivos py/.R/jar. O Fabric dá suporte ao SparkR. Uma definição de trabalho do Spark dá suporte a arquivos de referência, argumentos de linha de comando, configurações do Spark e referências de lakehouse.

  • Importação/exportação: no Azure Synapse, você pode importar/exportar definições de trabalho do Spark baseadas em JSON da interface do usuário. Esse recurso ainda não está disponível no Fabric.

  • .NET para Spark C#: o Fabric não dá suporte ao .NET Spark (C#). No entanto, a recomendação é que os usuários com cargas de trabalho existentes escritas em C# ou F# migrem para Python ou Scala.

  • Suporte interno à execução agendada: o Fabric dá suporte a execuções agendadas para uma definição de trabalho do Spark.

  • Políticas de repetição: essa opção permite que os usuários executem trabalhos de streaming estruturados pelo Spark indefinidamente.

Comparação do Metastore do Hive (HMS)

Diferenças e considerações do MetaStore do Hive (HMS):

Tipo de HMS Azure Synapse Spark Spark do Fabric
HMS interno Sim Sim (lakehouse)
HMS externo Sim Não
  • HMS externo: atualmente, o Fabric não dá suporte a uma API de Catálogo e a acesso a um HMS (Metastore de Hive) externo.