Compartilhar via


Gerenciar bibliotecas em ambientes Fabric

Microsoft Fabric ambientes fornecem configuração flexível para executar trabalhos do Spark. As bibliotecas fornecem código reutilizável para notebooks e definições de trabalho do Spark. Além das bibliotecas internas que vêm com cada runtime do Spark, você pode instalar bibliotecas públicas e personalizadas em ambientes Fabric.

Observação

Navegue até o workspace onde seu ambiente está localizado, selecione as opções de gerenciamento de ambiente e biblioteca localizadas no painel de navegação esquerdo. Se você não tiver um ambiente criado, consulte Criar, configurar e usar um ambiente em Fabric.

Bibliotecas internas

Em Fabric, cada versão de runtime vem pré-carregada com um conjunto de bibliotecas internas que são otimizadas para desempenho, compatibilidade e segurança em Python, R, Java e Scala. A página bibliotecas internas no ambiente permite que você navegue e pesquise essas bibliotecas pré-instaladas com base no runtime selecionado.

Essas bibliotecas são instaladas por padrão em todos os ambientes e não podem ser alteradas. Elas estarão disponíveis se você executar o notebook ou a definição de trabalho do Spark nesse ambiente.

Para exibir a lista de pacotes pré-instalados e suas versões para cada runtime, consulte Apache Spark runtimes no Fabric.

Observação

Abordagens por notebook, como a pasta Recursos do notebook e comandos de instalação embutidos (por exemplo, %pip install ou %conda install em uma célula de código), são manuais, com escopo de sessão ou escopo de notebook, e nenhum é afetado pela publicação do ambiente. Use-as para adições de biblioteca rápidas e pontuais durante o desenvolvimento interativo.

Importante

Fabric dá suporte a diferentes maneiras de gerenciar pacotes. Para obter mais opções e melhores práticas, consulte Gerenciamento de bibliotecas Apache Spark no Fabric. Se o seu workspace utiliza funcionalidades de rede, como proteção de acesso de saída do Workspace ou VNets Gerenciadas, o acesso a repositórios públicos, como PyPI, será bloqueado. Para obter orientações, consulte Gerenciar bibliotecas com acesso limitado a rede no Fabric. Se as versões de biblioteca internas não atenderem às suas necessidades, você poderá substituí-las especificando a versão desejada na seção do repositório externo ou carregando seus próprios pacotes personalizados.

Repositórios externos

Você pode adicionar bibliotecas de repositórios públicos como PyPI, Conda e Maven ou de repositórios privados. As opções de origem e modo de publicação diferem dependendo do tipo de repositório. Ao adicionar uma biblioteca, selecione um modo de publicação (Completo ou Rápido). Para obter detalhes sobre como cada modo funciona, consulte Selecionar modo de publicação para bibliotecas.

Captura de tela que mostra a tela Bibliotecas de repositórios externos do ambiente.

Adicionar uma biblioteca de um repositório de Python público

Os repositórios públicos permitem instalar pacotes do PyPI ou do Conda.

  1. Na guia Repositórios externos , selecione Adicionar biblioteca.

  2. Selecione Adicionar biblioteca no repositório público.

  3. Selecione a origem (PyPI ou Conda).

  4. Insira o nome da biblioteca na caixa de pesquisa. Conforme você digita, a caixa de pesquisa sugere bibliotecas populares, mas a lista é limitada. Se você não vir sua biblioteca, insira o nome completo dela.

    Captura de tela que mostra o processo de adição de uma biblioteca de um repositório público.

    Se o nome da biblioteca for encontrado, você verá as versões disponíveis.

  5. Selecione a versão e salve e publique seu ambiente.

Adicionar biblioteca do Maven

Fabric dá suporte à instalação de bibliotecas diretamente de repositórios do Maven. Para fazer isso, crie um arquivo POM que lista as dependências do Maven que você deseja instalar e carregue-o no Ambiente.

  1. Na guia Repositórios externos , selecione Importar pom.xml.

  2. Selecione o arquivo pom.xml do diretório local.

Observação

  • A importação de pom.xml tem suporte apenas no Spark 4.0 e posterior.
  • A importação de pom.xml só tem suporte no modo Completo. Nesse modo, Fabric executa a resolução de dependência e a detecção de conflitos para pacotes Maven. Se qualquer biblioteca for incompatível com o runtime, você verá um erro após a publicação.
  • Não há suporte para a importação de pom.xml em workspaces com a Proteção de Acesso de Saída habilitada. Nesses espaços de trabalho, baixe as bibliotecas necessárias do Maven e carregue-as como bibliotecas personalizadas.

Adicionar uma biblioteca de um repositório privado

