Compartilhar via


Repositórios de recursos do Databricks Online

Important

Esse recurso está na Versão Prévia Pública e está disponível nas seguintes regiões:

westus, westus2, eastus, eastus2, northeurope, , westeurope, , australiaeast, brazilsouth, canadacentral, centralindia, , centralus, southcentralus, , southeastasiauksouth

Os Repositórios de Recursos do Databricks Online são uma solução escalonável e de alto desempenho para fornecer dados de recursos a aplicativos online e modelos de machine learning em tempo real. Alimentado pelo Databricks Lakebase, ele fornece acesso de baixa latência aos dados de características em grande escala, mantendo a consistência com suas tabelas de características offline.

Os principais casos de uso para Repositórios de Recursos Online incluem:

Requirements

Os Repositórios de Recursos do Databricks Online exigem o Databricks Runtime 16.4 LTS ML ou superior. Você também pode usar a computação sem servidor.

Para usar os Repositórios de Recursos do Databricks Online, primeiro instale o pacote. As seguintes linhas de código devem ser executadas sempre que um notebook é executado:

%pip install databricks-feature-engineering>=0.13.0
dbutils.library.restartPython()

Criar uma loja online

Ao criar uma loja online, você provisiona uma infraestrutura gerenciada altamente disponível para servir funcionalidades em tempo real. Confira os preços do Lakebase para obter detalhes. Para gerenciar custos, exclua repositórios online quando não estiver em uso para desenvolvimento e teste.

Para criar um novo repositório de recursos online:

from databricks.feature_engineering import FeatureEngineeringClient

# Initialize the client
fe = FeatureEngineeringClient()

# Create an online store with specified capacity
fe.create_online_store(
    name="my-online-store",
    capacity="CU_2"  # Valid options: "CU_1", "CU_2", "CU_4", "CU_8"
)

As opções de capacidade correspondem a diferentes camadas de desempenho "_1", "_2", "_4" e "_8". Cada unidade de capacidade aloca cerca de 16 GB de RAM para a instância do banco de dados, juntamente com todos os recursos de CPU e SSD locais associados. Ampliar aumenta esses recursos de forma linear. Para obter mais detalhes, consulte Gerenciar a capacidade da instância.

Gerenciar lojas online

O código a seguir mostra como recuperar e atualizar repositórios online:

# Get information about an existing online store
store = fe.get_online_store(name="my-online-store")
if store:
    print(f"Store: {store.name}, State: {store.state}, Capacity: {store.capacity}")

# Update the capacity of an online store
updated_store = fe.update_online_store(
    name="my-online-store",
    capacity="CU_4"  # Upgrade to higher capacity
)

Adicionar réplicas de leitura a um repositório online

Ao criar ou atualizar um repositório online, você pode adicionar réplicas de leitura ao repositório online especificando o read_replica_count parâmetro. O tráfego de leitura é distribuído automaticamente entre réplicas de leitura, reduzindo a latência e melhorando o desempenho e a escalabilidade para cargas de trabalho de alta simultaneidade.

Publicar uma tabela de recursos em um repositório online

Depois que sua loja online estiver no estado DISPONÍVEL , você poderá publicar tabelas de recursos para disponibilizá-las para acesso de baixa latência. Examine a tabela abaixo para garantir que a tabela offline de origem tenha sido criada corretamente para o caso de uso em tempo real.

Caso de uso Criar a tabela de recursos offline usando este método
Somente os valores de características mais recentes de cada ID de entidade estão disponíveis na loja online para aplicativos em tempo real. Várias linhas com o mesmo valor de chave primária, mas valores de chave de série temporal diferentes podem existir na fonte de dados offline e serão deduplicados no pipeline de publicação.
Esse caso é usado com mais frequência para o serviço de modelos online ou para o fornecimento de recursos em pontos de extremidade.
Criar tabela com designação de série temporal
Os valores de características de séries temporais mais recentes e todos os anteriores da tabela offline estão disponíveis na loja online para acesso por aplicativos em tempo real.
Todas as linhas da tabela de origem (offline) são publicadas sem remoção de duplicatas. Isso é usado com pouca frequência, mas pode ser necessário quando endpoints consultam features por ID de entidade e data/carimbo de data/hora exatos para validação dos dados ou back-testing.
Criar tabela sem designação de série temporal

Pré-requisitos para publicação em lojas online

Todas as tabelas de recursos (com ou sem série temporal) devem atender a esses requisitos antes da publicação:

  1. Restrição de chave primária: necessária para publicação de loja online
  2. Chaves primárias não anuláveis: as colunas de chave primária não podem conter valores NULL
  3. Change Data Feed habilitado: necessário para sincronização de loja virtual. Consulte Habilitar Change Data Feed
-- Enable CDF if not already enabled
ALTER TABLE catalog.schema.your_feature_table
SET TBLPROPERTIES ('delta.enableChangeDataFeed' = 'true');

