Ö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.
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.
- Çalışma Alanı B'de bir erişim belirteci oluşturun.
- Yerel çalışma alanınızda, erişim belirtecini ve Çalışma Alanı B hakkındaki bilgileri depolamak için gizli diziler oluşturun:
- Gizli dizi kapsamı oluşturun:
databricks secrets create-scope --scope <scope>
. - Ç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.
- Gizli dizi kapsamı oluşturun:
Not
Çalışma alanı başına gizli kapsam sayısı sınırı olduğundan gizli dizi kapsamını diğer kullanıcılarla paylaşmak isteyebilirsiniz.
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 FeatureStoreClient
oluş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/shared
bir 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_uri
yö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_uri
kullanarakfeature_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
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin