Bagikan melalui


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.

Beberapa ruang kerja toko fitur

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.

  1. Di Ruang Kerja B, buat token akses.
  2. Di ruang kerja lokal Anda, buat rahasia untuk menyimpan token akses dan informasi tentang Ruang Kerja B:
    1. Membuat cakupan rahasia databricks secrets create-scope --scope <scope>.
    2. 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.

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.

Contoh buku catatan Penyimpanan Fitur Terpusat

Dapatkan buku catatan