Repositórios privados permitem instalar pacotes usando pip ou conda.

  1. Na guia Repositórios externos , selecione Adicionar biblioteca.

  2. Selecione Adicionar biblioteca no repositório privado.

  3. Selecione a origem (pip ou conda).

  4. Insira o nome e a versão da biblioteca. Insira o nome da biblioteca e a versão com precisão, pois não há suporte para a pesquisa de bibliotecas em repositórios privados à medida que você digita. Informações incorretas do pacote causam falha na publicação.

Adicionar bibliotecas de um Feed de Artefatos do Azure

Feeds de Artefatos do Azure podem ser limitados a um projeto (privado) ou a uma organização (pública). Fabric suporta ambos os escopos. Independentemente da visibilidade do feed em Azure DevOps, Fabric sempre se conecta por meio de uma conexão autenticada do Data Factory, portanto, você precisa configurar uma conexão mesmo para feeds públicos.

Observação

Há suporte para a instalação de bibliotecas do Azure Artifact Feed no Spark 3.5. Ele não é suportado em workspaces com Link Privado ou proteção de acesso de saída ativada.

Configurar uma conexão para o feed de artefatos do Azure

O ambiente não armazena credenciais diretamente. Em vez disso, você cria uma conexão por meio do Conector do Data Factory e faz referência a ela por ID de conexão em um arquivo YML. Saiba mais sobre Azure Artifact Feed.

  1. Selecione o ícone de engrenagem Configurações no canto superior direito do portal Fabric e, em seguida, selecione Gerenciar conexões e gateways.

    Captura de tela que mostra o ponto de entrada dos conectores de repositórios externos do ambiente.

  2. Crie uma nova conexão. Selecione + Novo e depois selecione Cloud como tipo e escolha Azure Artifact Feed (Preview) como tipo de conexão.

    Captura de tela que mostra um exemplo de criação de uma nova conexão na nuvem com Azure Feed de Artefatos (Versão Prévia) selecionada.

  3. Insira a URL do feed e um token de acesso pessoal (PAT) com o escopo de Leitura de Pacotes.

  4. Selecione Permitir Artefatos com Base em Código, como Notebooks, para que acessem esta conexão (Prévia).

    Captura de tela que mostra um exemplo de criação de uma nova tela do conector.

  5. Selecione Criar para salvar a conexão. Você deve enxergá-lo na lista de conexões.

  6. Registre a ID da conexão após a criação. Você precisará disso na próxima etapa.

Preparar e carregar um arquivo YML

Crie um arquivo YML que lista os pacotes que você deseja instalar e referencia a ID da conexão em vez da URL e das credenciais do feed. Fabric usa o ID de conexão para autenticar e extrair pacotes do seu feed no momento da publicação.

Uma configuração de pip padrão faz referência diretamente à URL do feed e às credenciais:

dependencies:
  - pip:
    - fuzzywuzzy==0.18.0
    - wordcloud==1.9.4
    - --index-url <URL_TO_THE_AZURE_ARTIFACT_FEED_WITH_AUTH>

Para Fabric, substitua a URL pela ID de conexão que você registrou anteriormente:

dependencies:
  - pip:
    - fuzzywuzzy==0.18.0
    - wordcloud==1.9.4
    - --index-url <YOUR_CONNECTION_ID>

Carregue o arquivo YML diretamente no ambiente ou alterne para o modo de exibição do editor YML e cole o conteúdo. Quando você publica o ambiente, o Fabric lê os pacotes do feed e os armazena. Se você atualizar pacotes no feed de artefatos do Azure, republique o ambiente para adotar as versões mais recentes.

Observação

  • No modo de exibição Lista, você pode adicionar, remover ou editar bibliotecas de conexões de feed existentes. Para adicionar, remover ou editar uma conexão de feed em si, alterne para o modo de exibição do editor YML e atualize o arquivo YML diretamente.
  • Você pode especificar vários feeds no arquivo YML. Fabric os pesquisa na ordem listada até que o pacote seja encontrado. Repositórios públicos, como PyPI e Conda, são pesquisados pela última vez automaticamente, mesmo que não estejam incluídos no arquivo YML.
  • Se um pacote no arquivo YML não puder ser encontrado em nenhum dos feeds listados, a publicação falhará. Verifique novamente o nome do pacote e a versão antes da publicação.

Gerenciar bibliotecas externas

Depois de adicionar bibliotecas externas, você pode gerenciá-las na seção Repositórios externos .

  • Filtro – Use um nome de pacote como palavra-chave para filtrar a lista de bibliotecas externas.
  • Atualização – Selecione uma biblioteca para atualizar seu nome, versão ou tipo de origem no modo de exibição Lista. No modo de exibição do editor YML, você também pode atualizar a ID de conexão do Azure Artifact Feed.
  • Excluir – Focalize uma linha de biblioteca para ver a opção Excluir ou selecione várias bibliotecas e selecione Excluir. Você também pode remover bibliotecas usando a exibição do editor YML.
  • Exibir dependências – passe o mouse sobre uma biblioteca de repositório público e selecione Exibir Dependências para buscar sua árvore de dependência. As informações de dependência não estão disponíveis para bibliotecas privadas ou bibliotecas de um Feed de Artefatos do Azure.
  • Exportar para .yml – exportar a lista de bibliotecas externas completa para um .yml arquivo e baixá-la para o diretório local.

