🚀 Coba Zilliz Cloud, Milvus yang sepenuhnya terkelola, secara gratis—rasakan performa 10x lebih cepat! Coba Sekarang>>

milvus-logo
LFAI

HomeBlogsPengantar ke Milvus Python SDK dan API

Pengantar ke Milvus Python SDK dan API

  • Engineering
March 21, 2022
Xuan Yang

Cover image 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.

Interaction 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 CreatePartitionRequest

Lihat contoh Protokol di Repositori GitHub PyMilvus pada baris 19.

Example Contoh

Anda dapat menemukan definisi dari CreatePartitionRequest di sini.

Definition 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 common.proto

schema.proto

schema.proto mendefinisikan skema dalam parameter. Contoh kode berikut ini adalah contoh dari CollectionSchema.

schema.proto 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:

  1. Beroperasi langsung pada objek.
  2. Mengisolasi logika layanan dan detail akses data.
  3. 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.

Control Connection 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 Started

Like the article? Spread the word

Terus Baca