Megosztás a következőn keresztül:


Funkciótáblák megosztása munkaterületeken (örökölt)

Fontos

  • Ez a dokumentáció ki lett állítva, és lehet, hogy nem frissül.
  • A Databricks a Szolgáltatásfejlesztés használatát javasolja a Unity Catalogban a funkciótáblák munkaterületek közötti megosztásához. A cikkben szereplő megközelítés elavult.

Az Azure Databricks támogatja a funkciótáblák megosztását több munkaterületen. A saját munkaterületéről például létrehozhat, írhat vagy olvashat egy központi szolgáltatástár szolgáltatástáblájából. 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.

Egy központosított szolgáltatástároló esetében a Databricks azt javasolja, hogy egyetlen munkaterületet jelöljön ki az összes szolgáltatástár metaadatainak tárolására, és hozzon létre fiókokat minden olyan felhasználó számára, akinek hozzá kell férnie a funkciótárolóhoz.

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

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

A központosított szolgáltatástárolóhoz való hozzáférést jogkivonatok vezérlik. Minden hozzáférésre szoruló felhasználó vagy szkript létrehoz egy személyes hozzáférési jogkivonatot a központosított szolgáltatástárolóban, és ezt a jogkivonatot a helyi munkaterület titkos kezelőjének másolja. A központosított szolgáltatástároló munkaterületére küldött összes API-kérésnek tartalmaznia kell a hozzáférési jogkivonatot; a Feature Store-ügyfél egy egyszerű mechanizmust biztosít a munkaterületek közötti műveletek végrehajtásához használandó titkos kódok megadásához.

Feljegyzés

Ajánlott biztonsági eljárásként, ha automatizált eszközökkel, rendszerekkel, szkriptekkel és alkalmazásokkal hitelesít, a Databricks azt javasolja, hogy munkaterület-felhasználók helyett a szolgáltatásnevekhez tartozó személyes hozzáférési jogkivonatokat használja. A szolgáltatásnevek jogkivonatainak létrehozásáról a szolgáltatásnév jogkivonatainak kezelése című témakörben olvashat.

Követelmények

A munkaterületek közötti szolgáltatástároló használatához a következőre van szükség:

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

Ebben a szakaszban a "B munkaterület" a központosított vagy távoli funkciótár-munkaterületre vonatkozik.

  1. A B munkaterületen hozzon létre egy hozzáférési jogkivonatot.
  2. A helyi munkaterületen hozzon létre titkos kulcsokat a hozzáférési jogkivonat és a B munkaterület adatainak tárolásához:
    1. Titkos kulcs hatókörének létrehozása: databricks secrets create-scope --scope <scope>.
    2. Válasszon egy egyedi azonosítót a B munkaterülethez, amely itt látható.<prefix> Ezután hozzon létre három titkos kulcsot a megadott kulcsnevekkel:
      • databricks secrets put --scope <scope> --key <prefix>-host : Adja meg a B munkaterület állomásnevét. A munkaterület állomásnevének lekéréséhez használja a következő Python-parancsokat:

        import mlflow
        
        host_url = mlflow.utils.databricks_utils.get_webapp_url()
        host_url
        
      • databricks secrets put --scope <scope> --key <prefix>-token : Adja meg a hozzáférési jogkivonatot a B munkaterületről.

      • databricks secrets put --scope <scope> --key <prefix>-workspace-id : Adja meg a B munkaterület azonosítóját, amely bármely oldal URL-címében megtalálható.

Feljegyzés

Előfordulhat, hogy meg szeretné osztani a titkos kulcs 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 funkciótároló megadása

A távoli szolgáltatástár-munkaterülethez létrehozott titkos kulcs hatóköre és névelőtagja alapján létrehozhatja az űrlap szolgáltatástárolójának URI-ját:

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

Ezután explicit módon adja meg az URI-t, amikor a következő példányt FeatureStoreClienthozza létre:

fs = FeatureStoreClient(feature_store_uri=feature_store_uri)

Adatbázis létrehozása funkciótáblákhoz a megosztott DBFS-helyen

Mielőtt szolgáltatástáblákat hoz létre a távoli szolgáltatástárolóban, létre kell hoznia egy adatbázist, amely tárolja őket. Az adatbázisnak a megosztott DBFS-helyen kell lennie.

Ha például egy adatbázist recommender szeretne létrehozni a megosztott helyen /mnt/shared, használja a következő parancsot:

%sql CREATE DATABASE IF NOT EXISTS recommender LOCATION '/mnt/shared'

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

A távoli funkciótárolókban szolgáltatástáblát létrehozó API a használt Databricks-futtatókörnyezet verziójától függ.

V0.3.6 és újabb verziók

Használja az API-t FeatureStoreClient.create_table :

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

V0.3.5 és újabb

Használja az API-t FeatureStoreClient.create_feature_table :

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'
)

Más funkciótár-metódusok példáiért lásd a jegyzetfüzet példáját: Funkciótáblák megosztása munkaterületeken.

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

A távoli szolgáltatástárolóban a következő beállítás első beállításával olvashatja el a funkciótáblát feature_store_uria FeatureStoreClient.read_table módszerrel:

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

A funkciótáblához való hozzáférés egyéb segédmeterei is támogatottak:

fs.read_table()
fs.get_feature_table() # in v0.3.5 and below
fs.get_table() # in v0.3.6 and above
fs.write_table()
fs.publish_table()
fs.create_training_set()

Távoli modellregisztrációs adatbázis használata

A távoli szolgáltatástároló URI-ja mellett egy távoli modellregisztrációs adatbázis URI-ját is megadhatja a modellek munkaterületek közötti megosztásához.

Ha távoli modellregisztrációs adatbázist szeretne megadni a modell naplózásához vagy pontozásához, a modellregisztrációs adatbázis URI-jával példányosíthat egy FeatureStoreClientet.

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 model_registry_uria használatával feature_store_uri betanítheti a modellt bármely helyi vagy távoli funkciótáblával, majd regisztrálhatja a modellt bármely helyi vagy távoli modellregisztrációs adatbázisban.

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

Példa jegyzetfüzetre: Funkciótáblák megosztása munkaterületeken

Az alábbi jegyzetfüzet bemutatja, hogyan használható egy központosított szolgáltatástároló.

Központosított szolgáltatástár példajegyzetfüzete

Jegyzetfüzet beszerzése