Berbagi tabel fitur di seluruh ruang kerja (warisan)
Penting
- Dokumentasi ini telah dihentikan dan mungkin tidak diperbarui.
- Databricks merekomendasikan penggunaan Rekayasa Fitur di Unity Catalog untuk berbagi tabel fitur di seluruh ruang kerja. Pendekatan dalam artikel ini tidak digunakan lagi.
Azure Databricks mendukung berbagi tabel fitur di beberapa ruang kerja. Misalnya, dari ruang kerja Anda sendiri, Anda dapat membuat, menulis, atau membaca dari tabel fitur di simpan fitur terpusat. Ini berguna ketika beberapa tim berbagi akses ke tabel fitur atau ketika organisasi Anda memiliki beberapa ruang kerja untuk menangani berbagai tahap pengembangan.
Untuk penyimpanan fitur terpusat, Databricks merekomendasikan agar Anda menunjuk satu ruang kerja untuk menyimpan semua metadata penyimpanan fitur, dan membuat akun untuk setiap pengguna yang membutuhkan akses ke penyimpanan fitur.
Jika tim Anda juga berbagi model di seluruh ruang kerja, Anda dapat memilih untuk mendedikasikan ruang kerja terpusat yang sama untuk tabel fitur dan model, atau Anda dapat menentukan ruang kerja terpusat yang berbeda untuk masing-masing ruang kerja.
Akses ke toko fitur terpusat dikontrol oleh token. Setiap pengguna atau skrip yang membutuhkan akses membuat token akses pribadi di simpan fitur terpusat dan menyalin token itu ke manajer rahasia ruang kerja lokal mereka. Setiap permintaan API yang dikirim ke ruang kerja simpan fitur terpusat harus menyertakan token akses; Klien Simpan Fitur menyediakan mekanisme sederhana untuk menentukan rahasia yang akan digunakan saat melakukan operasi lintas ruang kerja.
Catatan
Sebagai praktik terbaik keamanan, saat Anda mengautentikasi dengan alat, sistem, skrip, dan aplikasi otomatis, Databricks merekomendasikan agar Anda menggunakan token akses pribadi milik perwakilan layanan, bukan pengguna ruang kerja. Untuk membuat token untuk perwakilan layanan, lihat Mengelola token untuk perwakilan layanan.
Persyaratan
Menggunakan simpan fitur di seluruh ruang kerja memerlukan:
- Klien Penyimpanan Fitur v0.3.6 ke atas.
- Kedua ruang kerja harus memiliki akses ke data fitur mentah. Mereka harus berbagi metastore Hive eksternal yang sama dan memiliki akses ke penyimpanan DBFS yang sama.
- Jika daftar akses IP diaktifkan, alamat IP ruang kerja harus ada dalam daftar akses.
Menyiapkan token API untuk registri jarak jauh
Di bagian ini, "Ruang Kerja B" mengacu pada ruang kerja penyimpanan fitur terpusat atau jarak jauh.
- Di Ruang Kerja B, buat token akses.
- Di ruang kerja lokal Anda, buat rahasia untuk menyimpan token akses dan informasi tentang Ruang Kerja B:
- Membuat cakupan rahasia
databricks secrets create-scope --scope <scope>
. - Pilih pengidentifikasi unik untuk Ruang Kerja B, ditampilkan di sini sebagai
<prefix>
. Kemudian buat tiga rahasia dengan nama kunci yang ditentukan:databricks secrets put --scope <scope> --key <prefix>-host
: Masukkan nama host Ruang Kerja B. Gunakan perintah Python berikut untuk mendapatkan nama host ruang kerja:import mlflow host_url = mlflow.utils.databricks_utils.get_webapp_url() host_url
databricks secrets put --scope <scope> --key <prefix>-token
: Masukkan token akses dari Ruang Kerja B.databricks secrets put --scope <scope> --key <prefix>-workspace-id
: Masukkan ID ruang kerja untuk ruang kerja simpan fitur yang dapat ditemukan di alamat web halaman mana pun.
- Membuat cakupan rahasia
Catatan
Anda mungkin ingin berbagi cakupan rahasia dengan pengguna lain, karena ada batasan jumlah cakupan rahasia per ruang kerja.
Menentukan simpanan fitur jarak jauh
Berdasarkan cakupan rahasia dan awalan nama yang Anda buat untuk ruang kerja simpan fitur jarak jauh, Anda dapat membangun URI penyimpanan fitur dari formulir:
feature_store_uri = f'databricks://<scope>:<prefix>'
Kemudian, tentukan URI secara eksplisit saat Anda memberi contoh FeatureStoreClient
:
fs = FeatureStoreClient(feature_store_uri=feature_store_uri)
Membuat database untuk tabel fitur di lokasi DBFS bersama
Sebelum Anda membuat tabel fitur di penyimpanan fitur jarak jauh, Anda harus membuat database untuk menyimpannya. Database harus ada di lokasi DBFS bersama.
Misalnya, untuk membuat database recommender
di lokasi bersama /mnt/shared
, gunakan perintah berikut:
%sql CREATE DATABASE IF NOT EXISTS recommender LOCATION '/mnt/shared'
Membuat tabel fitur di simpanan fitur jarak jauh
API untuk membuat tabel fitur di penyimpanan fitur jarak jauh bergantung pada versi runtime bahasa umum Databricks yang Anda gunakan.
V0.3.6 ke atas
Gunakan FeatureStoreClient.create_table
API:
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 ke bawah
Gunakan FeatureStoreClient.create_feature_table
API:
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'
)
Untuk contoh metode Penyimpanan Fitur lainnya, lihat Contoh buku catatan: Berbagi tabel fitur di seluruh ruang kerja.
Menggunakan tabel fitur dari penyimpanan fitur jarak jauh
Anda dapat membaca tabel fitur di simpan fitur jarak jauh dengan metode dengan FeatureStoreClient.read_table
terlebih dahulu mengatur feature_store_uri
:
fs = FeatureStoreClient(feature_store_uri=f'databricks://<scope>:<prefix>')
customer_features_df = fs.read_table(
name='recommender.customer_features',
)
Metode pembantu lain untuk mengakses tabel fitur juga didukung:
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()
Menggunakan registri model jarak jauh
Selain menentukan URI penyimpanan fitur jarak jauh, Anda juga dapat menentukan URI registri model jarak jauh untuk berbagi model di seluruh ruang kerja.
Untuk menentukan registri model jarak jauh untuk pencatatan atau penilaian model, Anda dapat menggunakan URI registri model untuk memberi contoh FeatureStoreClient.
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"
)
Menggunakan feature_store_uri
dan model_registry_uri
, Anda dapat melatih model menggunakan tabel fitur lokal atau jarak jauh, dan kemudian mendaftarkan model di registri model lokal atau jarak jauh.
fs = FeatureStoreClient(
feature_store_uri=f'databricks://<scope>:<prefix>',
model_registry_uri=f'databricks://<scope>:<prefix>'
)
Contoh buku catatan: Berbagi tabel fitur di seluruh ruang kerja
Buku catatan berikut ini memperlihatkan cara bekerja dengan penyimpanan fitur terpusat.