Szolgáltatástáblák megosztása munkaterületek között

Azure Databricks támogatja a funkciótáblák több munkaterület közötti megosztását. A saját munkaterületén például létrehozhat, írhat vagy olvashat egy szolgáltatástáblából egy központi funkciótárolóban. Ez akkor hasznos, ha több csapat is hozzáfér a funkciótáblákhoz, vagy ha a szervezet több munkaterülettel rendelkezik a fejlesztés különböző szakaszainak kezeléséhez.

Központosított funkciótár esetén a Databricks azt javasolja, hogy egyetlen munkaterületet jelöl ki a funkciótár összes metaadatának tárolására, és hozzon létre fiókokat minden olyan felhasználó számára, akinek hozzáférésre van szüksége a funkciótárhoz.

Ha a csapatok a munkaterületek között is megosztják a modelleket, dönthet úgy, hogy ugyanazt a központosított munkaterületet dedikálja a jellemzőtáblákhoz és modellekhez, vagy mindegyikhez különböző központosított munkaterületeket is megadhat.

Több funkciótároló-munkaterület

A központosított funkciótárolóhoz való hozzáférést jogkivonatok vezérlik. Minden hozzáférést szükséges felhasználó vagy szkript létrehoz egy személyes hozzáférési jogkivonatot a központosított funkciótárolóban, és átmásolja a jogkivonatot a helyi munkaterület titkos felettesére. A központosított funkciótár-munkaterületre küldött api-kérések mindegyikének tartalmaznia kell a hozzáférési jogkivonatot; A Funkciótár-ügyfél egy egyszerű mechanizmust biztosít a munkaterületek közötti műveletek végrehajtásához használt titkos kulcsok megadásához.

Követelmények

A szolgáltatástárolók több munkaterületen való használatához 9.0 Databricks Runtime vagy ML szükséges. Minden munkaterületnek ugyanabban a régióban kell lennie.

Az API-jogkivonat beállítása egy távoli beállításjegyzékhez

  1. A szolgáltatástároló munkaterületén hozzon létre egy hozzáférési jogkivonatot.
  2. A helyi munkaterületen hozzon létre titkos kódokat a hozzáférési jogkivonat és a távoli munkaterület információinak tárolására:
    1. Hozzon létre egy titkos hatókört: databricks secrets create-scope --scope <scope> .
    2. Válasszon egy egyedi nevet a cél munkaterülethez, amely itt a következőként jelenik <prefix> meg: . Ezután hozzon létre három titkos kulcsot a megadott kulcsnevekkel:
      • databricks secrets put --scope <scope> --key <prefix>-host : Adja meg a szolgáltatástár-munkaterület gazdagépnevét a munkaterület regionális URL-címének használatával. Használja például az https://westus.azuredatabricks.net/ értéket az https://adb-5555555555555555.19.azuredatabricks.net/ érték helyett. A regionális URL-cím ellenőrzéséhez futtassa a következőt mlflow.utils.databricks_utils.get_webapp_url() egy jegyzetfüzetben: .
      • databricks secrets put --scope <scope> --key <prefix>-token : Adja meg a szolgáltatástároló munkaterületének hozzáférési jogkivonatát.
      • databricks secrets put --scope <scope> --key <prefix>-workspace-id: Adja meg a szolgáltatástároló-munkaterület databricks secrets put --scope <scope> --key <prefix>-workspace-id munkaterület-azonosítóját, amely bármely oldal URL-címében megtalálható.

Megjegyzés

Előfordulhat, hogy meg szeretné osztani a titkos tok hatókörét más felhasználókkal, mivel a munkaterületenkénti titkos hatókörök száma korlátozott.

Távoli szolgáltatástároló megadása

A távoli szolgáltatástároló munkaterületéhez létrehozott titkos kód hatóköre és névelőtagja alapján az űrlap szolgáltatástároló URI-ját is létre lehet hozva:

feature_store_uri = f'databricks://<scope>:<prefix>'

Ezután explicit módon adja meg az URI-t a FeatureStoreClient példányosításakor:

fs = FeatureStoreClient(feature_store_uri=feature_store_uri)

Szolgáltatástábla létrehozása a távoli szolgáltatástárolóban

Használja az FeatureStoreClient.create_feature_table API-t:

fs = FeatureStoreClient(feature_store_uri=f'databricks://<scope>:<prefix>')
fs.create_feature_table(
   name='recommender.customer_features',
   keys='customer_id',
   schema=customer_features_df.schema,
   description='Customer-keyed features'
 )

További példák a funkciótár egyéb metódusára: Példajegyzetfüzet.

Szolgáltatástábla használata a távoli szolgáltatástárolóból

A távoli szolgáltatástároló egyik szolgáltatástábláját a metódussal olvashatja el, ha először be kell FeatureStoreClient.read_table omolni a feature_store_uri tulajdonságot:

fs = FeatureStoreClient(feature_store_uri=f'databricks://<scope>:<prefix>')
customer_features_df = fs.read_table(
  name='recommender.customer_features',
)

A szolgáltatástáblához való hozzáférés egyéb segítő módszerei is támogatottak:

fs.read_table()
fs.get_feature_table()
fs.write_table()
fs.publish_table()
fs.create_training_set()

Távoli modell beállításjegyzékének használata

A távoli szolgáltatástároló URI-jának megadása mellett megadhat egy távoli modelljegyzékbeli URI-t is a modellek munkaterületek közötti megosztásához.

Ha távoli modelljegyzéket ad meg a modell naplózásához vagy pontozásához, a modell beállításjegyzékének URI-ját használhatja a FeatureStoreClient példányosításához.

fs = FeatureStoreClient(model_registry_uri=f'databricks://<scope>:<prefix>')
customer_features_df = fs.log_model(
    model,
    "recommendation_model",
    flavor=mlflow.sklearn,
    training_set=training_set,
    registered_model_name="recommendation_model"
)

A és a használatával bármilyen helyi vagy távoli jellemzőtáblával betaníthat egy modellt, majd regisztrálhatja a modellt bármely helyi feature_store_urimodel_registry_uri vagy távoli modelljegyzékben.

fs = FeatureStoreClient(
    feature_store_uri=f'databricks://<scope>:<prefix>',
    model_registry_uri=f'databricks://<scope>:<prefix>'
)

Példajegyzetfüzet

Központosított funkciótár – példajegyzetfüzet

Jegyzetfüzet beszerzése