Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Penting
Fitur ini ada di Pratinjau Umum. Admin ruang kerja dapat mengontrol akses ke fitur ini dari halaman Pratinjau . Lihat Kelola Pratinjau Azure Databricks.
Setelah membuat definisi Tampilan Fitur, yang disimpan di Katalog Unity, Anda dapat menghasilkan data fitur dari tabel sumber Anda menggunakan definisi fitur. Proses ini disebut mewujudkan fitur Anda. Azure Databricks membuat dan mengelola alur Lakeflow untuk mengisi tabel di Unity Catalog untuk pelatihan model dan penilaian batch atau penyajian online.
Untuk informasi tentang menyajikan Tampilan Fitur, lihat Menyajikan Tampilan Fitur.
Persyaratan
- Fitur harus dibuat sebagai Tampilan Fitur dan disimpan di Katalog Unity.
- Untuk persyaratan versi, lihat Persyaratan.
-
ColumnSelectionfitur dapat direalisasikan ke toko online. Lihat Materialisasi Pilihan Kolom. -
RequestSourcefitur ini tidak dapat dimaterialisasi karena mewakili data yang disediakan saat waktu inferensi.
Permissions
Materialisasi berkaitan dengan hak istimewa Unity Catalog MANAGE dan READ FEATURE pada fitur ini. Untuk deskripsi hak istimewa lengkap, lihat FITUR BACA.
- Mewujudkan fitur memerlukan
MANAGE. Memanggilmaterialize_featuresataudelete_materialized_featuremembuat dan mengelola alur Lakeflow backing dan tabel Unity Catalog, sehingga merupakan operasi manajemen. Anda harus memilikiMANAGEpada fitur tersebut, sertaREAD FEATUREuntuk membaca definisi fitur yang dimaterialisasi. - Membaca data termaterialisasi memerlukan
READ FEATURE.READ FEATUREpada fitur ini memberikan akses ke tabel offline dan online yang mendukungnya, sehingga Anda dapat menggunakan data terwujud untuk pelatihan dan penyajian model.list_materialized_featuresjuga memerlukanREAD FEATURE.
Seperti halnya objek Katalog Unity apa pun, Anda juga perlu USE CATALOG pada katalog induk dan USE SCHEMA pada skema induk.
READ FEATURE dan MANAGE diberikan pada skema atau katalog berlaku untuk semua fitur saat ini dan di masa mendatang yang dikandungnya.
Struktur data API
OfflineStoreConfig
Konfigurasi untuk penyimpanan offline tempat fitur materialisasi akan ditulis. Ketika materialize_features dipanggil, backend penyimpanan fitur membuat tabel menggunakan awalan ini. Setiap eksekusi alur mewujudkan nilai fitur terbaru ke tabel sesuai dengan jadwal materialisasi.
OfflineStoreConfig(
catalog_name: str, # Catalog name for the offline table where materialized features will be stored
schema_name: str, # Schema name for the offline table
table_name_prefix: str # Table name prefix for the offline table. The pipeline may create multiple tables with this prefix, each updated at different cadences
)
from databricks.feature_engineering.entities import OfflineStoreConfig
offline_store = OfflineStoreConfig(
catalog_name="main",
schema_name="feature_store",
table_name_prefix="customer_features"
)
OnlineStoreConfig
Konfigurasi untuk toko online, yang menyimpan fitur yang digunakan oleh penyajian model. Materialisasi membuat tabel Delta dengan catalog.schema.table_name_prefix, dan menyalurkan tabel ke Penyimpanan Fitur Online dengan nama yang sama.
from databricks.feature_engineering.entities import OnlineStoreConfig
online_store = OnlineStoreConfig(
catalog_name="main",
schema_name="feature_store",
table_name_prefix="customer_features_serving",
online_store_name="customer_features_store"
)
MaterializedFeature
Mewakili Tampilan Fitur yang telah dimaterialisasi, yaitu memiliki representasi yang telah diprakomputasi dan tersedia di Unity Catalog. Ada fitur materialisasi terpisah untuk tabel offline dan tabel online. Biasanya, pengguna tidak akan menginstansiasi MaterializedFeature secara langsung.
Panggilan fungsi API
materialize_features()
Mematerialisasikan daftar Feature View menjadi tabel Delta offline atau ke Feature Store online. Fitur harus terdaftar di Katalog Unity sebelum memanggil fungsi ini (misalnya, menggunakan create_feature atau register_feature). Fitur yang dibangun secara lokal yang belum terdaftar tidak akan berfungsi.
FeatureEngineeringClient.materialize_features(
features: List[Feature], # List of Feature Views to materialize
offline_config: Optional[OfflineStoreConfig] = None, # Offline store config (aggregation features only)
online_config: Optional[OnlineStoreConfig] = None, # Online store config
trigger: Union[CronSchedule, TableTrigger, StreamingMode], # Materialization trigger
) -> List[MaterializedFeature]:
Metode ini mengembalikan daftar fitur yang diwujudkan, yang berisi metadata tentang waktu pembaruan nilai fitur dan tabel dalam Unity Catalog tempat fitur diwujudkan.
Jika sebuah OnlineStoreConfig dan sebuah OfflineStoreConfig disediakan, maka dua fitur yang terwujud akan dikembalikan untuk setiap fitur yang disediakan, satu untuk setiap jenis penyimpanan.
Parameter trigger mengontrol kapan alur materialisasi berjalan:
-
CronSchedule: Berjalan pada jadwal tetap. Didukung untuk fitur agregasi batch (AggregationFunctiondariDeltaTableSource). -
TableTrigger: Berjalan ketika tabel Delta terhulu menerima komit. Didukung pada fiturColumnSelectiondan fitur agregasi (AggregationFunction) yang didukung oleh sumber dataDeltaTableSource. Untuk fitur agregasi, pipeline dibatasi lajunya agar berjalan paling banyak satu kali dalam setiap setengah dari panjang jendela fitur. Misalnya, paling banyak sekali setiap 30 menit selama jendela waktu 1 jam, tapi tidak pernah lebih dari setiap 5 menit. -
StreamingMode: Berjalan sebagai alur streaming berkelanjutan. Diperlukan untuk fitur yang didukung olehStreamSource.
Anda tidak dapat mencampur fitur yang memerlukan jenis pemicu yang berbeda dalam satu materialize_features panggilan. Lakukan panggilan terpisah sebagai gantinya.
Materialisasi ke penyimpanan offline
from databricks.feature_engineering import FeatureEngineeringClient
from databricks.feature_engineering.entities import (
CronSchedule, OfflineStoreConfig,
)
fe = FeatureEngineeringClient()
materialized = fe.materialize_features(
features=features,
offline_config=OfflineStoreConfig(
catalog_name="main",
schema_name="feature_store",
table_name_prefix="customer_features"
),
trigger=CronSchedule(
quartz_cron_expression="0 0 * * * ?", # Hourly
timezone_id="UTC",
),
)
Mengimplementasikan menjadi toko online
Nota
Untuk merealisasikan fitur agregasi ke toko online, Anda juga harus mengimplementasikannya di toko offline. Keduanya offline_config dan online_config diperlukan.
online_store_name harus merujuk kepada Toko Fitur Online yang sudah ada. Untuk petunjuk untuk membuat satu, lihat Penyimpanan Fitur Online Databricks.
ColumnSelection fitur tidak memerlukan OfflineStoreConfig. Lihat Materialisasi Pilihan Kolom.
from databricks.feature_engineering import FeatureEngineeringClient
from databricks.feature_engineering.entities import (
CronSchedule, OfflineStoreConfig, OnlineStoreConfig,
)
fe = FeatureEngineeringClient()
materialized = fe.materialize_features(
features=features,
offline_config=OfflineStoreConfig(
catalog_name="main",
schema_name="feature_store",
table_name_prefix="customer_features"
),
online_config=OnlineStoreConfig(
catalog_name="main",
schema_name="feature_store",
table_name_prefix="customer_features_serving",
online_store_name="customer_features_store"
),
trigger=CronSchedule(
quartz_cron_expression="0 0 * * * ?", # Hourly
timezone_id="UTC",
),
)
Mewujudkan fitur streaming
Fitur streaming hanya dapat diwujudkan ke toko online; offline_config parameter tidak didukung. Materialisasi offline tidak didukung karena fitur streaming memerlukan pipeline real-time untuk memastikan kesegaran data dalam hitungan kurang dari satu detik. Untuk pelatihan atau evaluasi offline, klien rekayasa fitur akan mengolah ulang nilai fitur berdasarkan setiap titik data yang dievaluasi.
Fitur streaming tidak dapat dicampur dengan fitur batch dalam panggilan yang sama materialize_features .
from databricks.feature_engineering import FeatureEngineeringClient
from databricks.feature_engineering.entities import (
OnlineStoreConfig, StreamingMode,
)
fe = FeatureEngineeringClient()
materialized = fe.materialize_features(
features=[streaming_feature],
online_config=OnlineStoreConfig(
catalog_name="my_catalog",
schema_name="my_schema",
table_name_prefix="streaming_features_serving",
online_store_name="feature_store_online"
),
trigger=StreamingMode(),
)
list_materialized_features()
Mengembalikan materialisasi dari satu fitur, yang diidentifikasi berdasarkan nama lengkapnya.
feature_name wajib dan hanya dapat digunakan sebagai argumen kata kunci. Untuk meninjau materialisasi di banyak fitur, pertama-tama cantumkan fitur dalam katalog atau skema, lalu panggil list_materialized_features pada setiap fitur yang dikembalikan.
Secara default, maksimum 100 materialisasi dikembalikan. Anda dapat mengubah batas ini menggunakan max_results parameter .
FeatureEngineeringClient.list_materialized_features(
*, # Arguments are keyword-only
feature_name: str, # Required: full name of the feature whose materializations to list
max_results: int = 100, # Maximum number of materializations to return
) -> List[MaterializedFeature]:
delete_materialized_feature()
Sebelum menghapus fitur yang dimaterialisasikan, hapus atau perbarui model atau spesifikasi fitur apa pun yang merujuk pada fitur tersebut.
Menghapus fitur materialisasi. Fitur yang akan diteruskan tergantung pada jenis fitur:
- Fitur agregasi: Pindahkan fitur yang telah dimaterialisasi offline. Jika ada fitur yang dilaksanakan secara online untuk fitur tersebut, maka keduanya akan dihapus.
-
ColumnSelectionfitur: Sampaikan fitur terwujud secara online.ColumnSelectionfitur diimplementasikan khusus untuk toko online (lihat proses materialisasi ColumnSelection), sehingga tidak ada fitur offline yang dipasangkan.
Sebagai bagian dari materialisasi, fitur dikelompokkan bersama berdasarkan sumber data dan jendela agregasi untuk efisiensi.
ColumnSelection fitur tidak memiliki jendela agregasi, sehingga hanya dikelompokkan menurut sumber data. Alur materialisasi, tabel offline, dan tabel online tidak dihapus hingga semua fitur yang dikelompokkan telah dihapus. Ketika fitur yang dimaterialisasi terakhir dalam suatu grup dihapus, feature store menjadwalkan pembersihan otomatis sumber daya terkait melalui proses latar belakang. Lihat Pembersihan sumber daya latar belakang.
Untuk menghapus fitur yang terwujud, lihat tabel yang terkait dengan fitur tersebut. Setiap fitur dalam tabel (satu per kolom) harus dihapus sebelum sumber daya tabel komputasi dan Delta dibersihkan.
Gunakan list_materialized_features() untuk mendapatkan materialized_feature argumen.
FeatureEngineeringClient.delete_materialized_feature(
materialized_feature: MaterializedFeature, # Required: The materialized feature to delete
) -> None
from databricks.feature_engineering import FeatureEngineeringClient
fe = FeatureEngineeringClient()
feature_names = [
"main.feature_store.amount_sum_sliding_7d_1d",
"main.feature_store.amount_sum_sliding_30d_1d",
"main.feature_store.transaction_count_sliding_7d_1d",
"main.feature_store.latest_transaction_amount",
"main.feature_store.latest_user_tier",
]
for name in feature_names:
mfs = fe.list_materialized_features(feature_name=name) # required, keyword-only
offline = [mf for mf in mfs if not mf.is_online]
for mf in (offline or mfs):
fe.delete_materialized_feature(materialized_feature=mf)
fe.delete_feature(full_name=name)
Materialisasi "ColumnSelection"
ColumnSelection fitur memungkinkan pemilihan nilai terbaru dari satu kolom per kunci entitas tanpa proses agregasi. Mereka hanya dapat diwujudkan di toko online. Untuk kasus penggunaan offline (pelatihan dan pemodelan batch), ColumnSelection fitur diambil langsung dari sumber data saat permintaan data, sehingga materialisasi offline tidak diperlukan.
Perilaku materialisasi
- Alur menulis baris terbaru per kunci entitas ke tabel online, tanpa jendela agregasi.
- Materialisasi online mengisi tabel online dengan nilai terbaru saat ini per kunci entitas.
Example
from databricks.feature_engineering import FeatureEngineeringClient
from databricks.feature_engineering.entities import (
DeltaTableSource, Feature, ColumnSelection, TableTrigger, OnlineStoreConfig,
)
fe = FeatureEngineeringClient()
delta_source = DeltaTableSource(
catalog_name="catalog",
schema_name="schema",
table_name="transactions",
)
amount_feature = Feature(
source=delta_source,
function=ColumnSelection("amount"),
entity=["user_id"],
timeseries_column="transaction_time",
name="latest_transaction_amount",
)
# Register before materializing
amount_feature = fe.register_feature(
feature=amount_feature,
catalog_name="catalog",
schema_name="schema",
)
mfs = fe.materialize_features(
features=[amount_feature],
online_config=OnlineStoreConfig(
catalog_name="catalog",
schema_name="feats_online",
table_name_prefix="txn_",
online_store_name="lb_usw2"
),
trigger=TableTrigger(),
)
ColumnSelection fitur menggunakan TableTrigger, yang menjalankan alur setiap kali tabel Delta sumber menerima penerapan baru.
offline_config tidak diperlukan karena fitur ColumnSelection dibaca langsung dari sumber untuk kasus penggunaan offline (pelatihan dan inferensi batch).
Nota
RequestSource fitur tidak dapat dimaterialkan karena mewakili data yang diberikan oleh pemanggil pada waktu inferensi (atau diekstrak dari DataFrame berlabel pada waktu pelatihan). Tidak ada tabel sumber untuk dibaca. Nilai-nilai tersebut hanya ada dalam payload permintaan atau DataFrame pelatihan.
Pembersihan sumber daya latar belakang
Saat Anda menghapus fitur termaterialisasi, Databricks segera menghapus metadata fitur tersebut. Infrastruktur terkait (tabel, alur, dan pekerjaan) dibersihkan secara asinkron oleh proses latar belakang.
Karena beberapa fitur termaterialisasi dapat berbagi tabel dan pipeline yang sama, sumber daya bersama ini tidak akan dihapus sampai semua fitur termaterialisasi yang merujuk ke sumber daya tersebut telah dihapus. Saat fitur terwujud terakhir yang berbagi sekumpulan tabel dihapus, proses latar belakang secara otomatis menghapus sumber daya berikut:
- Tabel Delta offline yang berisi data fitur yang dimaterialisasi
- Tabel online, jika fitur diwujudkan ke toko online
- Alur materialisasi
- Pekerjaan orkestrasi
Proses latar belakang ini menggunakan perwakilan layanan sistem yang dikelola Databricks untuk melakukan tindakan pembersihan ini atas nama Anda, termasuk menghapus tabel, alur, dan pekerjaan di ruang kerja Anda. Anda tidak perlu melakukan tindakan apa pun. Pembersihan sepenuhnya dikelola oleh feature store.
Nota
Mungkin ada penundaan singkat antara menghapus fitur terwujud terakhir dalam grup dan penghapusan tabel terkait dan sumber daya lainnya.
Lihat status materialisasi
Untuk melihat status materialisasi Tampilan Fitur Anda di UI Databricks serta men-debug error materialisasi, lihat Jelajahi Tampilan Fitur di Unity Catalog.
Keterbatasan
Fitur pemrosesan batch
- Alur materialisasi batch berjalan sebagai alur Lakeflow tanpa server.
- Fitur jendela bergulir batch tidak dapat diimplementasikan. Karena keakuratan waktu yang tinggi, fitur jendela berguling untuk pelatihan offline atau inferensi batch dihasilkan secara instan untuk setiap titik data.
-
ColumnSelectionfitur hanya dapat diimplementasikan di toko online. -
RequestSourcefitur tidak dapat diwujudkan. - Fitur materialisasi hanya dapat dihapus di ruang kerja tempat fitur tersebut dibuat.
- Untuk fitur agregasi yang dimaterialisasi, fitur online yang dimaterialisasi tidak bisa dihapus langsung. Hapus fitur materialisasi offline yang dipasangkan, dan perubahan disebarkan ke keduanya.
- Untuk fitur agregasi yang dimaterialisasi yang dibuat sebelum 20 April 2026, pemrosesan materialisasi terus menghasilkan nilai fitur yang baru sampai semua fitur yang dimaterialisasi dalam pemrosesan tersebut telah dihapus, yang memicu pembersihan sumber daya. Untuk membuat alur yang diperbarui yang mendukung penghapusan per fitur, hapus dan buat ulang fitur.
- Untuk fitur materialisasi
ColumnSelection, alur materialisasi terus menghasilkan nilai fitur baru sampai semua fitur materialisasi dalam alur telah dihapus, yang memicu pembersihan sumber daya.
Fitur streaming
- Fitur streaming hanya dapat diwujudkan ke toko online. Materialisasi offline tidak diperlukan karena fitur streaming selama pelatihan dirancang untuk dihitung ulang dari peristiwa historis untuk setiap titik data guna memberikan akurasi tingkat milidetik.
- Fitur streaming tidak dapat dicampur dengan fitur batch dalam satu
materialize_featurespanggilan. -
compute_featurestidak mendukung fitur streaming. - Ruang kerja harus berada di wilayah yang mendukung instans Lakebase.
- Hanya pesan Kafka yang diserialisasi dalam format JSON yang didukung. Skema pesan harus disediakan langsung dalam format Skema JSON. Registri skema (Confluent, Glue) tidak didukung secara resmi selama pratinjau, tetapi jika Anda memberikan skema secara langsung, alur dapat membaca dari topik yang diatur oleh registri skema.
- Hanya
RollingWindowdidukung untuk fitur agregasi streaming.TumblingWindowdanSlidingWindowharus digunakan dengan fitur batch. - Hanya fungsi agregasi
Count,Avg,Sum,Max,StddevPop,Min,Last,LastDistinct,First,FirstN,LastN, danFirstDistinctyang didukung untuk fitur streaming. - Fitur pemilihan kolom dari sumber streaming tidak menangani pesan yang tidak berurutan. Peristiwa terbaru pada aliran Kafka ditampilkan, bahkan jika nilai kolom timeseries lebih awal dari peristiwa yang diterima sebelumnya.
- Alur streaming dimulai ulang dua kali seminggu. Setiap mulai ulang dapat menyebabkan penundaan pemrosesan dan waktu mulai hingga 1 menit. Tidak termasuk menghidupkan ulang, kesegaran p99 adalah 200ms.
- Pengisian ulang fitur untuk materialisasi tidak didukung. Saat sebuah fitur dimaterialisasikan, perhitungannya dilakukan sejak titik itu dan seterusnya. Agregasi yang baru dibuat dalam toko online tidak akurat hingga jangka waktunya berakhir.
- Hanya Databricks Online Feature Store yang didukung.
- Alur materialisasi streaming berjalan sebagai alur Lakeflow tanpa server.
- Ruang kerja tingkat perusahaan saja.