Partilhar via


Compare o Fabric Data Engineering e o Azure Synapse Spark

Essa comparação entre o Fabric Data Engineering e o Azure Synapse Spark fornece um resumo dos principais recursos e uma análise aprofundada em várias categorias, que incluem pools do Spark, configuração, bibliotecas, blocos de anotações e definições de trabalho do Spark.

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

Categoria Azure Synapse Spark Faísca de tecido
Conjuntos do Apache Spark Piscina de faísca
-
-
Piscina / inicial Piscina personalizada
V-Ordem
Alta simultaneidade
Configurações do Apache Spark Nível da piscina
Nível de definição de trabalho do Bloco de Anotações ou do Spark
Nível ambiental
Nível de definição de trabalho do Bloco de Anotações ou do Spark
Bibliotecas Spark Pacotes de nível de espaço de trabalho
Pacotes ao nível da piscina
Pacotes em linha
-
Bibliotecas de ambiente
Bibliotecas em linha
Recursos Caderno (Python, Scala, Spark SQL, R, .NET)
Definição de trabalho do Spark (Python, Scala, .NET)
Pipelines de dados Synapse
Atividades de pipeline (notebook, SJD)
Caderno (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 primário (ADLS Gen2)
Residência de dados (baseada em cluster/região)
Armazenamento primário (OneLake)
Residência de dados (baseada em capacidade/região)
Metadados Interno Hive Metastore (HMS)
HMS externo (usando o Banco de Dados SQL do Azure)
HMS interno (lakehouse)
-
Ligações Tipo de conector (serviços vinculados)
Origens de dados
Fonte de dados conn. com identidade do espaço de trabalho
Tipo de conector (DMTS)
Origens de dados
-
Segurança RBAC e controle de acesso
ACLs de armazenamento (ADLS Gen2)
Links Privados
VNet gerenciada (isolamento de rede)
Identidade do espaço de trabalho Synapse
Proteção contra exfiltração de dados (DEP)
Etiquetas de serviço
Cofre de chaves (via mssparkutils/ serviço vinculado)
RBAC e controle de acesso
OneLake RBAC
Links Privados
Rede virtual gerenciada
Identidade do espaço de trabalho
-
Etiquetas de serviço
Cofre da chave (via mssparkutils)
DevOps Integração do Azure DevOps
CI/CD (sem suporte incorporado)
Integração do Azure DevOps
Pipelines de implantação
Experiência de programador Integração IDE (IntelliJ)
Interface do usuário do Synapse Studio
Colaboração (espaços de trabalho)
Livy API
API/SDK
mssparkutils
Integração IDE (VS Code)
Interface do usuário de malha
Colaboração (espaços de trabalho e partilha)
-
API/SDK
mssparkutils
Registos e monitorização Conselheiro Spark
Pools e trabalhos de monitoramento integrados (através do Synapse Studio)
Servidor de histórico do Spark
Prometeu/Grafana
Análise de logs
Conta de armazenamento
Hubs de Eventos
Conselheiro Spark
Pools e trabalhos de monitoramento integrados (por meio do hub de monitoramento)
Servidor de histórico do Spark
-
-
-
-
Continuidade de negócio e recuperação após desastre (BCDR) BCDR (dados) ADLS Gen2 BCDR (dados) OneLake

Considerações e limitações:

  • Integração com DMTS: não é possível usar o DMTS por meio de notebooks e definições de trabalho do Spark.

  • RBAC de nível de carga de trabalho: a malha suporta quatro funções de espaço de trabalho diferentes. Para obter mais informações, consulte Funções em espaços de trabalho no Microsoft Fabric.

  • Identidade gerenciada: atualmente, o Fabric não oferece suporte à execução de blocos de anotações e definições de trabalho do Spark usando a identidade do espaço de trabalho ou a identidade gerenciada do Azure KeyVault em blocos de anotações.

  • CI/CD: Você pode usar a API/SDK de malha 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 está exposta no Fabric. Você deve criar blocos de anotações 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, como Log Analytics, blob e Hubs de Eventos. Você também pode obter uma lista de aplicativos Spark para o espaço de trabalho a partir 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 atualmente no Fabric.

Comparação de piscina de faíscas

A tabela a seguir compara os pools Azure Synapse Spark e Fabric Spark.

Configuração de faísca Azure Synapse Spark Faísca de tecido
Live pool (instâncias pré-quentes) - Sim, piscinas iniciantes
Piscina personalizada Sim Sim
Versões do Spark (tempo de execução) 2.4, 3.1, 3.2, 3.3, 3.4 3.3, 3.4, 3.5
Dimensionamento Automático Sim Sim
Alocação dinâmica de executores Sim, até 200 Sim, com base na capacidade
Tamanhos de nós ajustáveis Sim, 3-200 Sim, 1 com base na capacidade
Configuração mínima do nó 3 nós 1 nó
Família de tamanho de nó Memória otimizada, GPU acelerada Otimizada para Memória
Tamanho do nó Pequeno-XXXLarge Pequeno-XXLarge
Pausa automática Sim, mínimo personalizável de 5 minutos Sim, não personalizável 2 minutos
Alta simultaneidade Não Sim
V-Ordem Não Sim
Autotune de faísca Não Sim
Mecanismo de execução nativo Não Sim
Limites de simultaneidade Fixo Variável baseada na capacidade
Várias piscinas de faísca Sim Sim (ambientes)
Cache inteligente Sim Sim
Suporte a API/SDK Sim Sim
  • Tempo de execução: o Fabric não suporta as versões Spark 2.4, 3.1 e 3.2. O Fabric Spark suporta Spark 3.3 com Delta 2.2 dentro do Runtime 1.1, Spark 3.4 com Delta 2.4 dentro do Runtime 1.2 e Spark 3.5 com Delta 3.1 dentro do Runtime 1.3.

  • Dimensionamento automático: no Azure Synapse Spark, o pool pode escalar até 200 nós, independentemente do tamanho do nó. Na malha, 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 da piscina de faíscas Azure Synapse Spark Faísca de tecido (piscina personalizada, SKU F64)
    Pequena Mín.: 3, Máx.: 200 Mínimo: 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
    X-Grande 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 Azure Synapse Spark, você pode ir até 200 nós. Na Malha, o número de nós que você pode ter no pool de faíscas personalizado depende do tamanho do nó e da capacidade da malha. A capacidade é uma medida de quanto poder de computação você pode usar no Azure. Uma maneira de pensar nisso é que dois Spark vCores (uma unidade de poder de computação para o Spark) equivalem a uma unidade de capacidade. Por exemplo, um SKU F64 de capacidade de malha tem 64 unidades de capacidade, o que equivale a 128 Spark VCores. Assim, se você escolher um tamanho de nó pequeno, poderá ter até 32 nós em seu 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, consulte Computação do Spark.

  • Família de tamanho de nó: por enquanto, os pools Fabric Spark suportam apenas a família de tamanhos de nó otimizados para memória. Se você estiver usando um pool de SKU Spark acelerado por GPU no Azure Synapse, eles não estarão disponíveis no Fabric.

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

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

  • Alta simultaneidade: o Fabric suporta alta simultaneidade em notebooks. Para obter mais informações, consulte Modo de simultaneidade alta no Fabric Spark.

  • Limites de simultaneidade: em termos de simultaneidade, o Azure Synapse Spark tem um limite de 50 trabalhos em execução simultânea por pool do Spark e 200 trabalhos enfileirados por pool do Spark. O máximo de trabalhos ativos é de 250 por pool Spark e 1000 por espaço de trabalho. No Microsoft Fabric Spark, as SKUs de capacidade definem os limites de simultaneidade. Os SKUs têm limites variáveis para trabalhos simultâneos máximos que variam de 1 a 512. Além disso, o Fabric Spark 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, consulte Limites de simultaneidade e filas nas capacidades do Microsoft Fabric Spark e do Fabric.

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

Comparação de configurações do Spark

As configurações de faísca 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: defina as configurações do Spark em linha usando blocos de anotações e definições de trabalho do Spark.

Embora ambas as opções sejam suportadas no Azure Synapse Spark e no Fabric, há algumas considerações:

Configuração do Spark Azure Synapse Spark Faísca de tecido
Nível ambiental Sim, piscinas Sim, ambientes
Inline Sim Sim
Importação/exportação Sim Sim (.yml de ambientes)
Suporte a API/SDK 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.

  • Inline: No Azure Synapse, tanto os blocos de anotações quanto os trabalhos do Spark oferecem 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 spark.conf.set(<conf_name>, <conf_value>) configuração. Para trabalhos em lote, você também pode aplicar configurações via SparkConf.

  • Importar/exportar: esta opção para configurações do Spark está disponível em ambientes de malha.

  • Outras considerações:

    • Configurações do Spark imutáveis: 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 é imutável.
    • Agendador FAIR: O agendador FAIR é usado no modo de alta simultaneidade.
    • V-Order: V-Order é a otimização do tempo de gravação aplicada aos arquivos de parquet habilitados por padrão nos pools do Fabric Spark.
    • Gravação otimizada: a gravação otimizada é desabilitada por padrão no Azure Synapse, mas habilitada por padrão para o Fabric Spark.

Comparação de bibliotecas do Spark

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

  • Nível do espaço de trabalho: não é possível carregar/instalar essas bibliotecas no seu espaço de trabalho 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. As bibliotecas de nível de ambiente estão disponíveis para todos os blocos de anotações e definições de trabalho do Spark em execução no ambiente.
  • Inline: 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 bloco de notas.

Considerações:

Biblioteca Spark Azure Synapse Spark Faísca de tecido
Nível do espaço de trabalho Sim No
Nível ambiental Sim, piscinas Sim, ambientes
Inline Sim Sim
Importação/exportação Sim Sim
Suporte a API/SDK Sim Sim
  • Outras considerações:
    • Bibliotecas internas: o Fabric e o Azure Synapse compartilham um núcleo comum do Spark, mas podem diferir ligeiramente no suporte diferente de suas bibliotecas de tempo de execução. 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. Consulte as bibliotecas de tempo de execução do Fabric Spark integradas aqui.

Comparação de blocos de notas

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

Capacidade do notebook Azure Synapse Spark Faísca de tecido
Importação/exportação Sim Sim
Configuração da sessão Sim, UI e inline Sim, UI (ambiente) e inline
IntelliSense Sim Sim
mssparkutils Sim Sim
Recursos do bloco de notas Não Sim
Colaborar Não Sim
Alta simultaneidade Não Sim
.NET para Spark C# Sim No
Suporte à atividade de pipeline Sim Sim
Suporte de execução agendada integrado Não Sim
Suporte a API/SDK Sim Sim
  • mssparkutils: Como as conexões DMTS ainda não são suportadas no Fabric, apenas getToken e getSecret são suportadas por enquanto no Fabric for mssparkutils.credentials.

  • Recursos de notebooks: Os notebooks de malha fornecem um sistema de arquivos semelhante ao Unix para ajudá-lo a gerenciar suas pastas e arquivos. Para obter mais informações, consulte Como usar blocos de anotações do Microsoft Fabric.

  • Colaborar: o bloco de anotações Fabric é um item colaborativo que suporta vários usuários editando o mesmo bloco de anotações. Para obter mais informações, consulte Como usar blocos de anotações do Microsoft Fabric.

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

  • .NET para Spark C#: Fabric não suporta .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 de execução agendada integrado: o Fabric suporta execuções agendadas para notebooks.

  • Outras considerações:

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

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

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

Capacidade de trabalho do Spark Azure Synapse Spark Faísca de tecido
PySpark Sim Sim
Scala Sim Sim
.NET para Spark C# Sim No
SparkR Não Sim
Importação/exportação Sim (UI) Não
Suporte à atividade de pipeline Sim Sim
Suporte de execução agendada integrado Não Sim
Repetir políticas Não Sim
Suporte a API/SDK Sim Sim
  • Spark jobs: Você pode trazer seu .py/. Ficheiros R/jar. O Fabric suporta SparkR. Uma definição de trabalho do Spark suporta arquivos de referência, argumentos de linha de comando, configurações do Spark e referências lakehouse.

  • Importar/exportar: 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#: Fabric não suporta .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 de execução agendada integrado: a malha suporta 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 Hive Metastore (HMS)

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

Tipo HMS Azure Synapse Spark Faísca de tecido
HMS interno Sim Sim (lakehouse)
HMS externo Sim No
  • HMS externo: Atualmente, o Fabric não suporta uma API de catálogo e acesso a um Hive Metastore (HMS) externo.