Bibliotecas personalizadas

Bibliotecas personalizadas referem-se ao código criado por você ou sua organização. Fabric dá suporte a arquivos de biblioteca personalizados nos formatos .whl, .py, .jar e .tar.gz. Assim como acontece com bibliotecas externas, você escolhe um modo de publicação (Completo ou Rápido) ao carregar pacotes personalizados. Para obter detalhes, consulte Selecionar modo de publicação para bibliotecas.

Observação

Fabric dá suporte apenas a arquivos .tar.gz para a linguagem R. Utilize o formato de arquivo .whl e .py para o idioma Python.

Use os botões Carregar e Baixar na página Bibliotecas personalizadas para adicionar bibliotecas do diretório local ou baixá-las localmente.

Captura de tela que mostra a tela Bibliotecas Personalizadas do ambiente.

Para excluir uma biblioteca, passe o mouse sobre sua linha e selecione o ícone de lixeira ou selecione várias bibliotecas e selecione Excluir.

Selecionar o modo de publicação para bibliotecas

Ao adicionar bibliotecas externas ou personalizadas, você escolhe um modo de publicação. O modo completo está disponível para todas as fontes de biblioteca e tipos de carga de trabalho. O modo rápido está disponível para repositórios públicos e a maioria dos formatos de biblioteca personalizados, mas somente ao executar notebooks.

Captura de tela que mostra os diferentes modos na tela de gerenciamento da biblioteca.

A tabela a seguir mostra qual modo de publicação cada fonte de biblioteca dá suporte.

Origem da biblioteca Modo completo Modo rápido
Repositório público (PyPI/Conda) Sim Sim
Repositório privado (pip/conda) Sim No
Feed de Artefatos do Azure Sim No
Personalizado .whl, .py, .tar.gz Sim Sim
Personalizar.jar Sim No

Escolha o modo certo para suas necessidades

Use a complexidade de dependência e o tipo de carga de trabalho para decidir qual modo se ajusta.

  • O modo completo resolve dependências, valida a compatibilidade e cria um instantâneo de biblioteca estável durante a publicação. Esse instantâneo é implementado quando uma nova sessão é iniciada. Melhor para conjuntos de dependências maiores (por exemplo, mais de 10 pacotes), trabalhos de produção e pipelines. A publicação normalmente leva de 3 a 6 minutos; A inicialização da sessão adiciona de 1 a 3 minutos para implantação de dependência, dependendo do tamanho da dependência. Para manter um instantâneo estável durante o início da sessão de aproximadamente 5 segundos, use o modo Completo junto com um pool dinâmico personalizado.
  • O modo rápido ignora o processamento de dependência durante a publicação e instala pacotes na inicialização da sessão do notebook. Melhor para conjuntos de dependências mais leves, iteração rápida e experimentação em estágio inicial. A publicação é concluída em cerca de 5 segundos; A instalação da biblioteca ocorre no início da sessão.

Você pode misturar modos durante o desenvolvimento. Um padrão comum é iterar no modo rápido e, em seguida, mover as dependências validadas para o modo completo, garantindo um snapshot de produção estável. Você também pode manter um instantâneo de modo completo existente inalterado e sobrepor novos pacotes de teste no modo rápido — o instantâneo de modo completo é implantado primeiro e, em seguida, os pacotes de modo rápido são instalados por cima.

Limitações de modo e comportamento

Tenha essas restrições em mente ao trabalhar com modos de publicação.

  • O modo rápido funciona apenas com notebooks, não com definições de trabalho do Spark.
  • Para mover uma biblioteca personalizada entre os modos, baixe o arquivo, remova-o do modo atual e carregue-o no modo de destino. Não há suporte para transferências diretas entre modos.
  • Os logs de instalação não aparecem no notebook. Use Monitoramento (Nível 2) para acompanhar o progresso e solucionar problemas.
  • Quando ambos os modos contêm pacotes, o instantâneo de modo completo se aplica primeiro. Os pacotes de modo rápido são instalados na parte superior e substituem qualquer pacote de modo completo com o mesmo nome.
  • Quando os pacotes duplicados existem em todos os modos, as versões do modo rápido substituem as versões de modo completo apenas para a sessão atual do notebook. Iniciar uma nova sessão reaplica primeiro o instantâneo do modo completo; em seguida, os pacotes do modo rápido são instalados por cima.
  • Os pacotes de modo rápido são instalados quando a primeira célula de código desse idioma é executada. Por exemplo, Python pacotes são instalados quando a primeira célula Python é executada e os pacotes R são instalados quando a primeira célula R é executada.