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.
Nota
Saiba como migrar pools do Azure Synapse Spark para o 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.
- Configurações do Spark imutáveis: Algumas configurações do Spark são imutáveis. Se você receber a mensagem
Nota
Saiba como migrar configurações do Spark do Azure Synapse para o Fabric.
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.
Nota
Saiba como migrar bibliotecas do Azure Synapse Spark para o Fabric.
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
egetSecret
são suportadas por enquanto no Fabric formssparkutils.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.
Nota
Saiba como Migrar blocos de anotações do Azure Synapse para o Fabric.
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.
Nota
Saiba como migrar os metadados HMS do catálogo do Azure Synapse Spark para o Fabric.
Conteúdos relacionados
- Saiba mais sobre as opções de migração para pools, configurações, bibliotecas, blocos de anotações e definições de trabalho do Spark
- Migrar dados e pipelines
- Migrar metadados do Hive Metastore