Poskytování pohledů na atributy

Důležité

Tato funkce je ve verzi Public Preview. Správci pracovního prostoru můžou řídit přístup k této funkci ze stránky Previews . Viz Manage Azure Databricks preview.

Zobrazení funkcí můžete obsluhovat online dvěma způsoby:

  • Obsluha modelu: Nasaďte model, který byl vytrénován v zobrazeních funkcí. Koncový bod vyhledá hodnoty funkcí z online obchodu automaticky pomocí rodokmenu sledovaného při zaprotokolování modelu. Použijte toto k poskytování predikcí modelu.
  • Obsluha funkcí: Nasaďte FeatureSpec přímo odkazující na zobrazení funkcí bez modelu. Koncový bod vrátí hodnoty vyhledáných funkcí. Tuto možnost použijte, když aplikace potřebuje hodnoty funkcí místo předpovědí modelu.

Oba přístupy načítají předem vypočítané hodnoty příznaků z online úložiště, takže musíte nejprve materializovat příznaky do online úložiště.

Modely, které jsou natrénované pomocí funkcí z Databricks, automaticky sledují rodokmen k funkcím, na které byly natrénovány. Když se nasadí jako koncové body obsluhy modelu, tyto modely pomocí katalogu Unity vyhledávají funkce z online obchodů.

Povolení

Aby bylo možné poskytovat feature, principal, který vytvoří koncový bod pro obsluhu modelu, musí mít oprávnění SELECT k tabulce v Unity Catalogu, která je podkladem materializované feature. Online vyhledávání čtou přímo z materializované tabulky, takže přístup pro obsluhu poskytuje oprávnění SELECT na úrovni tabulky. Popis oprávnění viz SELECT.

Vzhledem k tomu, že materializovaná tabulka může obsahovat více než jednu funkci, uděluje SELECT jí přístup ke všem funkcím v této tabulce, nejen k té, kterou chcete sloužit. Než udělíte oprávnění k obsluze, ověřte, že všechny atributy sdílející tabulku lze sdílet s principálem. Pokud chcete omezit expozici, materializujte citlivé funkce samostatně.

Chcete-li tento přístup udělit, aniž byste museli tabulky ručně řešit, použijte FeatureEngineeringClient.grant_feature_serving_access. Vzhledem k zadanému modelu nebo specifikaci funkce přeloží jednotlivé funkce na svoji online tabulku, udělí SELECT (spolu s USE CATALOGUSE SCHEMA) u těchto tabulek zadaným objektům a vrátí sestavu každé tabulky a další funkce, které grant zveřejňuje. Před udělením předejte dry_run=True k zobrazení náhledu sestavy.

from databricks.feature_engineering import FeatureEngineeringClient

fe = FeatureEngineeringClient()

# Preview the tables and the features each grant would expose.
report = fe.grant_feature_serving_access(
    grant_to=["serving-principal@example.com"],
    model_uri="models:/main.ecommerce.fraud_model/1",
    dry_run=True,
)
print(report)

# Grant SELECT on the resolved online tables.
fe.grant_feature_serving_access(
    grant_to=["serving-principal@example.com"],
    model_uri="models:/main.ecommerce.fraud_model/1",
)

Nasazení koncového bodu obsluhy modelu

Použijte existující model obsluhující koncový bod nebo vytvořte nový pomocí sady Databricks SDK. Model musí být zaregistrovaný v katalogu Unity.

Následující kód ukazuje, jak vytvořit nový koncový bod obsluhující model. Další informace najdete v tématu Vytvoření vlastního modelu obsluhující koncové body.

from databricks.sdk import WorkspaceClient
from databricks.sdk.service.serving import EndpointCoreConfigInput, ServedEntityInput

w = WorkspaceClient()

endpoint_name = "fraud-detection-endpoint"
model_name = "main.ecommerce.fraud_model"

