Pengantar ke Milvus Python SDK dan API
Gambar sampul
Oleh Xuan Yang
Latar Belakang
Ilustrasi berikut menggambarkan interaksi antara SDK dan Milvus melalui gRPC. Bayangkan Milvus adalah sebuah kotak hitam. Buffer Protokol digunakan untuk mendefinisikan antarmuka server, dan struktur informasi yang dibawanya. Oleh karena itu, semua operasi dalam kotak hitam Milvus didefinisikan oleh Protocol API.
Interaksi
API Protokol Milvus
Milvus Protocol API terdiri dari milvus.proto
, common.proto
, dan schema.proto
, yang merupakan file Protocol Buffer yang diakhiri dengan .proto
. Untuk memastikan operasi yang tepat, SDK harus berinteraksi dengan Milvus dengan file Buffer Protokol ini.
milvus.proto
milvus.proto
adalah komponen penting dari API Protokol Milvus karena mendefinisikan MilvusService
, yang selanjutnya mendefinisikan semua antarmuka RPC Milvus.
Contoh kode berikut ini menunjukkan antarmuka CreatePartitionRequest
. Antarmuka ini memiliki dua parameter tipe string utama collection_name
dan partition_name
, yang digunakan untuk memulai permintaan pembuatan partisi.
CreatePartitionRequest
Lihat contoh Protokol di Repositori GitHub PyMilvus pada baris 19.
Contoh
Anda dapat menemukan definisi dari CreatePartitionRequest
di sini.
Definisi
Kontributor yang ingin mengembangkan fitur Milvus atau SDK dalam bahasa pemrograman yang berbeda dipersilahkan untuk menemukan semua antarmuka yang ditawarkan Milvus melalui RPC.
common.proto
common.proto
mendefinisikan jenis-jenis informasi yang umum, termasuk ErrorCode
, dan Status
.
common.proto
schema.proto
schema.proto
mendefinisikan skema dalam parameter. Contoh kode berikut ini adalah contoh dari CollectionSchema
.
schema.proto
milvus.proto
, common.proto
, dan schema.proto
bersama-sama membentuk API Milvus, mewakili semua operasi yang dapat dipanggil melalui RPC.
Jika Anda menggali kode sumber dan mengamati dengan seksama, Anda akan menemukan bahwa ketika antarmuka seperti create_index
dipanggil, mereka sebenarnya memanggil beberapa antarmuka RPC seperti describe_collection
dan describe_index
. Banyak antarmuka luar Milvus adalah kombinasi dari beberapa antarmuka RPC.
Setelah memahami perilaku RPC, Anda kemudian dapat mengembangkan fitur-fitur baru untuk Milvus melalui kombinasi. Anda dipersilahkan untuk menggunakan imajinasi dan kreativitas Anda dan berkontribusi pada komunitas Milvus.
PyMilvus 2.0
Pemetaan relasional objek (ORM)
Secara singkatnya, Object-relational mapping (ORM) mengacu pada saat Anda beroperasi pada sebuah objek lokal, operasi tersebut akan mempengaruhi objek yang terkait di server. API gaya ORM PyMilvus memiliki karakteristik sebagai berikut:
- Beroperasi langsung pada objek.
- Mengisolasi logika layanan dan detail akses data.
- API ini menyembunyikan kompleksitas implementasi, dan Anda dapat menjalankan skrip yang sama di berbagai instance Milvus terlepas dari pendekatan penerapan atau implementasinya.
API bergaya ORM
Salah satu esensi dari ORM-style API terletak pada kontrol koneksi Milvus. Sebagai contoh, Anda dapat menentukan alias untuk beberapa server Milvus, dan menyambungkan atau memutuskan koneksi dari server-server tersebut hanya dengan menggunakan alias mereka. Anda bahkan dapat menghapus alamat server lokal, dan mengontrol objek tertentu melalui koneksi tertentu secara tepat.
Mengontrol Koneksi
Fitur lain dari API gaya ORM adalah, setelah abstraksi, semua operasi dapat dilakukan secara langsung pada objek, termasuk koleksi, partisi, dan indeks.
Anda dapat mengabstraksikan objek koleksi dengan mengambil objek yang sudah ada atau membuat yang baru. Anda juga dapat menetapkan koneksi Milvus ke objek tertentu menggunakan connection alias, sehingga Anda dapat beroperasi pada objek-objek ini secara lokal.
Untuk membuat objek partisi, Anda dapat membuatnya dengan objek koleksi induknya, atau Anda dapat melakukannya seperti ketika Anda membuat objek koleksi. Metode-metode ini juga dapat digunakan pada objek indeks.
Jika objek partisi atau objek indeks ini ada, Anda bisa mendapatkannya melalui objek koleksi induknya.
Tentang Seri Deep Dive
Dengan pengumuman resmi ketersediaan umum Milvus 2.0, kami menyusun seri blog Milvus Deep Dive ini untuk memberikan interpretasi mendalam tentang arsitektur dan kode sumber Milvus. Topik-topik yang dibahas dalam seri blog ini meliputi:
Try Managed Milvus for Free
Zilliz Cloud is hassle-free, powered by Milvus and 10x faster.
Get StartedLike the article? Spread the word