全部产品
Search
文档中心

Platform For AI:Praktik terbaik FeatureStore

更新时间:Jan 22, 2026

Topik ini menjelaskan cara menggunakan kit pengembangan perangkat lunak (SDK) FeatureStore untuk mengelola fitur dalam sistem rekomendasi tanpa menggunakan produk Alibaba Cloud lainnya.

Informasi latar belakang

Sistem rekomendasi menyarankan konten atau produk yang dipersonalisasi kepada pengguna berdasarkan minat dan preferensi mereka. Langkah penting dalam sistem rekomendasi adalah mengekstraksi dan mengonfigurasi fitur untuk pengguna dan item. Dokumen ini menunjukkan cara membangun sistem rekomendasi menggunakan FeatureStore serta mengelola data fitur dengan berbagai versi SDK FeatureStore.

Untuk informasi selengkapnya tentang FeatureStore, lihat Ikhtisar FeatureStore.

Jika Anda memiliki pertanyaan selama konfigurasi atau penggunaan, Anda dapat bergabung dengan grup DingTalk kami (ID: 34415007523) untuk mendapatkan dukungan teknis.

Prasyarat

Sebelum memulai, lengkapi persiapan berikut.

Produk Dependen

Operasi spesifik

Platform for AI (PAI)

MaxCompute

FeatureDB

DataWorks

1. Persiapkan data

Menyinkronkan tabel data

Dalam skenario rekomendasi khas, Anda perlu menyiapkan tiga tabel data: tabel fitur pengguna, tabel fitur item, dan tabel label.

Untuk tujuan latihan, kami telah menyiapkan tabel sampel pengguna, item, dan label di proyek MaxCompute pai_online_project. Tabel pengguna dan item masing-masing berisi sekitar 100.000 entri data per partisi dan menempati sekitar 70 MB penyimpanan di MaxCompute. Tabel label berisi sekitar 450.000 entri data per partisi dan menempati sekitar 5 MB penyimpanan di MaxCompute.

Jalankan perintah SQL di DataWorks untuk menyinkronkan tabel pengguna, item, dan label dari proyek pai_online_project ke proyek MaxCompute Anda sendiri. Ikuti langkah-langkah berikut:

  1. Masuk ke Konsol DataWorks.

  2. Di panel navigasi sebelah kiri, klik Data Development and O&M > Data Development.

  3. Pilih ruang kerja DataWorks yang telah Anda buat dan klik Go to Data Studio.

  4. Arahkan kursor ke Create, lalu pilih Create Node > MaxCompute > MaxCompute SQL. Di kotak dialog yang muncul, konfigurasikan parameter node.

    Parameter

    Nilai yang disarankan

    Type

    MaxCompute SQL

    Path

    Business Flow/Workflow/MaxCompute

    Name

    Masukkan nama kustom.

  5. Klik OK.

  6. Di area node baru, jalankan perintah SQL berikut untuk menyinkronkan tabel pengguna, item, dan label dari proyek pai_online_project ke proyek MaxCompute Anda sendiri. Untuk Resource Group, pilih grup sumber daya eksklusif yang telah Anda buat.

    Menyinkronkan tabel pengguna: rec_sln_demo_user_table_preprocess_all_feature_v1 (Klik untuk detail)

    CREATE TABLE IF NOT EXISTS rec_sln_demo_user_table_preprocess_all_feature_v1
    like pai_online_project.rec_sln_demo_user_table_preprocess_all_feature_v1
    STORED AS ALIORC  
    LIFECYCLE 90;
    
    INSERT OVERWRITE TABLE rec_sln_demo_user_table_preprocess_all_feature_v1 PARTITION (ds)
    SELECT *
    FROM pai_online_project.rec_sln_demo_user_table_preprocess_all_feature_v1
    WHERE ds >= '20231022' and ds <='20231024';

    Setelah menjalankan perintah, data tersedia di tiga partisi berikut:

    • ds=20231022

    • ds=20231023

    • ds=20231024

    Menyinkronkan tabel item: rec_sln_demo_item_table_preprocess_all_feature_v1 (Klik untuk detail)

    CREATE TABLE IF NOT EXISTS rec_sln_demo_item_table_preprocess_all_feature_v1
    like pai_online_project.rec_sln_demo_item_table_preprocess_all_feature_v1
    STORED AS ALIORC  
    LIFECYCLE 90;
    
    INSERT OVERWRITE TABLE rec_sln_demo_item_table_preprocess_all_feature_v1 PARTITION(ds)
    SELECT *
    FROM pai_online_project.rec_sln_demo_item_table_preprocess_all_feature_v1
    WHERE ds >= '20231022' and ds <='20231024';

    Setelah menjalankan perintah, data tersedia di tiga partisi berikut:

    • ds=20231022

    • ds=20231023

    • ds=20231024

    Menyinkronkan tabel label: rec_sln_demo_label_table (Klik untuk detail)

    CREATE TABLE IF NOT EXISTS rec_sln_demo_label_table
    like pai_online_project.rec_sln_demo_label_table
    STORED AS ALIORC  
    LIFECYCLE 90;
    
    INSERT OVERWRITE TABLE rec_sln_demo_label_table PARTITION (ds)
    SELECT *
    FROM pai_online_project.rec_sln_demo_label_table
    WHERE ds >= '20231022' and ds <='20231024';

    Setelah menjalankan perintah, data tersedia di tiga partisi berikut:

    • ds=20231022

    • ds=20231023

    • ds=20231024

