Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Este artigo é a Fase 2 de 4 da série de melhores práticas de migração do Azure Synapse Spark para Microsoft Fabric.
Use este artigo para migrar as suas cargas de trabalho Spark do Azure Synapse para o Microsoft Fabric. Este artigo aborda a execução do Assistente de Migração, refatoração de padrões de código que não podem ser convertidos automaticamente e migração de configurações, ambientes e bibliotecas do pool Spark.
Neste artigo, você aprenderá a:
- Compreenda o fluxo de trabalho de migração para espaços de trabalho Synapse padrão (não Git) e habilitados para Git.
- Use o Spark Assistente de Migração para migrar cadernos, definições de funções do Spark e pools.
- Refatorar padrões de código específicos do Synapse para compatibilidade com Fabric.
- Migrar as definições, ambientes e bibliotecas do pool Spark.
- Identificar e resolver lacunas de compatibilidade de bibliotecas entre o Synapse e o Fabric.
Migre com o Assistente de Migração
O Spark Assistente de Migração automatiza a migração de notebooks, definições de trabalhos Spark, pools e metadados de bases de dados lacustres do Synapse para o Fabric. O assistente copia e transforma os seus itens, mas não completa a migração — ainda precisa de refatorar o código, conciliar lacunas de configuração e validar os resultados.
Para instruções passo a passo sobre como executar o assistente, veja Spark Synapse to Fabric Spark Assistente de Migração (Pré-visualização).
O assistente migra os seguintes itens:
- Os Spark pools são migrados para os Fabric Pools e os artefactos correspondentes do Ambiente.
- Os notebooks e os ambientes associados são migrados.
- As definições de funções Spark são migradas com os ambientes associados.
- As bases de dados Lake são mapeadas para esquemas Fabric; as tabelas Delta geridas são migradas através de atalhos de catálogo OneLake.
Importante
As configurações do Spark, bibliotecas personalizadas e definições do executor personalizado não são migradas pelo assistente. Deve configurar estes manualmente nos Ambientes Fabric. Os espaços de trabalho Synapse num VNet não podem ser migrados com o assistente.
Migração padrão de espaços de trabalho (não-Git)
Para espaços de trabalho onde cadernos e SJDs são armazenados diretamente no Synapse (não num repositório Git):
Execute o Assistente de Migração do Spark a partir do seu espaço de trabalho Fabric (Migrar>itens de engenharia de dados). Selecione o espaço de trabalho Synapse de origem e migre todos os itens do Spark.
Validar dependências: garantir que a mesma versão do Spark é utilizada. Se os cadernos referenciam outros cadernos através de
mssparkutils.notebook.run(), verifique se aqueles também foram migrados. O Assistente de Migração preserva a estrutura de pastas (o Fabric suporta até 10 níveis de aninhamento).Refatorar código: substituir
mssparkutilspornotebookutils, substituir referências de serviço vinculadas por Fabric Connections e atualizar os caminhos dos ficheiros. Consulte a secção do código Refactor Spark para mais detalhes.
Migração de espaço de trabalho habilitada pelo Git
Para espaços de trabalho onde notebooks e SJDs são armazenados num repositório Azure DevOps ou GitHub, note-se que o Synapse e o Fabric usam formatos de serialização Git diferentes. O Synapse armazena cadernos como JSON; Fabric utiliza o formato de origem .py/.scala ou .ipynb. Não podes apontar diretamente um espaço de trabalho Fabric para o mesmo 'branch' Git do Synapse.
Migrar itens. Use o Spark Assistente de Migração para migrar cadernos e SJDs do espaço de trabalho Synapse para um espaço de trabalho Fabric. Isto converte os itens para o formato compatível com Fabric.
Refatorar código. Aplicar a mesma refatoração de código do cenário padrão — substituir
mssparkutils, atualizar caminhos de ficheiros, substituir serviços ligados. Consulte a secção do código Refactor Spark para mais detalhes.Liga o espaço de trabalho do Fabric ao Git. Ligue o seu espaço de trabalho Fabric a um novo ramo ou pasta no seu repositório (Definições do Espaço de Trabalho>Controlo de Versão>Integração Git). Utilize um ramo ou pasta separado(a) do seu conteúdo do Synapse para evitar conflitos. Compromete o conteúdo do espaço de trabalho do Fabric para preencher o novo branch.
Configurar canais de implantação (opcional). Configurar Fabric pipelines de implementação (Dev → Test → Prod) para CI/CD em curso. O Fabric suporta a ligação automática para casas de lago padrão e ambientes anexados ao serem implantados entre estágios.
Tip
Manter o teu branch do Synapse Git intacto como referência histórica. Crie um novo ramo ou pasta para conteúdo do Fabric. Fabric armazena os notebooks como ficheiros fonte (.py para PySpark) em vez de JSON, que fornece diferenciais Git mais limpos para revisão de código.
Refatorar código Spark
Depois de migrares os teus notebooks e definições de trabalhos no Spark, precisas de corrigir padrões de código que o Assistente de Migração não consegue converter automaticamente. Esta secção orienta-o na substituição de APIs específicas do Synapse, atualização de caminhos de ficheiros e alteração de padrões de credenciais para funcionar com o Fabric.
Auditoria pré-refatoração
Antes de abordar padrões individuais de refatoração, execute uma pesquisa em toda a base de código em todos os cadernos para identificar código específico do Synapse que necessite de alterações.
| Padrão de Pesquisa | Category | Ação necessária |
|---|---|---|
spark.synapse.linkedService |
Serviços Vinculados | Remover; substituir por autenticação direta do endpoint ou credenciais do Key Vault |
getSecretWithLS |
Credenciais | Substituir por getSecret(vaultUrl, secretName) |
TokenLibrary |
Token/Auth | Remover; usar configuração direta de OAuth ou notebookutils |
synapsesql |
SQL Connector | Substituir spark.read.synapsesql() por leituras em formato Delta |
mssparkutils |
Spark Utils | Substituir por notebookutils (a maioria das APIs idênticas) |
spark.catalog.listDatabases |
API de catálogo | Substituir por spark.sql("SHOW DATABASES") |
spark.catalog.currentDatabase |
API de catálogo | Substituir por spark.sql("SELECT CURRENT_DATABASE()") |
spark.catalog.getDatabase |
API de catálogo | Substituir por spark.sql("DESCRIBE DATABASE ...") |
spark.catalog.listFunctions |
API de catálogo | Não é suportado no Fabric — remova |
spark.catalog.registerFunction |
API de catálogo | Não suportado — use spark.udf.register() em vez disso |
spark.catalog.functionExists |
API de catálogo | Não suportado no Fabric — remover |
LinkedServiceBasedTokenProvider |
Fornecedor de Autorização | Substituir por ClientCredsTokenProvider |
getPropertiesAsMap |
Serviços Vinculados | Remover; configurar diretamente a conta de armazenamento |
spark.storage.synapse |
Serviços Vinculados | Remover — não suportado no Fabric |
/user/trusted-service-user/ |
Caminhos de ficheiros | Substituir por caminho OneLake ou caminho de atalho |
cosmos.oltp |
Cosmos DB | Atualização para usar o Key Vault para secretos em vez de serviço vinculado |
kusto.spark.synapse |
Kusto/ADX | Substituir a autenticação do serviço associado por accessToken via getToken() |
Tip
Executa estas pesquisas em todo o repositório do teu caderno antes da migração. Portáteis sem correspondências são seguros para serem migrados como estão. Os cadernos com correspondências devem ser priorizados para refatoração de código, utilizando as orientações detalhadas nas secções seguintes.
Utilização do caminho de ficheiro
Atualize os cadernos Synapse que utilizam caminhos relativos ou caminhos de armazenamento geridos pelo Synapse para utilizarem caminhos diretos abfss:// ou caminhos OneLake em Fabric.
| Antes (Sinapse) | Após (Fabric) |
|---|---|
"abfss://...@<synapse_storage>.dfs.core.windows.net/user/trusted-service-user/deltalake" |
"abfss://<workspace_id>@onelake.dfs.fabric.microsoft.com/<lakehouse_id>/Tables/deltalake" |
spark.read.synapsesql("<pool>.<schema>.<table>") |
spark.read.format("delta").load("abfss://.../<lakehouse>/Tables/<table>") |
Tip
Substituir todos os caminhos de armazenamento geridos pelo Synapse por caminhos OneLake (abfss://<workspace_id>@onelake.dfs.fabric.microsoft.com/<item_id>/...). Em vez disso, para dados ADLS Gen2, crie atalhos OneLake e consulte os caminhos de atalho.
API do Catálogo Spark
Fabric não oferece suporte a diversos métodos spark.catalog. Substitui-os por equivalentes SQL do Spark.
| Antes (Sinapse) | Após (Fabric) |
|---|---|
spark.catalog.listDatabases() |
spark.sql("SHOW DATABASES").show() |
spark.catalog.currentDatabase() |
spark.sql("SELECT CURRENT_DATABASE()").first()["current_database()"] |
spark.catalog.getDatabase(db_name) |
spark.sql(f"DESCRIBE DATABASE {db_name}").show() |
spark.catalog.listFunctions() |
Não suportado no Fabric — remover ou pular |
spark.catalog.registerFunction(name, fn) |
Não suportado em Fabric — use spark.udf.register() em vez disso |
spark.catalog.functionExists(name) |
Não suportado no Fabric — remover ou pular |
Note
Métodos de tabela spark.catalog como createTable(), tableExists() e listTables() funcionam normalmente em Fabric. Apenas os métodos de catálogo ao nível da base de dados e ao nível da função requerem refatoração.
MSSparkUtils e NotebookUtils
Substitua as chamadas mssparkutils pelas equivalentes de Fabric notebookutils. As alterações mais comuns relacionadas com credenciais são:
| Antes (Sinapse) | Após (Fabric) |
|---|---|
mssparkutils.credentials.getSecretWithLS("sampleLS", secretKey) |
notebookutils.credentials.getSecret("https://<vault>.vault.azure.net/", secretKey) |
TokenLibrary.getSecret("foo", "bar") |
notebookutils.credentials.getSecret("https://foo.vault.azure.net/", "bar") |
Em Fabric, a recuperação secreta baseada em serviços ligados (getSecretWithLS) não é suportada. Em vez disso, consulte diretamente o URL Key Vault usando notebookutils.credentials.getSecret(vaultUrl, secretName). O mesmo padrão aplica-se às TokenLibrary.getSecret() chamadas.
Note
A maioria dos métodos mssparkutils.fs (por exemplo, ls, cp, mv, rm, mkdirs, head) funcionam de forma idêntica a notebookutils.fs em Fabric. As principais alterações são métodos de credenciais e segredos, e notebook.run() referências de caminho.
Azure Data Explorer (Kusto) connector
Os cadernos Synapse que se ligam ao Azure Data Explorer (Kusto) através de serviços ligados devem ser refatorados para usar autenticação direta de endpoint.
| Antes (Sinapse) | Após (Fabric) |
|---|---|
.option("spark.synapse.linkedService", "AzureDataExplorer1") |
Remover referência de serviço vinculado |
| Ler com opções de serviço ligado definidas | .option("accessToken", notebookutils.credentials.getToken("https://<cluster>.kusto.windows.net")) |
Substitua a opção de serviço ligado por uma opção accessToken. Utilize notebookutils.credentials.getToken() para obter um token para o endpoint do seu cluster Kusto. As restantes opções de consulta (kustoDatabase, kustoQuery) permanecem inalteradas.
Conector Cosmos DB
Atualize as ligações do Cosmos DB no Synapse que utilizam serviços vinculados ou getSecretWithLS.
| Antes (Sinapse) | Após (Fabric) |
|---|---|
.option("spark.synapse.linkedService", "CosmosDbLS") |
Remover referência de serviço vinculado |
mssparkutils.credentials.getSecretWithLS("cosmosKeyLS", "cosmosKey") |
notebookutils.credentials.getSecret("https://<vault>.vault.azure.net/", "cosmosKey") |
Substitua a referência de serviço associado por uma configuração direta do endpoint do Cosmos DB. Armazene a chave da conta da base de dados Cosmos no Azure Key Vault e recupere-a usando notebookutils.credentials.getSecret(vaultUrl, secretName) em vez de getSecretWithLS().
Referências de serviços ligadas
Substitua todas as referências de serviços associados ao Synapse no Fabric.
| Antes (Sinapse) | Após (Fabric) |
|---|---|
spark.conf.set("spark.storage.synapse.linkedServiceName", ls_name) |
Remover — não suportado no _Fabric_ |
spark.conf.set("fs.azure.account.oauth.provider.type", "com.microsoft.azure.synapse.tokenlibrary.LinkedServiceBasedTokenProvider") |
spark.conf.set("fs.azure.account.oauth.provider.type", "org.apache.hadoop.fs.azurebfs.oauth2.ClientCredsTokenProvider") |
TokenLibrary.getPropertiesAsMap(linked_service_cfg) |
Remover — usar cadeia de conexão direta ou configuração de principal de serviço |
No Fabric, não existem serviços ligados. Substituir o fornecedor de tokens Synapse por credenciais padrão de cliente OAuth (principal de serviço). Configure fs.azure.account.auth.type, oauth.provider.type, client.id, client.secret e client.endpoint diretamente usando spark.conf.set().
Biblioteca de tokens
A funcionalidade TokenLibrary do Synapse para obter tokens e ler as propriedades de serviços vinculados não está disponível no Fabric. Substitua por padrões equivalentes.
| Antes (Sinapse) | Após (Fabric) |
|---|---|
TokenLibrary.getPropertiesAsMap(serviceConnection) |
Remover — configurar diretamente a conta de armazenamento |
val my_account = conexion("Endpoint").toString.substring(8) |
val my_account = "<storage_account_name>" // Hardcode or retrieve via notebookutils |
mssparkutils.fs.head(internalPath, Int.MaxValue) |
notebookutils.fs.head(internalPath, Int.MaxValue) |
Para o acesso ADLS Gen2 baseado em OAuth, configure diretamente as credenciais do principal de serviço usando spark.conf.set() com as chaves específicas da conta de armazenamento (por exemplo, fs.azure.account.auth.type.<account>.dfs.core.windows.net), em vez de depender de fornecedores de tokens de serviço ligados.
Importante
Revise todos os cadernos para referências aos serviços vinculados antes da migração. No entanto, quaisquer chamadas spark.synapse.linkedService, TokenLibrary ou getSecretWithLS falham em tempo de execução no Fabric.
Migração da definição de tarefa Spark
As definições de trabalhos Spark (SJDs) são configurações de trabalhos em lote que referenciam um ficheiro executável principal (.py, .jar, ou .R), bibliotecas de referência opcionais, argumentos de linha de comandos e um contexto lakehouse. Embora o Spark Assistente de Migração gere automaticamente a migração de SJDs, diferenças importantes entre os SJDs Synapse e Fabric exigem atenção.
Principais diferenças entre os SJDs Synapse e Fabric
Contexto de Lakehouse é necessário. No Fabric, cada SJD deve ter pelo menos uma casa de lago associada. Este lakehouse serve como sistema de ficheiros predefinido para o ambiente de execução do Spark. Qualquer código que utilize caminhos relativos lê e escreve a partir do lakehouse padrão. No Synapse, os SJDs utilizam o armazenamento padrão do workspace (ADLS Gen2) como sistema de ficheiros predefinido.
Línguas suportadas. O Fabric suporta PySpark (Python), Spark (Scala/Java) e SparkR. .NET para Spark (C#/F#) não é suportado no Fabric. Tens de reescrever estas cargas de trabalho em Python ou Scala antes da migração.
Políticas de tentativas. Os SJDs do Fabric suportam políticas de repetição integradas, como o número máximo de tentativas e o intervalo entre tentativas. Esta funcionalidade é útil para trabalhos de Streaming Estruturado Spark que precisam de funcionar indefinidamente.
Vinculação ambiental. No Synapse, os SJDs ligam-se a um pool de Spark. No Fabric, os SJDs ligam-se a um Ambiente, que contém configuração de pool, bibliotecas e propriedades do Spark. O Assistente de Migração mapeia automaticamente as referências do pool Synapse para os Ambientes Fabric.
Agendamento. Fabric SJDs têm agendamento incorporado (Definições>Agendar) sem necessidade de um pipeline separado. No Synapse, o agendamento SJD requer um pipeline com uma atividade Spark Job. Se tiver fluxos de trabalho do Synapse que apenas ativam SJDs, considere usar o agendamento de SJD incorporado no Fabric em vez de migrar o fluxo de trabalho.
Importação/exportação. O Synapse suporta importação e exportação JSON baseadas em interface para SJDs. O Fabric não suporta importação ou exportação de interfaces. Use o Spark Assistente de Migração ou a API Fabric REST para criar ou atualizar SJDs programaticamente.
Refatorar código SJD
Os mesmos padrões de refatoração de código neste artigo aplicam-se aos ficheiros principais SJD. As alterações dividem-se em duas categorias.
Alterações ao código-fonte (dentro do ficheiro principal .py, .jar ou .R):
- Substitui
mssparkutilspornotebookutilspara operações de credencial e sistema de ficheiros. - Atualize os caminhos de ficheiros codificados fixamente no código para caminhos OneLake
abfss://ou caminhos de atalho, quando necessário. SJDs que utilizam apenas caminhos relativos em relação ao lakehouse padrão podem não necessitar de alterações. - Substituir as referências de serviço ligadas no código por Key Vault secrets ou Fabric Connections.
Note
As Ligações DMTS ainda não são suportadas nas definições de tarefas do Fabric Spark (suportadas apenas em cadernos). Se o teu código SJD usar DMTS, refatora para usar autenticação direta de endpoint.
Alterações na configuração SJD (nas definições do item Fabric SJD):
- Verifique se os caminhos ADLS Gen2 referenciados pelos ficheiros de definição principal ainda estão acessíveis a partir do espaço de trabalho do Fabric. Se os ficheiros foram armazenados no armazenamento interno do espaço de trabalho Synapse, recarregue-os para o SJD do Fabric ou mova-os para uma localização ADLS Gen2 acessível.
- Verifique se todos os ficheiros de referência (
.py,.R,.jar) estão acessíveis após a migração. Volte a carregar quaisquer ficheiros que estivessem armazenados no espaço de trabalho do Synapse, armazenamento interno. - Se os argumentos da linha de comandos contiverem caminhos ou cadeias de ligação específicas do Synapse, atualize-os para equivalentes ao Fabric.
Migrar pools, ambientes e bibliotecas
Depois de os seus cadernos e definições de funções no Spark serem migrados, precisa de decidir a estratégia de pool e ambiente. Esta secção explica quando pode usar Fabric Starter Pools (em vez de migrar), quando criar ambientes personalizados e como identificar e resolver lacunas de compatibilidade de bibliotecas.
Migração do Spark Pool
Piscinas Iniciais de Fabricação
Os Fabric Starter Pools proporcionam arranque de sessões Spark em segundos — uma melhoria significativa em relação aos pools Synapse Spark, que requerem minutos para arranques a frio e iniciar clusters. Os Starter Pools estão prontos a ser usados a partir da plataforma e não requerem configuração.
Tip
Se o seu pool Synapse Spark não tem configurações personalizadas, nem bibliotecas personalizadas, nem requisitos específicos de tamanho de nó para além do Medium — não migre o pool. Em vez disso, deixe que os seus cadernos e definições de funções do Spark usem as definições padrão do Starter Pool do espaço de trabalho do Fabric. Esta abordagem dá-lhe os tempos de arranque mais rápidos e zero sobrecarga de gestão do pool. Só crie um Pool ou Ambiente Personalizado quando tiver uma necessidade específica.
Quando criar um pool ou ambiente personalizado
Crie um pool personalizado e/ou ambiente Fabric apenas quando a sua carga de trabalho exigir:
- Um tamanho específico de nó (Pequeno, Grande, XLarge, XXLarge) diferente do Médio padrão.
- Bibliotecas personalizadas (pacotes pip, pacotes conda, JARs, rodas) que não estão no runtime incorporado do Fabric.
- Propriedades personalizadas do Spark (por exemplo,
spark.sql.shuffle.partitions,spark.executor.memory) para além dos predefinidos. - Endereços Privados Geridos para o acesso a fontes de dados privadas (requer Custom Pools).
- Uma versão específica de runtime do Spark diferente do padrão do workspace.
Configuração e migração de bibliotecas
Migre configurações e bibliotecas do Spark para Ambientes Fabric.
Para etapas detalhadas sobre a migração de bibliotecas para Ambientes Fabric, veja Migrar Bibliotecas Spark de Azure Synapse para Fabric.
Exportar configurações do Spark. No Synapse Studio, vá para Gerir>Spark Pools> selecione o pool >Configurações + Bibliotecas> descarregar como
.yml/.conf/.json.Importar para o Ambiente No Fabric, cria um artefacto de Ambiente. ** Vá para Spark Compute>Propriedades do Spark>Carregue o ficheiro
Sparkproperties.ymlexportado.Migrar bibliotecas. Para bibliotecas ao nível do pool, carregue pacotes (wheels, JARs, tars) para a secção de bibliotecas do Ambiente. Para pacotes PyPI/Conda, adicione-os à configuração da biblioteca pública do Ambiente.
Importante
As definições de biblioteca ao nível do espaço de trabalho no Fabric estão obsoletas. Migre todas as bibliotecas para artefactos de Ambiente. A migração remove permanentemente as configurações existentes ao nível do espaço de trabalho — descarregue todas as definições antes de ativar os Ambientes.
Compatibilidade da biblioteca: Synapse vs. Fabric
O Fabric Runtime 1.3 (Spark 3.5) vem com 223 bibliotecas Python, 183 Java/Scala e 135 R integradas. A maioria das bibliotecas Synapse está disponível no Fabric, mas existem lacunas que podem causar falhas em tempo de execução se não forem resolvidas antes da migração.
Para identificar quais as bibliotecas que os seus cadernos usam realmente, execute estas verificações antes de rever as tabelas de lacunas:
-
Python notebooks: Procure instruções
importefrom ... importem todos os ficheiros.py/.ipynb. -
Java/Scala notebooks e SJDs: Procura instruções
importe coordenadas Maven; procura pacotes comocom.azure.cosmos.sparkoucom.microsoft.kusto.spark. -
Exportar lista completa de dependências: Executar
pip freezenum caderno Synapse, comparar com o manifesto Fabric Runtime 1.3. Só as bibliotecas que aparecem tanto na suapip freezesaída como nas tabelas de lacunas abaixo precisam de intervenção. - Bibliotecas personalizadas ao nível de Pool e ao nível de espaço de trabalho: No Synapse Studio, vá a Manage>Apache Spark Pools> selecione o pool >Packages para ver as bibliotecas personalizadas que precisam de ser recarregadas no ambiente Fabric.
Bibliotecas Python em falta no Fabric
| Category | Bibliotecas | Ação |
|---|---|---|
| CUDA / GPU (9 libras) | libcublas, libcufft, libcufile, libcurand, libcusolver, libcusparse, libnpp, libnvfatbin, libnvjitlink, libnvjpeg | Não disponível — o Fabric não suporta pools de GPU. Refatorar as cargas de trabalho da GPU para usar alternativas baseadas em CPU ou manter o Synapse. |
| Clientes HTTP / API | httpx, httpcore, h11, google-auth, jmespath | Instalar via Ambiente: pip install httpx google-auth jmespath |
| ML / Interpretabilidade | interpretar, interpretar-núcleo | Instalar via Ambiente: pip install interpret |
| Serialização de dados | Marshmallow, jsonpickle, frozendict, fixedint | Instale via Ambiente se necessário: pip install marshmallow jsonpickle |
| Registo / Telemetria | fluent-logger, humanfriendly, library-metadata-cooker, impulse-python-handler | fluent-logger: instalar se for usado. Outros são internos ao Synapse — provavelmente não necessários. |
| Componentes internos de Jupyter | jupyter-client, jupyter-core, jupyter-ui-poll, jupyterlab-widgets, ipython-pygments-lexers | A Fabric gere internamente a infraestrutura Jupyter. Estas bibliotecas geralmente não são necessárias no código do utilizador. |
| Bibliotecas de sistema / C | libgcc, libstdcxx, libgrpc, libabseil, libexpat, libnsl, libzlib | Bibliotecas de sistema de baixo nível. Normalmente não são importados diretamente. Só instala se tiveres extensões C que dependam delas. |
| Arquivo / concorrência | Filelock, FSSSPEC, Knack | Instalar através do Ambiente caso seja utilizado: pip install filelock fsspec |
Bibliotecas Java/Scala ausentes no Fabric
| Biblioteca | Versão Synapse | Ação |
|---|---|---|
| Azure-cosmos-analytics-spark | 2.2.5 | Instale como um JAR personalizado no Ambiente Fabric se os seus trabalhos Spark usarem o conector de análise do Cosmos DB. |
| junit-jupiter-params | 5.5.2 | Biblioteca apenas para testes. Não é necessário em cadernos de produção. |
| junit-platform-commons | 1.5.2 | Biblioteca apenas para testes. Não é necessário em notebooks de produção. |
Bibliotecas R
Só há uma diferença: o Synapse inclui o pacote lightgbm R (v4.6.0) que não está no Fabric. Instala via Ambiente se necessário. Fabric adiciona FabricTelemetry (v1.0.2), que é interno ao Fabric.
Diferenças notáveis nas versões
Existem 68 bibliotecas Python em ambas as plataformas, mas com versões diferentes. A maioria são diferenças menores de versão, mas 17 têm saltos de versão maiores que podem afetar o comportamento.
| Biblioteca | Versão Fabric | Versão Synapse | Impact |
|---|---|---|---|
| libxgboost | 2.0.3 | 3.0.1 | A API do XGBoost muda entre a v2 e a v3. Testar o código de treino/previsão do modelo. |
| frasco | 2.2.5 | 3.0.3 | A Flask 3.x tem alterações que falham. Se estiveres a servir APIs Flask a partir de notebooks, testa cuidadosamente. |
| LXML | 4.9.3 | 5.3.0 | Pequenas alterações na API. Testar workflows de parsing XML. |
| libprotobuf | 3.20.3 | 4.25.3 | O Protobuf 4.x tem alterações críticas para definições personalizadas no Protobuf. |
| markupsafe | 2.1.3 | 3.0.2 | O MarkupSafe 3.x deixa de suportar Python 3.7, mas a API é compatível. |
| libpq | 12.17 | 17.4 | Biblioteca cliente PostgreSQL. Salto de versão principal — testar as ligações da base de dados. |
| libgcc-ng / libstdcxx-ng | 11.2.0 | 15.2.0 | Duração do GCC. Pode afetar a compatibilidade das extensões C. |
Note
O Synapse geralmente disponibiliza versões mais recentes de bibliotecas a nível de sistema (GCC, protobuf, libpq), enquanto o Fabric disponibiliza versões mais recentes de bibliotecas de dados/ML (mais pacotes Python no geral). Se precisares de uma versão específica, fixa-a na tua configuração do Fabric Environment.
Tip
Faça uma verificação rápida de compatibilidade: exporte a lista de bibliotecas do seu pool Synapse (pip freeze), compare com o manifesto do Fabric Runtime 1.3 e pré-instale quaisquer bibliotecas em falta no seu ambiente Fabric antes de executar os notebooks migrados. Para uma comparação linha a linha de cada biblioteca e versão incorporada entre os tempos de execução do Fabric e do Synapse Spark, consulte o repositório GitHub microsoft/synapse-spark-runtime.