Aracılığıyla paylaş


Özellik tablolarını çalışma alanları arasında paylaşma (eski)

Önemli

  • Bu belge kullanımdan kaldırılmıştır ve güncelleştirilmeyebilir.
  • Databricks, özellik tablolarını çalışma alanları arasında paylaşmak için Unity Kataloğu'nda Özellik Mühendisliği'nin kullanılmasını önerir. Bu makaledeki yaklaşım kullanım dışıdır.

Azure Databricks, özellik tablolarını birden çok çalışma alanında paylaşmayı destekler. Örneğin, kendi çalışma alanınızdan merkezi bir özellik deposundaki bir özellik tablosu oluşturabilir, bu tabloya yazabilir veya bu tablodan okuyabilirsiniz. Bu, birden çok ekip özellik tablolarına erişimi paylaştığında veya kuruluşunuzun geliştirmenin farklı aşamalarını işlemek için birden çok çalışma alanı olduğunda kullanışlıdır.

Merkezi bir özellik deposu için Databricks, tüm özellik deposu meta verilerini depolamak ve özellik deposuna erişmesi gereken her kullanıcı için hesaplar oluşturmak üzere tek bir çalışma alanı atamanızı önerir.

Ekipleriniz modelleri çalışma alanları arasında da paylaşıyorsa, hem özellik tabloları hem de modeller için aynı merkezi çalışma alanını ayırmayı seçebilir veya her birine farklı merkezi çalışma alanları belirtebilirsiniz.

Birden çok özellik deposu çalışma alanı

Merkezi özellik deposuna erişim belirteçler tarafından denetlenmektedir. Erişim gerektiren her kullanıcı veya betik, merkezi özellik deposunda bir kişisel erişim belirteci oluşturur ve bu belirteci kendi yerel çalışma alanının gizli dizi yöneticisine kopyalar. Merkezi özellik deposu çalışma alanına gönderilen her API isteğinin erişim belirtecini içermesi gerekir; Özellik Deposu istemcisi, çalışma alanları arası işlemler gerçekleştirirken kullanılacak gizli dizileri belirtmek için basit bir mekanizma sağlar.

Not

En iyi güvenlik uygulaması olarak otomatik araçlar, sistemler, betikler ve uygulamalarla kimlik doğrulaması yaptığınızda Databricks, çalışma alanı kullanıcıları yerine hizmet sorumlularına ait kişisel erişim belirteçlerini kullanmanızı önerir. Hizmet sorumlularına yönelik belirteçler oluşturmak için bkz . Hizmet sorumlusu için belirteçleri yönetme.

Gereksinimler

Çalışma alanları arasında özellik deposu kullanmak için şunlar gerekir:

  • Özellik Deposu istemcisi v0.3.6 ve üzeri.
  • Her iki çalışma alanının da ham özellik verilerine erişimi olmalıdır. Aynı dış Hive meta veri depolarını paylaşmaları ve aynı DBFS depolama alanına erişmeleri gerekir.
  • IP erişim listeleri etkinse, çalışma alanı IP adresleri erişim listelerinde olmalıdır.

Uzak kayıt defteri için API belirtecini ayarlama

Bu bölümde ,"Çalışma Alanı B", merkezi veya uzak özellik deposu çalışma alanını ifade eder.

  1. Çalışma Alanı B'de bir erişim belirteci oluşturun.
  2. Yerel çalışma alanınızda, erişim belirtecini ve Çalışma Alanı B hakkındaki bilgileri depolamak için gizli diziler oluşturun:
    1. Gizli dizi kapsamı oluşturun: databricks secrets create-scope --scope <scope>.
    2. Çalışma Alanı B için burada olarak <prefix>gösterilen benzersiz bir tanımlayıcı seçin. Ardından belirtilen anahtar adlarıyla üç gizli dizi oluşturun :
      • databricks secrets put --scope <scope> --key <prefix>-host : Çalışma Alanı B'nin ana bilgisayar adını girin. Çalışma alanının ana bilgisayar adını almak için aşağıdaki Python komutlarını kullanın:

        import mlflow
        
        host_url = mlflow.utils.databricks_utils.get_webapp_url()
        host_url
        
      • databricks secrets put --scope <scope> --key <prefix>-token : Çalışma Alanı B'den erişim belirtecini girin.

      • databricks secrets put --scope <scope> --key <prefix>-workspace-id: Herhangi bir sayfanın URL'sinde bulunabilecek B Çalışma Alanı için çalışma alanı kimliğini girin.

Uzak özellik deposu belirtme

Uzak özellik deposu çalışma alanı için oluşturduğunuz gizli dizi kapsamına ve ad ön eklerine bağlı olarak, formun özellik deposu URI'sini oluşturabilirsiniz:

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

Ardından, örneğini FeatureStoreClientoluştururken URI'yi açıkça belirtin:

fs = FeatureStoreClient(feature_store_uri=feature_store_uri)

Paylaşılan DBFS konumunda özellik tabloları için veritabanı oluşturma

Uzak özellik deposunda özellik tabloları oluşturmadan önce, bunları depolamak için bir veritabanı oluşturmanız gerekir. Veritabanı paylaşılan DBFS konumunda bulunmalıdır.

Örneğin, paylaşılan konumda /mnt/sharedbir veritabanı recommender oluşturmak için aşağıdaki komutu kullanın:

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

Uzak özellik deposunda özellik tablosu oluşturma

Uzak özellik deposunda özellik tablosu oluşturmaya yönelik API, kullandığınız Databricks çalışma zamanı sürümüne bağlıdır.

V0.3.6 ve üzeri

API'yi FeatureStoreClient.create_table kullanın:

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 ve altı

API'yi FeatureStoreClient.create_feature_table kullanın:

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

Diğer Özellik Deposu yöntemlerine örnekler için bkz . Not defteri örneği: Özellik tablolarını çalışma alanları arasında paylaşma.

Uzak özellik deposundan özellik tablosu kullanma

Uzak özellik deposundaki bir özellik tablosunu önce öğesini ayarlayarak feature_store_uriyöntemiyle FeatureStoreClient.read_table okuyabilirsiniz:

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

Özellik tablosuna erişmek için diğer yardımcı yöntemler de desteklenir:

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

Uzak model kayıt defteri kullanma

Uzak özellik deposu URI'sini belirtmeye ek olarak, çalışma alanları arasında modelleri paylaşmak için bir uzak model kayıt defteri URI'sini de belirtebilirsiniz.

Model günlüğü veya puanlama için uzak model kayıt defteri belirtmek üzere, model kayıt defteri URI'sini kullanarak bir FeatureStoreClient örneği oluşturabilirsiniz.

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

ve model_registry_urikullanarakfeature_store_uri, herhangi bir yerel veya uzak özellik tablosunu kullanarak modeli eğitebilir ve ardından modeli herhangi bir yerel veya uzak model kayıt defterine kaydedebilirsiniz.

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

Not defteri örneği: Özellik tablolarını çalışma alanları arasında paylaşma

Aşağıdaki not defteri, merkezi bir özellik deposuyla nasıl çalışıldığını gösterir.

Merkezi Özellik Deposu örnek not defteri

Not defterini alma