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.
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. Alimentados pelo Databricks Lakebase, os Repositórios de Recursos Online fornecem acesso de baixa latência aos dados de recursos em alta escala, mantendo a consistência com suas tabelas de recursos offline.
Os principais casos de uso para Repositórios de Recursos Online incluem:
- Fornecer recursos a aplicativos em tempo real, como sistemas de recomendação, detecção de fraudes e mecanismos de personalização usando pontos de extremidade de serviço de recursos.
- Busca automática de recursos para inferência em tempo real em pontos de extremidade de serviço de modelo.
Novos repositórios de recursos online agora são criados como projetos de dimensionamento automático do Lakebase. Para obter detalhes e diferenças, consulte a unificação do Lakebase sobre o dimensionamento automático.
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 um repositório online
Ao criar uma loja online, você provisiona uma infraestrutura gerenciada altamente disponível para servir funcionalidades em tempo real. A create_online_store API cria uma instância de dimensionamento automático do Lakebase. Para obter detalhes sobre o dimensionamento automático do Lakebase, consulte Lakebase Postgres.
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", # maximum of 63 bytes
capacity="CU_2" # Valid options: "CU_1", "CU_2", "CU_4", "CU_8"
)
A capacity configuração controla a quantidade de computação que seu repositório online pode usar. Seu valor é uma Unidade de Computação Lakebase (CU). Para os tamanhos de computação disponíveis e o que uma CU inclui, consulte os tamanhos de computação disponíveis.
Para obter informações sobre permissões para instâncias de dimensionamento automático do Lakebase, consulte Conceder permissões de projeto.
Criptografia com chaves gerenciadas pelo cliente
Os feature stores online oferecem suporte à criptografia em repouso com chave gerenciada pelo cliente (CMK), graças ao suporte subjacente oferecido pelo Lakebase Autoscaling. Nenhuma configuração do Lakebase ou do Repositório de Recursos é necessária; O CMK aplica-se automaticamente a workspaces relevantes.
O CMK se aplica automaticamente quando todos os seguintes são verdadeiros:
- O workspace tem uma chave gerenciada pelo cliente configurada para serviços gerenciados. Consulte as chaves gerenciadas pelo cliente para o Lakebase.
- O repositório de recursos online é apoiado por um projeto de dimensionamento automático do Lakebase. Todos os repositórios de recursos online criados com
fe.create_online_storeapós 23 de março de 2026 usam o dimensionamento automático do Lakebase. - O projeto do Lakebase de backup foi criado depois que o suporte do CMK ficou disponível em sua região. Projetos do Lakebase criados antes disso não são criptografados com uma CMK, mesmo que o workspace habilite uma posteriormente.
O projeto lakebase que faz backup de um repositório de recursos online tem o mesmo nome da loja online. Para encontrá-lo, clique no no seletor de aplicativos, no canto superior direito do seu espaço de trabalho, para abrir o aplicativo Lakebase e localizar o projeto com esse nome. Para confirmar se o repositório está criptografado com seu CMK, verifique o cartão de status de chaves gerenciadas pelo cliente nesse projeto. Confira Verificar o status da criptografia.
Gerenciar lojas online
O código a seguir mostra como recuperar repositórios online:
# List all accessible online stores
stores = fe.list_online_stores()
for store in stores:
print(f"Store: {store.name}, State: {store.state}, Capacity: {store.capacity}")
# 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}")
Se você criou um repositório online usando fe.create_online_store, poderá atualizá-lo usando fe.update_online_store:
# Update the capacity of an online store
# Note: this does not work for an Autoscaling instance that was created using the projects API or the UI
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 de recursos online, você pode adicionar réplicas de leitura ao repositório online, especificando o parâmetro read_replica_count. 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.
Não é possível adicionar réplicas de leitura a um projeto de dimensionamento automático do Lakebase criado usando a API ou a interface de usuário.
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. A API publish_table sincroniza dados da sua tabela de recursos offline para o repositório online criado usando a API create_online_store. 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 distintos podem existir na fonte de dados offline, e com eliminação de duplicação no pipeline de publicação. Esse caso é usado com mais frequência para pontos de extremidade do serviço de modelos ou recursos online. |
Criar tabela com designação de série temporal |
| Os valores de recursos 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 eliminação de duplicação. Use isto apenas quando um endpoint precisar recuperar um valor histórico específico de atributo com base no ID da entidade e em uma data/hora exata — por exemplo, para verificar ou testar retrospectivamente previsões em relação aos valores exatos de atributos que foram retornados em um ponto específico no passado. Esta é uma pesquisa por correspondência exata em uma chave primária da cadeia de caracteres, e não uma consulta pontual no tempo (as-of) ou uma consulta de intervalo temporal. Para usar uma DATE ou TIMESTAMP coluna como uma chave de pesquisa simples (sem semântica de série temporal), altere o tipo de coluna para STRING. |
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:
- Restrição de chave primária: necessária para publicação de loja online
- Chaves primárias não anuláveis: as colunas de chave primária não podem conter valores NULL
-
Alterar o Feed de Dados ativado: obrigatório para os modos de publicação
CONTINUOUSeTRIGGERED. Consulte Usar o feed de dados de alterações para saber como habilitar o Feed de Dados de Alterações da Tabela Delta e Modos de publicação para uma explicação sobre os modos de publicação.
-- 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
# For Lakebase Autoscaling projects creating using the Lakebase API or UI,
# `name` is the last part of the resouce name: projects/{online_store_name}
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",
# for online_table_name, the catalog name, schema name, and table name each are limited to a maximum of 63 bytes
online_table_name="catalog_name.schema_name.online_feature_table_name",
# `publish_mode` argument is optional and defaults to "TRIGGERED" mode if not specified
)
A publish_table operação faz o seguinte:
- Crie uma tabela na loja online se ela não existir.
- Sincronize os dados do recurso da tabela de recursos offline com a loja online.
- Configure a infraestrutura necessária para manter o repositório online em sincronia com a tabela offline.
publish_table sempre usa a ramificação padrão do projeto de dimensionamento automático do Lakebase.
Modos de publicação
O publish_mode parâmetro determina como e quando a tabela online é atualizada com alterações da tabela de recursos offline.
Veja Modos de Sincronização para detalhes completos sobre os modos suportados.
Os modos com suporte são resumidos abaixo:
| Mode | Description |
|---|---|
TRIGGERED |
Padrão. Atualiza incrementalmente a tabela online com alterações da tabela offline usando a API ou em um agendamento. Opções para disparar a sincronização de dados periodicamente:
Esse modo exige que o Feed de Dados de Alterações seja habilitado na tabela offline. Consulte os pré-requisitos para publicação em lojas online. |
CONTINUOUS |
A tabela online é configurada com um pipeline de streaming para atualizar logo a loja online à medida que novos dados são gravados na tabela de recursos offline. |
SNAPSHOT |
Executa uma sincronização única que copia todos os dados da tabela de origem para o repositório online. Esse modo é eficiente quando há um grande número de atualizações em linhas existentes entre duas operações de sincronização. |
O publish_mode parâmetro substitui o streaming parâmetro a partir da v0.13.0.1 e versões anteriores. Para compatibilidade com versões anteriores, se streaming=True for passada, isso será equivalente a definir publish_mode="CONTINUOUS".
Excluir uma tabela online
Para excluir uma tabela online, use o SDK do Databricks:
from databricks.sdk import WorkspaceClient
w = WorkspaceClient()
w.feature_store.delete_online_table(online_table_name="catalog_name.schema_name.online_feature_table_name")
Important
Esse é o único método recomendado para excluir uma tabela online. Ele remove a tabela do Catálogo do Unity e do banco de dados. Outros métodos, como o comando DROP TABLE SQL do Databricks ou o comando SDK do Python para excluir uma tabela sincronizada, não excluem a tabela do armazenamento de banco de dados subjacente.
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 lojas online, consulte Consulta do Editor de SQL do Lakebase.
Usar recursos online em aplicativos em tempo real
Para fornecer recursos a aplicativos e serviços em tempo real, crie um ponto de extremidade do serviço de recursos. Confira Pontos de extremidade do 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 Catálogo do Unity para encontrar recursos apropriados 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 os recursos online não sejam mais usados por serviço de modelo ou pontos de extremidade do serviço de recurso.
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.
- Dimensione a capacidade corretamente: comece com CU_2 para testes e só aumente ou reduza com base no desempenho e no custo.
- 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 nome do catálogo de uma tabela online deve corresponder ao nome do banco de dados subjacente. O serviço de recursos online exige que o nome do catálogo do Unity Catalog de uma tabela online seja igual ao nome do banco de dados Lakebase (Postgres) subjacente; se eles diferirem, o ponto de extremidade de serviço do modelo falha em implantar. Ao publicar ou materializar usando as APIs de engenharia de atributos (
publish_table,materialize_features), um catálogo correspondente é criado por padrão. Um descompasso ocorre apenas quando você direciona um catálogo registrado em um banco de dados com nome diferente — por exemplo, um catálogo estrangeiro ou um catálogo online gerenciado criado com um nome de banco de dados personalizado — que não é suportado para atendimento de recursos online. - Não há suporte para especificar uma tabela online específica. Quando uma tabela de características é publicada em várias tabelas online, o serviço de modelo e os pontos de extremidade de serviço das características sempre são resolvidos para a tabela online mais antiga com base no carimbo de data/hora de criação.
- Um repositório de recursos online dá suporte a até 3 réplicas de leitura (total de 4 instâncias de computação, incluindo a primária). As réplicas de leitura descarregam o tráfego de leitura do primário e fornecem alta disponibilidade, assumindo o controle em caso de falha do primário.
- Não há suporte para os seguintes parâmetros ao publicar em um repositório de recursos online do Databricks:
filter_condition, ,checkpoint_location,modeetriggerfeatures. - Há suporte apenas para tabelas de recursos no Catálogo do Unity.
- Sem suporte à escala para zero do Lakebase.
- Os pontos de extremidade do Serviço de Modelo e Feature Serving que buscam recursos em vários repositórios de recursos online continuam funcionando se já existirem, mas você não pode criar novos pontos de extremidade desse tipo em instâncias de Dimensionamento Automático do Lakebase.
- As instâncias de dimensionamento automático criadas usando a API de projetos ou a interface do usuário não usam os seguintes campos:
creator,read_replica_countecapacity. - Não é possível atualizar uma instância de dimensionamento automático que foi criada usando a API de projetos ou a interface do usuário.
- As CMK (chaves gerenciadas pelo cliente) se aplicam somente a repositórios de recursos online criados depois que o CMK ficou disponível na região. Consulte Criptografia com chaves gerenciadas pelo cliente.
Resolução de problemas
Mensagem de erro: Skipping publishing to online table '...' because the feature sync pipeline is already running.
Esse erro ocorrerá se vários notebooks ou trabalhos tentarem publicar em uma tabela online ao mesmo tempo. Somente uma única operação de sincronização é permitida por tabela online de cada vez para evitar conflitos de dados.
O Databricks recomenda criar seus fluxos de trabalho para usar um único publish_table comando, por exemplo, uma única tarefa no final de um trabalho. Se os fluxos de trabalho não puderem ser coordenados dessa forma, use get_status() para aguardar até que outros comandos de publicação tenham terminado de sincronizar antes de disparar uma nova publicação.
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
Recursos adicionais
- Saiba mais sobre a Engenharia de Recursos no Databricks.
- Explore a governança de dados e a linhagem no Unity Catalog.
- Entenda a arquitetura e as funcionalidades do Lakebase .