Setelah menyelesaikan langkah-langkah ini, Anda dapat melihat tabel pengguna rec_sln_demo_user_table_preprocess_all_feature_v1, tabel item rec_sln_demo_item_table_preprocess_all_feature_v1, dan tabel label rec_sln_demo_label_table di ruang kerja Anda. Ketiga tabel ini digunakan sebagai contoh dalam operasi berikutnya.

Konfigurasikan sumber data

FeatureStore biasanya memerlukan dua sumber data: offline store (MaxCompute) dan online store (FeatureDB, Hologres, atau TableStore). Topik ini menggunakan MaxCompute dan FeatureDB sebagai contoh.

  1. Masuk ke Konsol PAI. Di panel navigasi sebelah kiri, klik Data Preparation > FeatureStore.

  2. Pilih ruang kerja dan klik Enter FeatureStore.

  3. Konfigurasikan sumber data MaxCompute.

    1. Di tab Store, klik Create Store. Di kotak dialog yang muncul, konfigurasikan parameter untuk sumber data MaxCompute.

      Parameter

      Nilai yang disarankan

      Type

      MaxCompute

      Name

      Masukkan nama kustom.

      MaxCompute Project Name

      Pilih proyek MaxCompute yang telah Anda buat.

    2. Salin pernyataan otorisasi. Lalu, klik Buka Sekarang untuk menuju ke DataWorks. Jalankan pernyataan tersebut di DataWorks untuk memberikan izin yang diperlukan.

      Catatan

      Operasi otorisasi memerlukan akun Anda memiliki izin admin. Untuk informasi selengkapnya, lihat Kelola izin pengguna menggunakan perintah atau Kelola izin pengguna di konsol.

    3. Setelah konfigurasi selesai, klik Submit.

  4. Konfigurasikan sumber data FeatureDB.

    1. Jika Anda telah membuat sumber data FeatureDB, Anda dapat melewati langkah ini.

    2. Di tab Store, klik Create Store. Di kotak dialog yang muncul, konfigurasikan parameter untuk sumber data FeatureDB.

      Parameter

      Nilai yang disarankan

      Type

      FeatureDB (Jika ini pertama kali Anda menggunakannya, ikuti petunjuk di layar untuk mengaktifkan FeatureDB)

      Name

      Nama kustom tidak didukung. Nilai default-nya adalah feature_db.

      Username

      Tetapkan username.

      Password

      Tetapkan password.

      Koneksi VPC Berkecepatan Tinggi (Opsional)

      Setelah konfigurasi berhasil, Anda dapat menggunakan SDK FeatureStore di VPC untuk langsung mengakses FeatureDB melalui koneksi PrivateLink. Hal ini meningkatkan performa baca-tulis data dan mengurangi latensi akses.

      VPC

      Pilih VPC tempat layanan FeatureStore online Anda berada.

      Zona dan vSwitch

      Pilih zona dan vSwitch. Pastikan memilih vSwitch di zona tempat mesin layanan online Anda berada. Kami merekomendasikan memilih vSwitch di minimal dua zona untuk memastikan ketersediaan tinggi dan stabilitas bisnis Anda.

    3. Setelah konfigurasi selesai, klik Submit.