-- Ensure primary key columns are not nullable
ALTER TABLE catalog.schema.your_feature_table
ALTER COLUMN user_id SET NOT NULL;

Publicar uma tabela de recursos

Para publicar uma tabela de recursos em uma loja online:

from databricks.ml_features.entities.online_store import DatabricksOnlineStore

# Get the online store instance
online_store = fe.get_online_store(name="my-online-store")

# Publish the feature table to the online store
fe.publish_table(
    online_store=online_store,
    source_table_name="catalog_name.schema_name.feature_table_name",
    online_table_name="catalog_name.schema_name.online_feature_table_name"
)

A publish_table operação faz o seguinte:

  1. Crie uma tabela na loja online se ela não existir.
  2. Sincronize os dados do recurso da tabela de recursos offline com o repositório online.
  3. Configure a infraestrutura necessária para manter o repositório online em sincronia com a tabela offline.

Atualizar continuamente os recursos online

Se publish_table for chamado com streaming=True, a tabela online será configurada com um pipeline de streaming para atualizar continuamente o armazenamento online à medida que novos dados chegam à tabela de características offline.

Agendar atualizações para recursos online

Para atualizar periodicamente as funcionalidades em uma tabela online, crie um Trabalho do Lakeflow agendado que seja executado publish_table. O trabalho atualiza automaticamente a tabela e atualiza incrementalmente os recursos online. Consulte Trabalhos do Lakeflow.

Excluir uma tabela online

Para excluir uma tabela online, use o comando DROP TABLE SQL do Databricks ou use o comando SDK do Python para excluir uma tabela sincronizada.

Note

Excluir a tabela online do Catálogo do Unity desregissa a tabela e interrompe as atualizações de dados. No entanto, a tabela permanece no banco de dados Postgres subjacente. Para liberar espaço em sua instância de banco de dados, conecte-se à instância e use o DROP TABLE comando.

Explorar e consultar recursos online

Depois que o status da tabela publicada for exibido como "DISPONÍVEL", você poderá explorar e consultar os dados do recurso de várias maneiras:

UI do Catálogo do Unity: navegue até a tabela online no Catálogo do Unity para exibir dados de exemplo e explorar o esquema diretamente na UI. Isso fornece uma maneira conveniente de inspecionar os dados do recurso e verificar se o processo de publicação foi concluído com êxito.

Editor de SQL: para consultas e exploração de dados mais avançadas, você pode usar o editor de SQL para executar consultas PostgreSQL em suas tabelas de recursos online. Isso permite que você execute consultas complexas, junções e análises em seus dados de recurso. Para obter instruções detalhadas sobre como usar o editor do SQL com repositórios online, consulte Acessar uma instância de banco de dados do editor do SQL.

Usar recursos online em aplicativos em tempo real

Para fornecer recursos a aplicativos e serviços em tempo real, crie um ponto de extremidade de entrega de recursos. Consulte pontos de extremidade de Serviço de Recursos.

Modelos treinados usando recursos do Databricks rastreiam automaticamente a linhagem para os recursos nos quais foram treinados. Quando implantados como pontos de extremidade, esses modelos usam o Unity Catalog para encontrar funcionalidades apropriadas em lojas online. Para obter detalhes, consulte Usar recursos em fluxos de trabalho online.

Excluir uma loja online

Para excluir um repositório online:

fe.delete_online_store(name="my-online-store")

Note

Excluir uma tabela publicada online pode levar a falhas inesperadas em dependências downstream. Antes de excluir uma tabela, você deve garantir que seus recursos online não sejam mais usados por serviço de modelo ou recurso que atende pontos de extremidade.

Melhores práticas de otimização de custos

  • Reutilizar lojas online: você pode publicar várias tabelas de funcionalidades em uma única loja online. Para cenários de desenvolvimento, teste e treinamento, recomendamos compartilhar uma loja online em vários projetos ou usuários, em vez de criar repositórios separados.
  • Capacidade de tamanho certo: comece com CU_1 para teste e só aumente a escala quando os requisitos de desempenho exigirem.
  • Excluir lojas online que não estão em uso: as lojas online incorrem continuamente em custos. Exclua lojas online que não são mais necessárias.

Limitations

  • O número máximo de réplicas de leitura para um repositório de recursos online do Databricks é 2. Entre em contato com sua equipe de conta do Databricks para aumentar o limite.
  • Não há suporte para os seguintes parâmetros ao publicar em um repositório de recursos online do Databricks: filter_condition, , checkpoint_location, modee triggerfeatures.
  • Há suporte apenas para tabelas de recursos no Catálogo do Unity.
  • O único modo de publicação com suporte é "merge".
  • Não há suporte para redimensionamento a zero para lojas online.

Notebook de exemplo

O notebook a seguir mostra um exemplo de como configurar e acessar um Repositório de Recursos do Databricks Online usando o Databricks Lakebase.

Repositório de recursos online com o notebook Lakebase

Obter laptop

Recursos adicionais

  • Entenda a arquitetura e as funcionalidades do Lakebase .