Kostenmanagement für den Feature Store

Diese Seite beschreibt, wie Azure Databricks Feature Store Kosten für Rechenleistung berechnet und wie diese Kosten überwacht und optimiert werden können. Der Feature Store wird zum Selbstkostenpreis abgerechnet: Sie bezahlen für die zugrunde liegende serverlose Rechenleistung, den Online-Store und die Serving-Infrastruktur ohne zusätzlichen Aufschlag.

  • Featurematerialisierung wird als serverloses Computing ausgeführt und in der Abrechnung unter dem Produkt FEATURE_STORE angezeigt und zum selben Satz wie serverlose Jobs und Lakeflow Pipelines abgerechnet.
  • Endpunkte für die Feature-Bereitstellung werden über die SKU für Model Serving abgerechnet.
  • Onlinestores werden nach Lakebase-Compute auf Grundlage der Anzahl der Kapazitätseinheiten (CU) und Replikate abgerechnet.

Abrechnung für den Feature Store

Materialisierung von Features

Wenn Sie Featureansichten materialisieren, führt Azure Databricks eine serverlose Pipeline aus, um Featurewerte zu berechnen und in Offline- und Onlineziele zu schreiben. Dazu gehören Jobs zur Batch-Materialisierung, Streaming-Pipelines und Datenaufnahme über Kafka. Diese Pipelines werden mit serverlosem Computing ausgeführt und zum Selbstkostenpreis mit einem Multiplikator von 1x abgerechnet, ohne Aufpreis gegenüber der zugrunde liegenden serverlosen Plattform.

In der Systemtabelle der abrechnungsfähigen Nutzung wird die Materialisierungsnutzung mit billing_origin_product, festgelegt auf FEATURE_STORE und einer SKU für serverloses Computing (JOBS_SERVERLESS_COMPUTE, mit Präfix Ihrer Arbeitsbereichsebene und -region) angezeigt. Die Nutzung ist is_serverless und is_photon, und usage_metadata umfasst data_source (DELTA_TABLE_SOURCE oder KAFKA_SOURCE) und operation (FEATURE_MATERIALIZATION oder KAFKA_INGESTION), sodass Sie die Kosten nach Batch- gegenüber Streaming-Workloads aufschlüsseln können.

Um die Rechenkosten zu senken, gruppieren Sie Features, die dasselbe Offline-Ziel, Online-Ziel und denselben Trigger gemeinsam nutzen, in einem einzigen materialize_features-Aufruf, damit sie in einer einzigen Pipeline ausgeführt werden. Siehe Materialisieren von Featureansichten. Weitere Informationen dazu, wie serverlose Rechenleistung abgerechnet wird, finden Sie unter Lakeflow-Jobs mit serverloser Rechenleistung für Workflows ausführen.

Feature-Bereitstellungsendpunkte

Feature-Serving-Endpunkte stellen vorab berechnete und bei Bedarf generierte Features für Echtzeitanwendungen bereit. Sie werden auf Model Serving ausgeführt und werden mit der Model Serving SKU (SERVERLESS_REAL_TIME_INFERENCE) abgerechnet, die mit benutzerdefinierten Modellbereitstellungsendpunkten übereinstimmt. Die Gebühren richten sich nach den für den Endpunkt bereitgestellten Rechenressourcen, die zur Bewältigung des Anfrageverkehrs erforderlich sind. Siehe Serve-Funktionstabellen und die Seite Model Serving für Preise.

Onlineshops

Online-Stores bieten Features mit geringer Latenz für Online-Ableitungen. Ein Azure Databricks-Online Store basiert auf Lakebase und wird nach Lakebase-Compute abgerechnet, basierend auf den Kapazitätseinheiten (CUs) und Lesereplikaten, die er bereitstellt. Jede Kapazitätseinheit weist der Instanz Rechen-, Arbeitsspeicher- und Speicherressourcen zu, und Sie können Lesereplikate für eine höhere Verfügbarkeit und den Lesedurchsatz hinzufügen. Siehe Databricks Online Feature Stores zur Dimensionierungsanpassung, Verwalten von Computes für die Zuordnung von Kapazitätseinheiten zu Computes und die Lakebase-Preisseite.

Attributkosten mit Tags und serverlosen Nutzungsrichtlinien

Von Bedeutung

Dieses Feature befindet sich in der privaten Vorschauphase. Wenden Sie sich an Ihren Azure Databricks-Kontakt, um es zu testen.

Wenn du eine Materialisierung oder einen Stream erstellst, gib benutzerdefinierte Tags, eine serverlose Nutzungsrichtlinie oder beides weiter. Azure Databricks wendet diese auf den erstellten Einzelvorgang oder die Lakeflow-Pipeline an, sodass die damit verbundenen Kosten in der Systemtabelle für abrechenbare Nutzung unter Ihrer Zuordnung (Attribution) erfasst werden. Um eine Richtlinie zu erstellen und ihre ID zu erhalten, finden Sie weitere Informationen unter Erstellen einer serverlosen Nutzungsrichtlinie.

Beide Werte werden angewendet, wenn der Job oder die Pipeline erstellt wird. Um vorhandene Rechenressourcen neu zuzuordnen, erstelle eine neue Materialisierung oder einen neuen Stream.

Attributmaterialisierungsberechnung

Übergebe tags, budget_policy_id, oder beide zu materialize_features:

materialized = fe.materialize_features(
    features=features,
    offline_config=offline_config,
    trigger=trigger,
    tags={"team": "ml-platform", "project": "churn"},
    budget_policy_id="555e8888-e999-4444-a777-446655440000",
)

Für die vollständige Signatur siehe Materialize Feature Views.