2. Buat dan daftarkan proyek FeatureStore

Anda dapat membuat dan mendaftarkan proyek FeatureStore menggunakan konsol atau SDK. Karena SDK diperlukan untuk operasi selanjutnya, seperti mengekspor set pelatihan dan menyinkronkan data, Anda harus menginstal SDK Python FeatureStore meskipun menggunakan konsol untuk pengaturan awal.

Metode 1: Gunakan konsol

  1. Buat proyek FeatureStore.

    1. Masuk ke Konsol PAI. Di panel navigasi sebelah kiri, klik Data Preparation > FeatureStore.

    2. Pilih ruang kerja dan klik Enter FeatureStore.

    3. Klik Create Project. Di kotak dialog yang muncul, konfigurasikan parameter proyek.

      Parameter

      Nilai yang disarankan

      Name

      Masukkan nama kustom. Topik ini menggunakan fs_demo sebagai contoh.

      Description

      Masukkan deskripsi kustom.

      Offline Store

      Pilih sumber data MaxCompute yang telah Anda buat.

      Online Store

      Pilih sumber data FeatureDB yang telah Anda buat.

    4. Klik Submit untuk membuat proyek FeatureStore.

  2. Buat entitas fitur.

    1. Pada halaman FeatureStore Projects, klik nama proyek untuk membuka halaman detailnya.

    2. Di tab Feature Entity, klik Create Feature Entity. Di kotak dialog yang muncul, konfigurasikan parameter untuk entitas fitur pengguna.

      Parameter

      Nilai yang disarankan

      Feature Entity Name

      Masukkan nama kustom. Topik ini menggunakan user sebagai contoh.

      Join Id

      user_id

    3. Klik Submit.

    4. Klik Create Feature Entity. Di kotak dialog yang muncul, konfigurasikan parameter untuk entitas fitur item.

      Parameter

      Nilai yang disarankan

      Feature Entity Name

      Masukkan nama kustom. Topik ini menggunakan item sebagai contoh.

      Join Id

      item_id

    5. Klik Submit untuk membuat entitas fitur.

  3. Buat tampilan fitur.

    1. Di tab Feature View halaman detail proyek, klik Create Feature View. Di kotak dialog yang muncul, konfigurasikan parameter untuk tampilan fitur pengguna.

      Parameter

      Nilai yang disarankan

      View Name

      Masukkan nama kustom. Topik ini menggunakan user_table_preprocess_all_feature_v1 sebagai contoh.

      Type

      Offline

      Write Mode

      Use Offline Table

      Store

      Pilih sumber data MaxCompute yang telah Anda buat.

      Feature Table

      Pilih tabel pengguna yang telah Anda siapkan: rec_sln_demo_user_table_preprocess_all_feature_v1.

      Feature Field

      Pilih kunci utama user_id.

      Synchronize Online Feature Table

      Yes

      Feature Entity

      user

      Feature Lifecycle

      Pertahankan nilai default.

    2. Klik Submit.

    3. Klik Create Feature View. Di kotak dialog yang muncul, konfigurasikan tampilan fitur item.

      Parameter

      Nilai yang disarankan

      View Name

      Masukkan nama kustom. Topik ini menggunakan item_table_preprocess_all_feature_v1 sebagai contoh.

      Type

      Offline

      Write Mode

      Use Offline Table

      Store

      Pilih sumber data MaxCompute yang telah Anda buat.

      Feature Table

      Pilih tabel item yang telah Anda siapkan: rec_sln_demo_item_table_preprocess_all_feature_v1.

      Feature Field

      Pilih kunci utama item_id.

      Synchronize Online Feature Table

      Yes

      Feature Entity

      item

      Feature Lifecycle

      Pertahankan nilai default.

    4. Setelah konfigurasi selesai, klik Submit untuk membuat tampilan fitur.

  4. Buat tabel label.

    1. Di tab Label Table halaman detail proyek, klik Create Label Table. Di kotak dialog yang muncul, konfigurasikan informasi tabel label.

      Parameter

      Nilai yang disarankan

      Store

      Pilih sumber data MaxCompute yang telah Anda buat.

      Table Name

      Pilih tabel label yang telah Anda siapkan: rec_sln_demo_label_table.

    2. Klik Submit.

  5. Buat fitur model.

    1. Di tab Model Features halaman detail proyek, klik Create Model Feature. Di kotak dialog yang muncul, konfigurasikan parameter fitur model.

      Parameter

      Nilai yang disarankan

      Model Feature Name

      Masukkan nama kustom. Topik ini menggunakan fs_rank_v1 sebagai contoh.

      Select Feature

      Pilih tampilan fitur pengguna dan item yang telah Anda buat.

      Label Table Name

      Pilih tabel label yang telah Anda buat: rec_sln_demo_label_table.

    2. Klik Submit untuk membuat fitur model.

    3. Di halaman daftar fitur model, klik Details di sebelah kanan model Anda.

    4. Di kotak dialog Model Feature Details yang muncul, di tab Basic Information, Anda dapat melihat Export Table Name, yaitu fs_demo_fs_rank_v1_trainning_set. Tabel ini digunakan untuk produksi fitur dan pelatihan model selanjutnya.

  6. Instal SDK Python FeatureStore. Untuk informasi selengkapnya, lihat Gunakan FeatureStore untuk mengelola fitur dalam sistem rekomendasi.

