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.
- Configurações imutáveis do Spark: algumas configurações do Spark são imutáveis. Se você receber a mensagem
Observação
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 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.
Observação
Saiba como migrar bibliotecas do Spark do Azure Synapse para o Fabric.
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
egetSecret
têm suporte por enquanto no Fabric paramssparkutils.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.
Observação
Saiba como migrar notebooks do Azure Synapse para o Fabric.
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.
Observação
Saiba como Migrar definições de trabalho do Spark do Azure Synapse para o Fabric.
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.
Observação
Saiba como migrar metadados HMS do catálogo do Spark do Azure Synapse para o Fabric.
Conteúdo relacionado
- Saiba mais sobre as opções de migração para Pools do Spark, configurações, bibliotecas, notebooks e definições de trabalho do Spark
- Migrar dados e pipelines
- Migrar metadados do Metastore do Hive