Attributverwaltete Rechenleistung für die Datenaufnahme

Für einen Stream legen Sie tags und budget_policy_id auf dem IngestionConfig, das Sie an create_stream übergeben, fest:

from databricks.feature_engineering.entities import IngestionConfig, IngestionDestination

ingestion_config = IngestionConfig(
    ingestion_destination=IngestionDestination(
        delta_table_name="my_catalog.my_schema.events_ingestion"
    ),
    tags={"team": "ml-platform", "project": "churn"},
    budget_policy_id="555e8888-e999-4444-a777-446655440000",
)

Für die verbleibenden Aufnahmeoptionen siehe Stream einrichten.

Berechnen, für wen die Attribution gilt

Die Tags und die serverlose Nutzungsrichtlinie gelten für die Rechenleistung, die Funktionen materialisiert oder Stream-Daten aufnimmt: den Batch-Materialisierungsjob, die Streaming-Lakeflow-Pipeline und den Job, der sie orchestriert, sowie die Ingestion-Lakeflow-Pipeline eines Streams mit ihren Forward-Fill- und Backfill-Jobs. Wenn du in eine neue Online-Tabelle materialisierst, gelten sie auch für die Lakeflow-Pipeline, die diese Tabelle synchronisiert.

Sie gelten nicht für den Online-Shop selbst. Um die eigenen Rechenressourcen eines Online-Shops zuzuordnen, legen Sie für den Shop eine Serverless-Nutzungsrichtlinie fest. Siehe Databricks Online Feature Stores.

Einschränkungen

  • Wenn in eine bereits vorhandene Online-Tabelle materialisiert wird, wird weder tags noch budget_policy_id angewendet, und es wird kein Fehler zurückgegeben. Die Lakeflow-Pipeline, die diese Tabelle synchron hält, behält die Tags bei, mit denen sie erstellt wurde. Um die Attribution zu ändern, materialisieren Sie sie als neue Online-Tabelle.
  • Du kannst höchstens 25 Tags bestehen.
  • Ein Tag-Schlüssel kann bis zu 127 Zeichen umfassen und ein Tag-Wert bis zu 65.535 Zeichen. Keiner von beiden kann leer sein.
  • Ein Tag-Schlüssel kann nicht mit databricks: beginnen. Dieses Präfix ist reserviert, und die Prüfung ignoriert den Fall.

Nachverfolgen von Nutzung und Kosten

Sie können die Kosten für den Feature Store mithilfe der Systemtabelle der abrechnungsfähigen Nutzung überwachen. system.billing.usage Die Verwendung der Materialisierung wird durch billing_origin_product = 'FEATURE_STORE' gekennzeichnet:

SELECT
  usage_date,
  usage_metadata.data_source,
  usage_metadata.operation,
  usage_metadata.job_id,
  usage_metadata.dlt_pipeline_id,
  identity_metadata.run_as,
  sum(usage_quantity) AS dbus,
  usage_unit
FROM system.billing.usage
WHERE billing_origin_product = 'FEATURE_STORE'
GROUP BY ALL;

Verwenden usage_metadata.data_source Und operation um Kosten nach Batch im Vergleich zum Streaming aufzuschlüsseln. Die Felder usage_metadata.job_id und usage_metadata.dlt_pipeline_id identifizieren den spezifischen Materialisierungsjob oder die Pipeline, durch die jede Kostenzeile erzeugt wurde, sodass Sie für eine Zuordnung pro Pipeline danach gruppieren können.

Die Spalte custom_tags enthält die von dir übergebenen Tags zusammen mit den Tags, die von der Nutzungsrichtlinie für Serverless mitgeführt werden, sodass du nach custom_tags['<key>'] gruppieren oder filtern kannst, um Ausgaben zuzuordnen. Informationen dazu, wie Richtlinientags die Abrechnungsdatensätze erreichen, finden Sie unter Richtlinientags für die serverlose Nutzung in den Abrechnungsdatensätzen analysieren.

Die Kosten für die Bereitstellung von Features und Online-Stores werden separat nachverfolgt:

Einzelheiten zur Tabelle für abrechnungsfähige Nutzung und dazu, wie sie abgefragt wird, finden Sie unter Referenz zur Systemtabelle für abrechnungsfähige Nutzung.

Bewährte Methoden zur Kostenoptimierung

  • Gruppieren Sie Features in gemeinsame Materialisierungspipelines: Features, die ein Offline-Ziel, ein Online-Ziel und einen Trigger gemeinsam nutzen, können zusammen in einer einzigen Pipeline materialisiert werden, wodurch sich die Anzahl der Pipelines verringert, für die Sie bezahlen.
  • Wiederverwendung von Online-Shops: Sie können mehrere Funktionstabellen in einem einzigen Online-Shop veröffentlichen. Nutzen Sie für Entwicklung, Tests und Schulungen einen gemeinsamen Onlineshop projektübergreifend, anstatt separate Onlineshops zu erstellen.
  • Kapazität des Onlineshops bedarfsgerecht dimensionieren: Beginnen Sie mit einer kleinen Kapazitätseinheit zum Testen und skalieren Sie je nach Leistung und Kosten nach oben oder unten.
  • Ressourcen löschen, die nicht genutzt werden: Online-Shops verursachen laufend Kosten. Löschen Sie Onlineshops und Materialisierungspipelines, die nicht mehr benötigt werden.
  • Wählen Sie einen geeigneten Trigger für die Materialisierung: Weniger häufig geplante Trigger sind kostengünstiger als eine kontinuierliche oder häufige erneute Materialisierung. Passen Sie den Trigger daran an, wie aktuell Ihre Features sein müssen.

Weitere Ressourcen