Metode 2: Gunakan SDK Python FeatureStore

  1. Masuk ke Konsol DataWorks.

  2. Di panel navigasi sebelah kiri, klik Resource Groups.

  3. Di tab Exclusive Resource Groups, temukan grup sumber daya yang Purpose adalah Data Scheduling. Klik ikon image.png di sebelah sumber daya jadwalnya dan pilih O&M Assistant.

  4. Klik Create Command. Di kotak dialog yang muncul, konfigurasikan parameter perintah.

    Parameter

    Nilai yang disarankan

    Nama Perintah

    Masukkan nama kustom. Topik ini menggunakan install sebagai contoh.

    Tipe Perintah

    Manual Input (pip Command Cannot Be Used To Install Third-party Packages)

    Konten Perintah

    /home/tops/bin/pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple https://feature-store-py.oss-cn-beijing.aliyuncs.com/package/feature_store_py-2.0.2-py3-none-any.whl

    Timeout

    Tetapkan waktu kustom.

  5. Klik Create untuk membuat perintah.

  6. Klik Run Command. Di kotak dialog yang muncul, klik Run.

  7. Anda dapat mengklik Refresh untuk melihat status eksekusi terbaru. Saat status berubah menjadi Success, instalasi selesai.

Untuk langkah-langkah detail menggunakan SDK, lihat DSW Gallery.

3. Jalankan node sinkronisasi data

