Pular para o conteúdo principal

Materializar e disponibilizar recursos declarativos

info

Beta

Este recurso é Beta e está disponível nas seguintes regiões: us-east-1 e us-west-2.

Depois de criar suas definições de recursos declarativas, que são armazenadas no Unity Catalog, você pode gerar dados de recursos a partir da sua tabela de origem usando essas definições. Esse processo é chamado de materialização do seu recurso. Databricks cria e gerencia um pipeline declarativo LakeFlow Spark para popular tabelas no Unity Catalog para treinamento de modelos e pontuação de lotes ou disponibilização online.

Requisitos

  • O recurso deve ser criado com a API declarativa de recursos e armazenado no Unity Catalog.
  • Para requisitos de versão, consulte Requisitos.

Estruturas de dados da API

OfflineStoreConfig

Configuração para o armazenamento offline onde o recurso materializado será gravado. O pipeline de materialização cria novas tabelas neste repositório.

Python
OfflineStoreConfig(
catalog_name: str, # Catalog name for the offline table where materialized features will be stored
schema_name: str, # Schema name for the offline table
table_name_prefix: str # Table name prefix for the offline table. The pipeline may create multiple tables with this prefix, each updated at different cadences
)
Python
from databricks.feature_engineering.entities import OfflineStoreConfig

offline_store = OfflineStoreConfig(
catalog_name="main",
schema_name="feature_store",
table_name_prefix="customer_features"
)

OnlineStoreConfig

Configuração do armazenamento online, que armazena recurso utilizado pelo modelo de operação. A materialização cria tabelas Delta com o catalog.schema.table_name_prefix e transmite as tabelas para tabelas Lakebase com o mesmo nome.

Python
from databricks.feature_engineering.entities import OnlineStoreConfig

online_store = OnlineStoreConfig(
catalog_name="main",
schema_name="feature_store",
table_name_prefix="customer_features_serving",
online_store_name="customer_features_store"
)

MaterializedFeature

Representa um recurso declarativo que foi materializado, ou seja, que possui uma representação pré-computada disponível no Unity Catalog. Existe um recurso materializado distinto para a tabela offline e para a tabela online. Normalmente, os usuários não instanciarão um MaterializedFeature diretamente.

chamadas de funções da API

materialize_features()

Materializa uma lista de recursos declarativos em uma tabela Delta offline ou em um Feature Store Online.

Python
FeatureEngineeringClient.materialize_features(
features: List[Feature], # List of declarative features to materialize
offline_config: OfflineStoreConfig, # Offline store config if materializing offline
online_config: Optional[OnlineStoreConfig] = None, # Online store config if materializing online
pipeline_state: Union[MaterializedFeaturePipelineScheduleState, str], # Materialization pipeline state - currently must be "ACTIVE"
cron_schedule: Optional[str] = None, # Materialization schedule, specified in quartz cron syntax. Currently must be provided.
) -> List[MaterializedFeature]:

O método retorna uma lista de recursos materializados, que contém metadados como o agendador cron que executa as atualizações de valores dos recursos e informações sobre as tabelas do Unity Catalog onde os recursos estão materializados.

Se forem fornecidos um OnlineStoreConfig e um OfflineStoreConfig , serão retornados dois recursos materializados para cada recurso fornecido, um para cada tipo de armazenamento.

list_materialized_features()

Retorna uma lista de todos os recursos materializados no metastore Unity Catalog do usuário.

Por default, são retornados no máximo 100 recursos. Você pode alterar esse limite usando o parâmetro max_results .

Para filtrar o recurso materializado retornado por um nome de recurso, use o parâmetro opcional feature_name .

Python
FeatureEngineeringClient.list_materialized_features(
feature_name: Optional[str] = None, # Optional feature name to filter by
max_results: int = 100, # Maximum number of features to be returned
) -> List[MaterializedFeature]:

Como excluir um recurso materializado

Para excluir um recurso materializado, use list_materialized_features(). Verifique o atributo table_name , navegue até essa tabela no Unity Catalog e exclua a tabela que contém o recurso. Use a tab Linhagem para identificar qualquer pipeline associado e excluí-lo também. Por fim, certifique-se de que, para tabelas online, o pipeline e a tabela offline também sejam excluídos.

Na versão beta, as APIs de exclusão não são suportadas. Caso necessário, você pode excluir manualmente o pipeline de recursos e as tabelas de recursos por meio da interface do usuário Databricks .

Utilize recurso online em aplicações tempo real

Para disponibilizar recursos para aplicações e serviços reais, crie um endpoint Feature Serving . Consulte o endpointFeature Serving.

Os modelos treinados usando recursos do Databricks rastreiam automaticamente a linhagem até o recurso em que foram treinados. Quando implantados como endpoints, esses modelos usam Unity Catalog para encontrar recursos apropriados em lojas online. Para obter detalhes, consulte Usar recurso no fluxo de trabalho online.

Limitações

  • O recurso contínuo não pode ser materializado.
  • Você só pode trabalhar com recursos materializados no workspace em que eles foram criados.
  • A exclusão e a pausa de um recurso devem ser gerenciadas manualmente no nível pipeline .