Partilhar via


Governança e linhagem de funcionalidades

Esta página descreve as capacidades de governança e linhagem da engenharia de características no Unity Catalog.

Para obter informações sobre como monitorizar o desempenho de um modelo implementado e mudanças nos dados da tabela de características, consulte Lakehouse Monitoring.

Controlar o acesso a tabelas de recursos

O controle de acesso para tabelas de recursos no Unity Catalog é gerenciado pelo Unity Catalog. Veja os privilégios do Unity Catalog.

Exibir tabela de recursos, função e linhagem de modelo

Quando você registra um modelo usando , os recursos usados no modelo são rastreados automaticamente e podem ser exibidos na guia Linhagem do Catalog Explorer. Além das tabelas de funcionalidades, as Funções Definidas pelo Usuário (UDFs) em Python, que são usadas para calcular funcionalidades sob demanda, também são monitorizadas.

Como capturar a linhagem de uma tabela de recursos, função ou modelo

As tabelas e funções de recursos de rastreamento de informações de linhagem usadas em modelos são capturadas automaticamente quando você chama log_model. Consulte o código de exemplo a seguir.

from databricks.feature_engineering import FeatureEngineeringClient, FeatureLookup, FeatureFunction
fe = FeatureEngineeringClient()

features = [
    FeatureLookup(
        table_name = "main.on_demand_demo.restaurant_features",
        feature_names = ["latitude", "longitude"],
        rename_outputs={"latitude": "restaurant_latitude", "longitude": "restaurant_longitude"},
        lookup_key = "restaurant_id",
        timestamp_lookup_key = "ts"
    ),
    FeatureFunction(
        udf_name="main.on_demand_demo.extract_user_latitude",
        output_name="user_latitude",
        input_bindings={"blob": "json_blob"},
    ),
    FeatureFunction(
        udf_name="main.on_demand_demo.extract_user_longitude",
        output_name="user_longitude",
        input_bindings={"blob": "json_blob"},
    ),
    FeatureFunction(
        udf_name="main.on_demand_demo.haversine_distance",
        output_name="distance",
        input_bindings={"x1": "restaurant_longitude", "y1": "restaurant_latitude", "x2": "user_longitude", "y2": "user_latitude"},
    )
]

training_set = fe.create_training_set(
    label_df, feature_lookups=features, label="label", exclude_columns=["restaurant_id", "json_blob", "restaurant_latitude", "restaurant_longitude", "user_latitude", "user_longitude", "ts"]
)

class IsClose(mlflow.pyfunc.PythonModel):
    def predict(self, ctx, inp):
        return (inp['distance'] < 2.5).values

model_name = "fe_packaged_model"
mlflow.set_registry_uri("databricks-uc")

fe.log_model(
    IsClose(),
    model_name,
    flavor=mlflow.pyfunc,
    training_set=training_set,
    registered_model_name=registered_model_name
)

Exibir a linhagem de uma tabela de recursos, modelo ou função

Para exibir a linhagem de uma tabela de recursos, modelo ou função, siga estas etapas:

  1. Navegue até a tabela, a versão do modelo ou a página da função no Gerenciador de Catálogos.

  2. Selecione o separador Linhagem . A barra lateral esquerda mostra os componentes do Catálogo Unity associados a esta tabela, a versão do modelo ou a função.

    guia Linhagem na página do modelo no Catalog Explorer

  3. Clique Ver gráfico de linhagem. O gráfico de linhagem é exibido. Para obter detalhes sobre como explorar o gráfico de linhagem, consulte Capture and explore lineage.

    ecrã de linhagem

  4. Para fechar o gráfico de linhagem, clique no botão fechar para o gráfico de linhagem no canto superior direito.