Sebelum menerbitkan layanan Anda, Anda perlu menjalankan node sinkronisasi data secara berkala untuk menyinkronkan data dari offline store ke online store. Layanan online kemudian membaca data dari online store secara real time. Contoh ini menunjukkan cara mengonfigurasi tugas sinkronisasi berulang untuk tabel fitur pengguna dan item.

  1. Masuk ke Konsol DataWorks.

  2. Di panel navigasi sebelah kiri, klik Data Development and O&M > Data Development.

  3. Pilih ruang kerja DataWorks yang telah Anda buat dan klik Enter Data Development.

  4. Konfigurasikan sinkronisasi berulang untuk tabel pengguna.

    1. Arahkan kursor ke Create, lalu pilih New Node > MaxCompute > PyODPS 3.

    2. Salin konten berikut ke skrip untuk menyelesaikan sinkronisasi berulang user_table_preprocess_all_feature_v1.

      from feature_store_py.fs_client import FeatureStoreClient
      import datetime
      from feature_store_py.fs_datasource import MaxComputeDataSource
      import sys
      from odps.accounts import StsAccount
      
      cur_day = args['dt']
      print('cur_day = ', cur_day)
      
      access_key_id = o.account.access_id
      access_key_secret = o.account.secret_access_key
      sts_token = None
      endpoint = 'paifeaturestore-vpc.cn-beijing.aliyuncs.com'
      if isinstance(o.account, StsAccount):
          sts_token = o.account.sts_token
      fs = FeatureStoreClient(access_key_id=access_key_id, access_key_secret=access_key_secret, security_token=sts_token, endpoint=endpoint)
      cur_project_name = 'fs_demo'
      project = fs.get_project(cur_project_name)
      
      feature_view_name = 'user_table_preprocess_all_feature_v1'
      batch_feature_view = project.get_feature_view(feature_view_name)
      task = batch_feature_view.publish_table(partitions={'ds':cur_day}, mode='Overwrite', offline_to_online=True)
      task.wait()
      task.print_summary()
      
    3. Di panel navigasi sebelah kanan, klik Scheduling Configuration. Di kotak dialog yang muncul, konfigurasikan parameter penjadwalan.

      Parameter

      Suggested value

      Scheduling Parameters

      Parameter Name

      dt

      Parameter Value

      $[yyyymmdd-1]

      Resource Properties

      Scheduling Resource Group

      Pilih kelompok sumber daya eksklusif yang telah Anda buat.

      Scheduling Dependencies

      Pilih tabel pengguna yang telah Anda buat.

    4. Setelah mengonfigurasi dan menguji node, simpan dan kirimkan konfigurasi node.

    5. Lakukan operasi pengisian ulang data. Untuk informasi selengkapnya, lihat Sinkronkan tabel data.

  5. Konfigurasikan sinkronisasi berulang untuk tabel item.

    1. Arahkan kursor ke Create, lalu pilih New Node > MaxCompute > PyODPS 3. Di kotak dialog yang muncul, konfigurasikan parameter node.

    2. Klik Confirm.

    3. Salin konten berikut ke skrip.

      Sinkronisasi rutin untuk item_table_preprocess_all_feature_v1 (Klik untuk detail)

      from feature_store_py.fs_client import FeatureStoreClient
      import datetime
      from feature_store_py.fs_datasource import MaxComputeDataSource
      import sys
      from odps.accounts import StsAccount
      
      cur_day = args['dt']
      print('cur_day = ', cur_day)
      
      access_key_id = o.account.access_id
      access_key_secret = o.account.secret_access_key
      sts_token = None
      endpoint = 'paifeaturestore-vpc.cn-beijing.aliyuncs.com'
      if isinstance(o.account, StsAccount):
          sts_token = o.account.sts_token
      fs = FeatureStoreClient(access_key_id=access_key_id, access_key_secret=access_key_secret, security_token=sts_token, endpoint=endpoint)
      cur_project_name = 'fs_demo'
      project = fs.get_project(cur_project_name)
      
      feature_view_name = 'item_table_preprocess_all_feature_v1'
      batch_feature_view = project.get_feature_view(feature_view_name)
      task = batch_feature_view.publish_table(partitions={'ds':cur_day}, mode='Overwrite', offline_to_online=True)
      task.wait()
      task.print_summary()
    4. Di panel navigasi sebelah kanan, klik Scheduling Configuration. Di kotak dialog yang muncul, konfigurasikan parameter penjadwalan.

      Parameter

      Suggested value

      Scheduling Parameters

      Parameter Name

      dt

      Parameter Value

      $[yyyymmdd-1]

      Resource Properties

      Scheduling Resource Group

      Pilih kelompok sumber daya eksklusif yang telah Anda buat.

      Scheduling Dependencies

      Pilih item table yang telah Anda buat.

    5. Setelah mengonfigurasi dan menguji node, simpan dan kirimkan konfigurasi node.

    6. Lakukan operasi pengisian ulang data. Untuk informasi selengkapnya, lihat Sinkronkan tabel data.

  6. Setelah sinkronisasi selesai, Anda dapat melihat data fitur terbaru yang telah disinkronkan di Hologres.

