Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Este artigo é a Fase 2 de 4 da série de práticas recomendadas para migração do Azure Synapse Spark para o Microsoft Fabric.
Use este artigo para migrar suas cargas de trabalho do Spark de Azure Synapse para 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 do Spark.
Neste artigo, você aprenderá como:
- Entenda o fluxo de trabalho de migração para workspaces Synapse padrão (sem Git) e workspaces Synapse com suporte a Git.
- Use o Spark Assistente de Migração para migrar notebooks, definições de jobs do Spark e pools.
- Refatorar padrões de código específicos do Synapse para compatibilidade com o Fabric.
- Migrar configurações, ambientes e bibliotecas do pool do Spark.
- Identifique e resolva as lacunas de compatibilidade da biblioteca entre o Synapse e o Fabric.
Migrar com o Assistente de Migração
O Spark Assistente de Migração automatiza a migração de notebooks, definições de trabalho do Spark, pools e metadados do banco de dados lake do Synapse para Fabric. O assistente copia e transforma seus itens, mas não conclui a migração– você ainda precisa refatorar o código, reconciliar lacunas de configuração e validar os resultados.
Para obter instruções passo a passo sobre como executar o assistente, consulte Spark Synapse para Fabric Spark Assistente de Migração (Prévia).
O assistente migra os seguintes itens:
- Os Spark pools são migrados para Fabric Pools e artefatos de ambiente correspondentes.
- Os notebooks e seus ambientes associados são migrados.
- As definições de trabalho do Spark são migradas com os ambientes de execução associados.
- Os bancos de dados lake são mapeados para esquemas do Fabric; as tabelas Delta gerenciadas são migradas por meio de atalhos do catálogo do OneLake.
Importante
Configurações do Spark, bibliotecas personalizadas e configurações de executor personalizado não são migradas pelo assistente. Você deve configurá-los manualmente em ambientes de Fabric. Os workspaces do Synapse em uma VNet não podem ser migrados com o assistente.
Migração de workspace padrão (não Git)
Para espaços de trabalho em que notebooks e SJDs são armazenados diretamente no Synapse (e não em um repositório Git):
Execute o Assistente de Migração do Spark em seu workspace Fabric (Migrate>Data engineering items). Selecione o workspace do Synapse de origem e migre todos os itens do Spark.
Validar dependências: verifique se a mesma versão do Spark é usada. Se os notebooks fizerem referência a outros notebooks via
mssparkutils.notebook.run(), verifique se eles também foram migrados. O Assistente de Migração preserva a estrutura da pasta (Fabric dá suporte a até 10 níveis de aninhamento).Código de refatoração: substitua
mssparkutilspornotebookutils, substitua as referências de serviço vinculado por conexões de Fabric e atualize os caminhos de arquivo. Consulte a seção Refatoração de código Spark para obter detalhes.
Migração de workspace com suporte a Git
Para workspaces em que notebooks e SJDs são armazenados em um repositório do Azure DevOps ou GitHub, observe que o Synapse e o Fabric usam diferentes formatos de serialização Git. O Synapse armazena notebooks como JSON; Fabric usa o formato de origem .py/.scala ou .ipynb. Você não pode apontar diretamente um workspace Fabric para o mesmo branch do Git do Synapse.
Migrar itens. Use o Spark Assistente de Migração para migrar notebooks e SJDs do espaço de trabalho do Synapse para um espaço de trabalho Fabric. Isso converte itens em formato compatível com Fabric.
Código de refatoração. Aplique a mesma refatoração de código que o cenário padrão : substituir
mssparkutils, atualizar caminhos de arquivo, substituir serviços vinculados. Consulte a seção Refatorar código Spark para obter detalhes.Conecte Fabric Workspace ao Git. Conecte seu workspace Fabric a uma nova ramificação ou pasta em seu repositório (Workspace Settings>Source Control>Git Integration). Use uma ramificação ou pasta separada do conteúdo do Synapse para evitar conflitos. Confirme o conteúdo do workspace Fabric para preencher o novo branch.
Configurar pipelines de implantação (opcional). Configure pipelines de deployment do Fabric (Dev → Test → Prod) para CI/CD contínuo. Fabric dá suporte à vinculação automática para lakehouses padrão e ambientes anexados ao implantar entre estágios.
Dica
Mantenha sua ramificação git do Synapse intacta como uma referência histórica. Crie um novo ramo ou pasta para conteúdo Fabric. Fabric armazena notebooks como arquivos de origem (.py para PySpark) em vez de JSON, o que fornece diffs do Git mais limpos para revisão de código.
Refatorar código spark
Depois de migrar seus notebooks e definições de trabalho do Spark, você precisa corrigir padrões de código que o Assistente de Migração não pode converter automaticamente. Esta seção orienta você pela substituição de APIs específicas do Synapse, atualização de caminhos de arquivo e alteração de padrões de credencial para trabalhar com Fabric.
Auditoria de pré-refatoração
Antes de abordar padrões de refatoração individuais, execute uma pesquisa em toda a base de código em todos os notebooks para identificar o código específico do Synapse que precisa de alterações.
| Padrão de Pesquisa | Categoria | Ação necessária |
|---|---|---|
spark.synapse.linkedService |
Serviços Vinculados | Remover; substituir por autenticação direta do ponto de extremidade ou segredos do Key Vault |
getSecretWithLS |
Credenciais | Substituir por getSecret(vaultUrl, secretName) |
TokenLibrary |
Token/Autenticação | Remover; usar configurações diretas do OAuth ou notebookutils |
synapsesql |
Conector do SQL | Substitua spark.read.synapsesql() por leituras no formato Delta |
mssparkutils |
Spark Utils |
notebookutils Substituir por (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 — deve-se remover |
spark.catalog.registerFunction |
API de catálogo | Sem suporte – use spark.udf.register() em vez disso |
spark.catalog.functionExists |
API de catálogo | Não é suportado em Fabric – remover |
LinkedServiceBasedTokenProvider |
Provedor de Autenticação | Substituir por ClientCredsTokenProvider |
getPropertiesAsMap |
Serviços Vinculados | Remover; configurar a conta de armazenamento diretamente |
spark.storage.synapse |
Serviços Vinculados | Remover — sem suporte no Fabric |
/user/trusted-service-user/ |
Caminhos de arquivo | Substituir pelo caminho ou caminho de atalho do OneLake |
cosmos.oltp |
Cosmos DB | Atualizar para usar o Key Vault para informações confidenciais em vez de um serviço vinculado |
kusto.spark.synapse |
Kusto/ADX | Substituir a autenticação do serviço vinculado por accessToken através de getToken() |
Dica
Execute essas pesquisas em todo o repositório de notebooks antes da migração. Notebooks com zero correspondências são seguros para migrar como estão. Notebooks que contenham correspondências relevantes devem ser priorizados para refatoração de código, que deve ser feita utilizando as diretrizes detalhadas nas seções a seguir.
Uso do caminho do arquivo
Atualize os notebooks do Synapse que utilizam caminhos relativos ou caminhos de armazenamento sob gestão do Synapse para usar caminhos diretos abfss:// ou caminhos do OneLake no ambiente Fabric.
| Antes (Synapse) | After (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>") |
Dica
Substitua todos os caminhos de armazenamento gerenciados pelo Synapse por caminhos do OneLake (abfss://<workspace_id>@onelake.dfs.fabric.microsoft.com/<item_id>/...). Para dados do ADLS Gen2, crie atalhos do OneLake e faça referência aos caminhos de atalho.
API do Catálogo do Spark
Fabric não dá suporte a vários métodos spark.catalog. Substitua-os por equivalentes do Spark SQL.
| Antes (Synapse) | After (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 há suporte no Fabric – remover ou ignorar |
spark.catalog.registerFunction(name, fn) |
Não há suporte em Fabric – use spark.udf.register() em vez disso |
spark.catalog.functionExists(name) |
Não é suportado pelo Fabric – remova ou ignore |
Note
spark.catalog métodos de tabela como createTable(), tableExists() e listTables() funcionam normalmente em Fabric. Somente métodos de catálogo no nível de banco de dados e de nível de função exigem refatoração.
MSSparkUtils e NotebookUtils
Substitua as chamadas mssparkutils pelos equivalentes Fabric notebookutils. As alterações mais comuns relacionadas à credencial são:
| Antes (Synapse) | After (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, não há suporte para a recuperação de segredo baseada em serviço vinculado (getSecretWithLS). Em vez disso, faça referência à URL de Key Vault diretamente usando notebookutils.credentials.getSecret(vaultUrl, secretName). O mesmo padrão se aplica a TokenLibrary.getSecret() chamadas.
Note
A maioria dos métodos mssparkutils.fs (por exemplo, ls, cp, mv, rm, mkdirs, head) funcionam de forma idêntica à notebookutils.fs em Fabric. As mudanças principais são nos métodos de credencial e segredo, e nas referências de caminho notebook.run().
conector do Azure Data Explorer (Kusto)
Os notebooks do Synapse que se conectam ao Azure Data Explorer (Kusto) por meio de serviços associados devem ser refatorados para usar a autenticação direta pelo endpoint.
| Antes (Synapse) | After (Fabric) |
|---|---|
.option("spark.synapse.linkedService", "AzureDataExplorer1") |
Remover referência de serviço vinculado |
| Ler com opções de serviço vinculadas | .option("accessToken", notebookutils.credentials.getToken("https://<cluster>.kusto.windows.net")) |
Substitua a opção de serviço vinculado por uma opção accessToken. Use notebookutils.credentials.getToken() para obter um token para o endpoint do cluster Kusto. O restante das opções de consulta (kustoDatabase, kustoQuery) permanecem inalteradas.
Conector do Cosmos DB
Atualize conexões do Cosmos DB no Synapse que utilizam serviços vinculados ou getSecretWithLS.
| Antes (Synapse) | After (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 vinculado pela configuração direta do ponto de extremidade do Cosmos DB. Armazene a chave de conta do Cosmos DB em Azure Key Vault e recupere-a usando notebookutils.credentials.getSecret(vaultUrl, secretName) em vez de getSecretWithLS().
Referências de serviço vinculado
Substitua todas as referências de serviços vinculados do Synapse no Fabric.
| Antes (Synapse) | After (Fabric) |
|---|---|
spark.conf.set("spark.storage.synapse.linkedServiceName", ls_name) |
Remover — sem suporte 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 configuração direta de string de conexão ou principal de serviço |
No Fabric, não há serviços vinculados. Substitua o provedor de token do Synapse por credenciais de cliente padrão do OAuth (principal de serviço). Configurar fs.azure.account.auth.type, oauth.provider.type, client.id, client.secrete client.endpoint diretamente usando spark.conf.set().
Biblioteca de tokens
A funcionalidade TokenLibrary do Synapse para obtenção de tokens e leitura de propriedades de serviços vinculados não está disponível no Fabric. Substitua-o por padrões equivalentes.
| Antes (Synapse) | After (Fabric) |
|---|---|
TokenLibrary.getPropertiesAsMap(serviceConnection) |
Remova e configure a conta de armazenamento diretamente |
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 acesso ao ADLS Gen2 baseado em OAuth, configure as credenciais da entidade de serviço diretamente, 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 provedores de token de serviço vinculados.
Importante
Examine todos os notebooks para referências de serviços associados antes da transição. As chamadas restantes spark.synapse.linkedService, TokenLibrary ou getSecretWithLS falham durante o tempo de execução em Fabric.
Migração da definição de tarefa do Spark
As SJDs (definições de trabalho) do Spark são configurações de trabalho em lotes que fazem referência a um arquivo executável principal (.pyou.jar.R), bibliotecas de referência opcionais, argumentos de linha de comando e um contexto lakehouse. Embora o Assistente de Migração do Spark lide com a migração do SJD automaticamente, diferenças importantes entre Synapse e SJDs de Fabric exigem atenção.
Principais diferenças entre SJDs do Synapse e do Fabric
Contexto de lakehouse necessário. Em Fabric, cada SJD deve ter pelo menos uma casa de lago associada a ela. Este lakehouse serve como o sistema de arquivos padrão para o runtime do Spark. Qualquer código que use caminhos relativos lê e grava do lakehouse padrão. No Synapse, os SJDs usam o armazenamento padrão do workspace (ADLS Gen2) como o sistema de arquivos padrão.
Idiomas com suporte. Fabric dá suporte a PySpark (Python), Spark (Scala/Java) e SparkR. .NET para Spark (C#/F#) não tem suporte no Fabric. Você deve reescrever essas cargas de trabalho em Python ou Scala antes da migração.
Políticas de nova tentativa. Fabric SJDs dão suporte a políticas de repetição embutidas, como tentativas máximas e intervalo de repetição. Esse recurso é útil para trabalhos de Streaming Estruturado do Spark que precisam ser executados indefinidamente.
Vinculação de ambiente. No Synapse, os SJDs são associados a um pool do Spark. Em Fabric, os SJDs se associam 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 do Synapse para ambientes de Fabric.
Agendamento. Fabric SJDs têm agendamento interno (Configurações>Agenda) sem precisar de um pipeline separado. No ambiente do Synapse, o agendamento do SJD requer um pipeline com uma atividade do Spark Job. Se você tiver pipelines do Synapse que só disparam SJDs, considere usar o agendamento de SJDs integrado do Fabric em vez de migrar o pipeline inteiro.
Importação/exportação. O Synapse dá suporte à importação e exportação JSON baseada em interface do usuário para SJDs. Fabric não dá suporte à importação ou exportação da interface do usuário. Use o spark Assistente de Migração ou a API REST Fabric para criar ou atualizar SJDs programaticamente.
Refatorar código SJD
Os mesmos padrões de refatoração de código neste artigo se aplicam aos arquivos principais do SJD. As alterações se enquadram em duas categorias.
Alterações no código-fonte (dentro do .py arquivo principal, .jar ou .R principal):
- Substitua
mssparkutilspornotebookutilspara operações de credencial e sistema de arquivos. - Atualize os caminhos de arquivo codificados para caminhos do OneLake
abfss://ou caminhos de atalho, quando necessário. SJDs que usam apenas caminhos relativos em relação ao lakehouse padrão podem não exigir alterações. - Substitua as referências de serviço vinculadas no código por segredos do Key Vault ou conexões do Fabric.
Note
Ainda não há suporte para conexões DMTS em definições de trabalho do Fabric Spark (com suporte apenas em notebooks). Se o código SJD usa DMTS, revise para utilizar autenticação direta de endpoint.
alterações de configuração SJD (nas configurações do item Fabric SJD):
- Verifique se os caminhos do ADLS Gen2 referenciados pelos arquivos de definição principal ainda estão acessíveis no workspace Fabric. Se os arquivos foram armazenados no armazenamento interno do workspace do Synapse, carregue-os novamente no SJD do Fabric ou mova-os para um local acessível do ADLS Gen2.
- Verifique se todos os arquivos de referência (
.py,.R, ).jarestão acessíveis após a migração. Carregue novamente todos os arquivos armazenados no armazenamento interno do workspace do Synapse. - Se os argumentos de linha de comando contiverem caminhos específicos do Synapse ou cadeias de conexão, atualize-os para Fabric equivalentes.
Migrar pools, ambientes e bibliotecas
Depois que seus notebooks e definições de trabalho do Spark forem migrados, você precisará decidir sobre a estratégia de pool e ambiente. Esta seção explica quando você pode usar Pools de Inicialização do Fabric (em vez de migrar), quando criar ambientes personalizados e como identificar e resolver problemas de compatibilidade de bibliotecas.
Migração do pool do Spark
Pools de Início do Fabric
Fabric Pools Iniciais fornecem inicialização em segundos de sessões do Spark — uma melhoria significativa em relação aos pools do Spark do Synapse, que exigem inícios a frio que levam minutos para iniciar clusters. Os Pools de Início estão prontos para uso na plataforma e não exigem nenhuma configuração.
Dica
Se o pool do Synapse Spark não tiver configurações personalizadas, nenhuma biblioteca personalizada e nenhum requisito de tamanho de nó específico além do Médio, não migre o pool. Em vez disso, permita que seus blocos de anotações e definições de trabalho do Spark usem as configurações padrão do Pool de Início do Fabric workspace. Essa abordagem oferece os tempos de inicialização mais rápidos e sobrecarga zero de gerenciamento de pool. Crie apenas um pool ou ambiente personalizado quando você tiver uma necessidade específica.
Quando criar um pool ou ambiente personalizado
Crie um Fabric pool personalizado e/ou ambiente somente quando sua carga de trabalho exigir:
- Um tamanho de nó específico (Small, Large, XLarge, XXLarge) diferente do médio padrão.
- Bibliotecas personalizadas (pacotes pip, pacotes conda, JARs, wheels) que não estão no runtime interno do Fabric.
- Propriedades personalizadas do Spark (por exemplo,
spark.sql.shuffle.partitions,spark.executor.memory) além dos padrões. - Pontos de extremidade privados gerenciados para acessar fontes de dados privadas (requer pools personalizados).
- Uma versão específica do runtime do Spark diferente do padrão do workspace.
Configuração e migração de biblioteca
Migre as configurações e bibliotecas do Spark para ambientes de Fabric.
Para obter etapas detalhadas sobre como migrar bibliotecas para ambientes de Fabric, consulte Migrate Bibliotecas Spark de Azure Synapse para Fabric.
Exportar configurações do Spark. Em Synapse Studio, vá para Gerenciar>Spark Pools> selecione o pool >Configurações + Bibliotecas> baixe como
.yml/.conf/.json.Importar para o Ambiente. Em Fabric, crie um artefato de ambiente. Vá para Spark Compute>Spark Properties>Carregar o arquivo exportado
Sparkproperties.yml.Migrar bibliotecas. Para bibliotecas no nível do pool, carregue pacotes (wheels, JARs, tars) na seção de biblioteca do Ambiente. Para pacotes PyPI/Conda, adicione-os à configuração da biblioteca pública do Ambiente.
Importante
As configurações de biblioteca no nível do workspace em Fabric são preteridas. Migre todas as bibliotecas para Artefatos de Ambiente. A migração remove permanentemente as configurações existentes ao nível de espaço de trabalho; baixe todas as configurações antes de habilitar Ambientes.
Compatibilidade de biblioteca: Synapse vs. Fabric
Fabric Runtime 1.3 (Spark 3.5) é fornecido com 223 bibliotecas Python, 183 bibliotecas Java/Scala e 135 bibliotecas R incorporadas. A maioria das bibliotecas do Synapse está disponível em Fabric, mas há lacunas que podem causar falhas de runtime se não forem tratadas antes da migração.
Para identificar quais bibliotecas seus notebooks realmente usam, execute estas verificações antes de examinar as tabelas de lacunas:
-
Python notebooks: pesquisem por instruções
importefrom ... importem todos os arquivos.py/.ipynb. -
Java/Scala notebooks e SJDs: Pesquisar instruções
importe coordenadas Maven; procure pacotes comocom.azure.cosmos.sparkoucom.microsoft.kusto.spark. -
Exportar lista completa de dependências: Execute
pip freezeem um notebook do Synapse e compare-o com o manifesto Fabric Runtime 1.3. Somente as bibliotecas que aparecem na saídapip freezee nas tabelas de disparidade abaixo precisam de ação. - Bibliotecas personalizadas no nível do pool e no nível do workspace: No Synapse Studio, vá para Gerenciar>Pools do Apache Spark> selecione pool >Pacotes para ver bibliotecas personalizadas que precisam ser recarregadas para um Ambiente do Fabric.
bibliotecas Python ausentes no Fabric
| Categoria | Bibliotecas | Ação |
|---|---|---|
| CUDA/GPU (9 libs) | libcublas, libcufft, libcufile, libcurand, libcusolver, libcusparse, libnpp, libnvfatbin, libnvjitlink, libnvjpeg | Não disponível — Fabric não dá suporte a pools de GPU. Refatore cargas de trabalho de GPU para usar alternativas baseadas em CPU ou manter no Synapse. |
| Clientes HTTP/API | httpx, httpcore, h11, google-auth, jmespath | Instalar por meio do Ambiente: pip install httpx google-auth jmespath |
| ML/Interpretabilidade | interpretar, núcleo de interpretação | Instalar por meio do Ambiente: pip install interpret |
| Serialização de dados | marshmallow, jsonpickle, frozendict, fixedint | Instale via Ambiente, se necessário: pip install marshmallow jsonpickle |
| Log / Telemetria | fluente-logger, humanfriendly, library-metadata-cooker, impulse-python-handler | fluent-logger: instalar se estiver em uso. Outros são internos do Synapse, provavelmente não são necessários. |
| Componentes Internos do Jupyter | jupyter-client, jupyter-core, jupyter-ui-poll, jupyterlab-widgets, ipython-pygments-lexers | Fabric gerencia a infraestrutura do Jupyter internamente. Essas bibliotecas geralmente não são necessárias no código do usuário. |
| Bibliotecas do sistema / C | libgcc, libstdcxx, libgrpc, libabseil, libexpat, libnsl, libzlib | Bibliotecas de sistema de baixo nível. Normalmente não importado diretamente. Instale somente se você tiver extensões C que dependem delas. |
| Arquivo/simultaneidade | filelock, fsspec, knack | Instale por meio do Ambiente, se usado: pip install filelock fsspec |
bibliotecas Java/Scala ausentes de Fabric
| Library | Versão do Synapse | Ação |
|---|---|---|
| azure-cosmos-analytics-spark | 2.2.5 | Instale como um JAR personalizado no ambiente de Fabric se os trabalhos do Spark usarem o conector de análise do Cosmos DB. |
| junit-jupiter-params | 5.5.2 | Biblioteca apenas de teste. Não é necessário em cadernos de produção. |
| junit-platform-commons | 1.5.2 | Biblioteca apenas para teste. Não é necessário em notebooks de produção. |
Bibliotecas de R
Apenas uma diferença: o Synapse inclui o pacote lightgbm R (v4.6.0) que não está em Fabric. Instale por meio do Ambiente, se necessário. Fabric adiciona FabricTelemetry (v1.0.2), que é interno do Fabric.
Diferenças de versão notáveis
Existem 68 bibliotecas Python em ambas as plataformas, mas com versões diferentes. A maioria são pequenas diferenças de versão, mas 17 têm saltos de versão principais que podem afetar o comportamento.
| Library | Versão do Fabric | Versão do Synapse | Impact |
|---|---|---|---|
| libxgboost | 2.0.3 | 3.0.1 | Alterações na API XGBoost entre v2 e v3. Testar o código de treinamento/previsão do modelo. |
| flask | 2.2.5 | 3.0.3 | O Flask 3.x tem alterações significativas. Se estiver disponibilizando APIs do Flask a partir de cadernos, teste minuciosamente. |
| lxml | 4.9.3 | 5.3.0 | Alterações de API secundárias. Testar fluxos de trabalho de análise XML. |
| libprotobuf | 3.20.3 | 4.25.3 | O Protobuf 4.x tem alterações significativas para definições de proto personalizadas. |
| markupsafe | 2.1.3 | 3.0.2 | MarkupSafe 3.x descarta suporte ao Python 3.7, mas a API é compatível. |
| libpq | 12.17 | 17.4 | Biblioteca de clientes do PostgreSQL. Salto de versão principal — testar conexões de banco de dados. |
| libgcc-ng /libstdcxx-ng | 11.2.0 | 15.2.0 | Runtime do GCC. Pode afetar a compatibilidade da extensão C. |
Note
O Synapse geralmente fornece versões mais recentes de bibliotecas de nível de sistema (GCC, protobuf, libpq), enquanto o Fabric fornece versões mais recentes de bibliotecas de dados/ML (mais pacotes Python no geral). Se precisar de uma versão específica, fixe essa versão na configuração do ambiente do Fabric.
Dica
Execute uma verificação de compatibilidade rápida: exporte a lista de bibliotecas do pool do Synapse (pip freeze), compare com o manifesto Fabric Runtime 1.3 e pré-instale as bibliotecas ausentes em seu ambiente de Fabric antes de executar notebooks migrados. Para obter uma comparação linha a linha de cada biblioteca interna e versão entre os runtimes do Fabric e do Synapse Spark, consulte o microsoft/synapse-spark-runtime GitHub repositório.
Conteúdo relacionado
- Fase 1: Estratégia e planejamento de migração
- Fase 3: Metastore do Hive e migração de dados
- Fase 4: Migração de segurança e governança
- Migrar notebooks do Azure Synapse para Fabric
- Migrar definições de trabalho do Spark do Azure Synapse para o Fabric
- Migrar pools do Spark do Azure Synapse para Fabric