Materializar e disponibilizar recursos declarativos
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.
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
)
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.
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.
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 .
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 .