4. Ekspor skrip set pelatihan

  1. Masuk ke Konsol DataWorks.

  2. Di panel navigasi sebelah kiri, klik Data Development and O&M > Data Development.

  3. Pilih ruang kerja DataWorks yang telah Anda buat dan klik Enter Data Development.

  4. Arahkan kursor ke Create, lalu pilih New Node > MaxCompute > PyODPS 3. Di kotak dialog yang muncul, konfigurasikan parameter node.

    Parameter

    Nilai yang disarankan

    Engine Instance

    Pilih mesin MaxCompute yang telah Anda buat.

    Node Type

    PyODPS 3

    Path

    Business Flow/Workflow/MaxCompute

    Name

    Masukkan nama kustom.

  5. Klik Confirm.

  6. Salin konten berikut ke skrip.

    from feature_store_py.fs_client import FeatureStoreClient
    from feature_store_py.fs_project import FeatureStoreProject
    from feature_store_py.fs_datasource import LabelInput, MaxComputeDataSource, TrainingSetOutput
    from feature_store_py.fs_features import FeatureSelector
    from feature_store_py.fs_config import LabelInputConfig, PartitionConfig, FeatureViewConfig
    from feature_store_py.fs_config import TrainSetOutputConfig, EASDeployConfig
    import datetime
    import sys
    from odps.accounts import StsAccount
    
    cur_day = args['dt']
    print('cur_day = ', cur_day)
    offset = datetime.timedelta(days=-1)
    pre_day = (datetime.datetime.strptime(cur_day, "%Y%m%d") + offset).strftime('%Y%m%d')
    print('pre_day = ', pre_day)
    
    
    access_key_id = o.account.access_id
    access_key_secret = o.account.secret_access_key
    sts_token = None
    endpoint = 'paifeaturestore-vpc.cn-beijing.aliyuncs.com'
    if isinstance(o.account, StsAccount):
        sts_token = o.account.sts_token
    fs = FeatureStoreClient(access_key_id=access_key_id, access_key_secret=access_key_secret, security_token=sts_token, endpoint=endpoint)
    cur_project_name = 'fs_demo'
    project = fs.get_project(cur_project_name)
    
    
    label_partitions = PartitionConfig(name = 'ds', value = cur_day)
    label_input_config = LabelInputConfig(partition_config=label_partitions)
    
    user_partitions = PartitionConfig(name = 'ds', value = pre_day)
    feature_view_user_config = FeatureViewConfig(name = 'user_table_preprocess_all_feature_v1',
    partition_config=user_partitions)
    
    item_partitions = PartitionConfig(name = 'ds', value = pre_day)
    feature_view_item_config = FeatureViewConfig(name = 'item_table_preprocess_all_feature_v1',
    partition_config=item_partitions)
    feature_view_config_list = [feature_view_user_config, feature_view_item_config]
    train_set_partitions = PartitionConfig(name = 'ds', value = cur_day)
    train_set_output_config = TrainSetOutputConfig(partition_config=train_set_partitions)
    
    
    model_name = 'fs_rank_v1'
    cur_model = project.get_model(model_name)
    task = cur_model.export_train_set(label_input_config, feature_view_config_list, train_set_output_config)
    task.wait()
    print("task_summary = ", task.task_summary)
  7. Di panel navigasi sebelah kanan, klik Scheduling Configuration. Di kotak dialog yang muncul, konfigurasikan parameter penjadwalan.

    Parameter

    Nilai yang disarankan

    Scheduling Parameters

    Parameter Name

    dt

    Parameter Value

    $[yyyymmdd-1]

    Resource Properties

    Scheduling Resource Group

    Pilih grup sumber daya eksklusif yang telah Anda buat.

    Scheduling Dependencies

    Pilih tabel pengguna dan item yang telah Anda buat.

  8. Setelah mengonfigurasi dan menguji node, simpan dan kirimkan konfigurasi node.

  9. Lakukan operasi pengisian ulang data. Untuk informasi selengkapnya, lihat Sinkronkan tabel data.

5. Instal dan gunakan SDK

SDK Python

Untuk informasi selengkapnya, lihat Gunakan SDK Python FeatureStore untuk membangun sistem rekomendasi.

SDK Go

