Compartilhar via


Governança e linhagem de recursos

Esta página descreve os recursos de governança e linhagem da engenharia de recursos no Catálogo do Unity.

Para obter informações sobre como monitorar o desempenho de um modelo servido e alterações nos dados da tabela de recursos, consulte Lakehouse Monitoring.

Controlar o acesso a tabelas de recursos

O controle de acesso para tabelas de recursos no Catálogo do Unity é gerenciado pelo Catálogo do Unity. Consulte os privilégios do Unity Catalog.

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

Quando você registra um modelo usando FeatureEngineeringClient.log_model, os recursos usados no modelo são controlados automaticamente e podem ser exibidos na guia Linhagem do Gerenciador de Catálogos. Além das tabelas de recursos, os UDFs do Python usados para calcular recursos sob demanda também são acompanhados.

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

As informações de linhagem que rastreiam as tabelas de recursos e as funções usadas nos 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, um modelo ou uma 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 de funções no Gerenciador de Catálogos.

  2. Selecione a guia Linhagem . A barra lateral esquerda mostra os componentes do Catálogo do Unity que foram registrados com esta tabela, versão do modelo ou função.

    Guia Linhagem na página de modelo no Gerenciador de Catálogos

  3. Clique em Ver grafo de linhagem. O grafo de linhagem é exibido. Para obter detalhes sobre como explorar o grafo de linhagem, consulte Exibir linhagem de dados usando o Catálogo do Unity.

    tela de linhagem

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