w.serving_endpoints.create(
    name=endpoint_name,
    config=EndpointCoreConfigInput(
        name=endpoint_name,
        served_entities=[
            ServedEntityInput(
                entity_name=model_name,
                entity_version=1,
                max_provisioned_concurrency=4,
                min_provisioned_concurrency=0,
            )
        ],
    ),
)

Odeslat dotaz na koncový bod

from databricks.sdk import WorkspaceClient

w = WorkspaceClient()

response = w.serving_endpoints.query(
    name="fraud-detection-endpoint",
    dataframe_records=[
        {"user_id": "user_123", "transaction_time": "2026-03-01T12:00:00"},
    ],
)

Dotazování koncového bodu pomocí funkcí RequestSource

Pokud byl model natrénován funkcemi RequestSource , datová část požadavku musí obsahovat také všechny RequestSource sloupce. Tyto sloupce byly přidány do podpisu modelu MLflow během log_model, takže schéma rozhraní API koncového bodu odráží požadovaná pole požadavku.

response = w.serving_endpoints.query(
    name="fraud-detection-endpoint",
    dataframe_records=[
        {
            "user_id": "user_123",
            "transaction_time": "2026-03-01T12:00:00",
            "transaction_amount": 275.30,  # RequestSource column
            "vendor_id": "v_42",           # RequestSource column (also used as entity key)
        },
    ],
)

Klíče entit se používají k vyhledávání funkcí založených na tabulce z online obchodu. Sloupce RequestSource se předávají přímo do modelu.

Můžete také použít curl:

curl -X POST "https://<workspace>.cloud.databricks.com/serving-endpoints/<endpoint>/invocations" \
  -H "Authorization: Bearer $DATABRICKS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "dataframe_records": [
      {
        "user_id": "user_123",
        "transaction_time": "2026-03-01T12:00:00",
        "transaction_amount": 275.30,
        "vendor_id": "v_42"
      }
    ]
  }'

Poskytujte funkce pomocí FeatureSpec

Pokud chcete obsluhovat zobrazení funkcí bez modelu, vytvořte odkaz FeatureSpec na funkce a nasaďte je do koncového bodu obsluhy funkcí. Koncový bod vrátí hodnoty vyhledáných funkcí pro klíče entity v požadavku.

Před vytvořením koncového bodu musí být funkce zaregistrovány v katalogu Unity a materializovány do online obchodu .

Note

Prvek FeatureSpec , který obsahuje zobrazení funkcí, nemůže obsahovat FeatureLookup ani FeatureFunction definice. Zobrazení funkcí nelze kombinovat s těmito definicemi ve stejné FeatureSpec.

from databricks.feature_engineering import FeatureEngineeringClient
from databricks.feature_engineering.entities.feature_serving_endpoint import (
    EndpointCoreConfig,
    ServedEntity,
)

fe = FeatureEngineeringClient()

# 1. Retrieve a registered Feature View
agg_feature = fe.get_feature(full_name="main.ecommerce.amount_sum_sliding_7d_1d")

# 2. Create a FeatureSpec that includes the Feature View
feature_spec_name = "main.ecommerce.transaction_feature_spec"
fe.create_feature_spec(name=feature_spec_name, features=[agg_feature])

# 3. Deploy a Feature Serving endpoint backed by the FeatureSpec
fe.create_feature_serving_endpoint(
    name="transaction-features",
    config=EndpointCoreConfig(
        served_entities=ServedEntity(
            feature_spec_name=feature_spec_name,
            workload_size="Small",
            scale_to_zero_enabled=True,
        )
    ),
)

Zadejte dotaz na koncový bod pomocí klíčů entity, které se používají k vyhledání materializovaných funkcí:

from databricks.sdk import WorkspaceClient

w = WorkspaceClient()

response = w.serving_endpoints.query(
    name="transaction-features",
    dataframe_records=[{"user_id": "user_123"}],
)

Další informace o koncových bodech obsluhy funkcí najdete v tématu Koncové body obsluhy funkcí.