SDK Go FeatureStore bersifat open source. Untuk informasi selengkapnya, lihat aliyun-pai-featurestore-go-sdk.

  1. Instalasi

    Jalankan perintah berikut untuk menginstal SDK Go FeatureStore.

    go get github.com/aliyun/aliyun-pai-featurestore-go-sdk/v2
  2. Penggunaan

    1. Jalankan perintah berikut untuk menginisialisasi klien.

      accessId := os.Getenv("AccessId") 
      accessKey := os.Getenv("AccessKey") 
      regionId := "cn-hangzhou" 
      projectName := "fs_test_ots" 
      
      client, err := NewFeatureStoreClient(regionId, accessId, accessKey, projectName)
      Catatan

      SDK terhubung langsung ke sumber data online. Oleh karena itu, klien harus dijalankan di lingkungan VPC. Misalnya, Hologres memerlukan koneksi yang berasal dari VPC tertentu.

    2. Ambil data fitur dari tampilan fitur.

      // get project by name 
      project, err := client.GetProject("fs_test_ots") 
      if err != nil {     
      	// t.Fatal(err) 
      } 
      // get featureview by name 
      user_feature_view := project.GetFeatureView("user_fea") 
      if user_feature_view == nil {     
      	// t.Fatal("feature view not exist") 
      } 
      
      // get online features 
      features, err := user_feature_view.GetOnlineFeatures([]interface{}{"100043186", "100060369"}, []string{"*"}, nil)

      Di sini, []string{"*"} berarti mengambil semua fitur dalam tampilan fitur. Anda juga dapat menentukan nama fitur yang ingin diambil.

      Berikut adalah contoh data yang dikembalikan:

      [     
      {         
      "city":"Hefei",    "follow_cnt":1,         "gender":"male",         "user_id":"100043186"    
       },     {                     
       "city":"",         "follow_cnt":5,         "gender":"male",         "user_id":"100060369"     
      } 
      ]
    3. Ambil data fitur dari fitur model.

      Fitur model dapat dikaitkan dengan beberapa entitas fitur. Anda dapat memberikan beberapa join ID untuk mengambil fitur yang sesuai secara bersamaan.

      Contoh ini menggunakan tiga join ID: join_id, user_id, dan item_id. Saat mengambil fitur, Anda harus memberikan nilai untuk setiap join ID.

      // get project by name 
      project, err := client.GetProject("fs_test_ots") 
      if err != nil {     
      	// t.Fatal(err) 
      }
      
      // get ModelFeature by name 
      model_feature := project.GetModelFeature("rank") 
      if model_feature == nil {     
      	// t.Fatal("model feature not exist") 
      } 
      
      // get online features 
      features, err := model_feature.GetOnlineFeatures(map[string][]interface{}{"user_id": {"100000676", "100004208"}, "item_id":{"238038872", "264025480"}} )

      Berikut adalah contoh data yang dikembalikan:

      [     
      {         
      "age":26,         "author":100015828,         "category":"14",         "city":"Shenyang",         "duration":63,         "gender":"male",         "item_id":"238038872",         "user_id":"100000676"    
       },     {         
      "age":23,         "author":100015828,         "category":"15",         "city":"Xi'an",         "duration":22,         "gender":"male",         "item_id":"264025480",         "user_id":"100004208"    
       }
       ]
      
      

      Anda juga dapat menentukan entitas fitur untuk mengambil semua fitur yang sesuai.

      Berikut adalah contoh data yang dikembalikan:

      [    
       {         
      "age":26,         "city":"Shenyang",         "gender":"male",         "user_id":"100000676"    
       },     {        
       "age":23,         "city":"Xi'an",         "gender":"male",         "user_id":"100004208"    
       } 
      ]

SDK Java

SDK Java FeatureStore bersifat open source. Untuk informasi selengkapnya, lihat aliyun-pai-featurestore-java-sdk.

Bagian ini menggunakan sumber data Hologres sebagai contoh.

  1. Jalankan kode berikut untuk memuat variabel lingkungan dan menginisialisasi layanan.

    public static String accessId = "";
    public static String accessKey = "";
    // Configure the host based on the region
    public static String host = "";
    // Get the accessId and accessKey from the configured local environment variables
    static {
        accessId = System.getenv("ACCESS_KEY_ID");
        accessKey = System.getenv("ACCESS_KEY_SECRET");
    }
  2. Buat kelas konfigurasi yang mengonfigurasi regionId, accessId, accessKey, dan nama proyek.

    Configuration cf = new Configuration("cn-hangzhou",Constants.accessId,Constants.accessKey,"ele28");
    cf.setDomain(Constants.host);// Note: The default environment is a VPC environment
  3. Inisialisasi klien.

    ApiClient apiClient = new ApiClient(cf);
    // FS client
    FeatureStoreClient featureStoreClient = new FeatureStoreClient(apiClient);
  4. Ambil proyek. Contoh ini menggunakan proyek bernama ele28.

    Project project=featureStoreClient.getProject("ele28");
    if(project==null){
        throw new RuntimeException("Project not found");
    }
  5. Ambil tampilan fitur proyek. Contoh ini menggunakan tampilan fitur bernama mc_test.

    FeatureView featureView=project.getFeatureView("mc_test");
    if (featureView == null) {
        throw  new RuntimeException("FeatureView not found");
    }
  6. Ambil data fitur online berdasarkan tampilan fitur.

    Map<String,String> m1=new HashMap<>();
    m1.put("gender","gender1"); // Create an alias                                                                                                                                                                                                 user_id='100027781'(FS_INT64) age='28'(FS_INT64) city='null'(FS_STRING) item_cnt='0'(FS_INT64) follow_cnt='0'(FS_INT64) follower_cnt='2'(FS_INT64) register_time='1697641608'(FS_INT64) tags='0'(FS_STRING) gender1='female'(FS_STRING) ---------------

    Untuk mengambil fitur online, String[]{"*"} mengambil semua properti. Anda juga dapat menentukan properti tertentu untuk hanya mengambil sebagian informasi.

    FeatureResult featureResult1=featureView.getOnlineFeatures(new String[]{"100017768","100027781","100072534"},new String[]{"*"},m1);

    Keluarkan informasi fitur.

    while(featureResult1.next()){
        System.out.println("---------------");
        // Feature name
        for(String m:featureResult1.getFeatureFields()){
            System.out.print(String.format("%s=%s(%s) ",m,featureResult1.getObject(m),featureResult1.getType(m)));
        }
        System.out.println("---------------");
    }   

    Data berikut dikembalikan.

    ---------------
    user_id='100017768'(FS_INT64)  age='28'(FS_INT64)  city='Dongguan'(FS_STRING) item_cnt='1'(FS_INT64)  follow_cnt='1'(FS_INT64)  follower_cnt='0'(FS_INT64) register_time='1697202320'(FS_INT64)  tags='1,2'(FS_STRING)  gender1='female'(FS_STRING) 
    ---------------
  7. Ambil model.

    Model model=project.getModelFeature("model_t1");
    if(model==null){
        throw new RuntimeException("Model not found");
    }
    1. Ambil data dari fitur model.

      Fitur model ini menggunakan dua join ID: user_id dan item_id. Jumlah nilai yang Anda berikan harus sesuai dengan jumlah join ID. Contoh ini memberikan satu nilai untuk setiap join ID.

      Map<String, List<String>> m2=new HashMap<>(); 
      m2.put("user_id",Arrays.asList("101683057"));
      m2.put("item_id",Arrays.asList("203665415"));
    2. Ambil semua data fitur yang terkait dengan entitas fitur pengguna dari fitur model.

      FeatureResult featureResult2 = model.getOnlineFeaturesWithEntity(m2,"user");

      Data berikut dikembalikan.

      ---------------
      user_id='101683057' age='28' city='Shenzhen' follower_cnt='234' follow_cnt='0' gender='male' item_cnt='0' register_time='1696407642' tags='2' item_id='203665415' author='132920407' category='14' click_count='0' duration='18.0' praise_count='10' pub_time='1698218997' title='#Idiom Story' 
      ---------------

SDK Cpp

SDK C++ FeatureStore saat ini diintegrasikan ke dalam EasyRec Processor. SDK ini dioptimalkan khusus untuk ekstraksi fitur, manajemen cache, dan operasi baca guna menyediakan solusi berkinerja tinggi dan latensi rendah untuk skenario rekomendasi berskala besar.

  • Penggunaan memori: Saat menangani data fitur yang kompleks dan berskala besar, konsumsi memori berkurang secara signifikan. Penghematan memori lebih besar di bawah beban fitur tinggi.

  • Waktu tarik fitur: Alih-alih menarik fitur dari online store (seperti FeatureDB dan Hologres), SDK menariknya langsung dari MaxCompute ke cache Elastic Algorithm Service (EAS). Hal ini memperpendek waktu pemuatan fitur secara signifikan. Selain itu, MaxCompute menyediakan stabilitas dan ekstensibilitas yang lebih baik, sehingga mengurangi beban pada online store selama operasi memperluas kapasitas.

  • Waktu penilaian model: Menggunakan SDK ini meningkatkan metrik performa TP100 untuk penilaian model, menstabilkan waktu respons, dan mengurangi permintaan timeout secara signifikan. Peningkatan ini meningkatkan keandalan dan pengalaman pengguna layanan rekomendasi secara keseluruhan.

Referensi