Tutorial Milvus: Distributed Vector Database untuk AI

# Tutorial 10: Milvus - Database Vektor Terdistribusi untuk AI ## Daftar Isi 1. [Pendahuluan](#pendahuluan) 2. [Prasyarat](#prasyarat) 3. [Arsitektur Milvus](#arsitektur-milvus) 4. [Instalasi dan Pe...

By Ruby Abdullah · · tutorial
MilvusVector DatabaseDistributedSimilarity SearchAIPython

Tutorial 10: Milvus - Database Vektor Terdistribusi untuk AI

Daftar Isi

  • Pendahuluan
  • Prasyarat
  • Arsitektur Milvus
  • Instalasi dan Pengaturan
  • Manajemen Koleksi, Partisi, dan Indeks
  • Strategi Pengindeksan Vektor
  • Pencarian Hibrida: Vektor + Filter Skalar
  • Operasi Batch
  • Penskalaan dengan Kubernetes
  • Perbandingan dengan Qdrant, ChromaDB, dan Pinecone
  • Integrasi dengan LangChain
  • Deployment Produksi
  • Praktik Terbaik
  • Kesimpulan

  • Pendahuluan

    Seiring aplikasi AI semakin bergantung pada pencarian semantik, sistem rekomendasi, dan retrieval-augmented generation (RAG), kebutuhan akan penyimpanan dan pengambilan vektor yang efisien menjadi sangat kritis. Milvus adalah database vektor open-source dan terdistribusi yang dirancang khusus untuk menangani data vektor berskala miliaran dengan latensi milidetik.

    Berbeda dengan database tujuan umum yang menambahkan pencarian vektor sebagai fitur tambahan, Milvus dirancang dari awal untuk pencarian kemiripan (similarity search). Platform ini mendukung berbagai jenis indeks (IVFFLAT, HNSW, IVFPQ, dan lainnya), pencarian hibrida yang menggabungkan kemiripan vektor dengan filter skalar, penskalaan horizontal di seluruh kluster, dan integrasi yang mulus dengan framework ML.

    Tutorial ini memberikan panduan komprehensif dan praktis tentang Milvus, dari pengaturan dasar hingga deployment produksi.


    Prasyarat

    • Python 3.9 atau lebih tinggi
    • Docker dan Docker Compose (untuk deployment Milvus lokal)
    • Pemahaman dasar tentang embedding vektor dan pencarian kemiripan
    • Keakraban dengan struktur data Python

    Instal paket yang diperlukan:

    pip install pymilvus langchain langchain-openai numpy pandas
    


    Arsitektur Milvus

    Milvus menggunakan arsitektur cloud-native yang terpisah (disaggregated) dengan empat lapisan utama:

    Lapisan Akses - Node proxy stateless yang menangani koneksi klien, perutean permintaan, dan agregasi hasil. Node-node ini dapat diskalakan secara horizontal dan berada di belakang load balancer. Layanan Koordinator - Otak dari kluster, bertanggung jawab atas manajemen metadata, koordinasi query, dan koordinasi data. Layanan ini mengelola skema koleksi, tugas pembuatan indeks, dan perutean query. Node Pekerja - Dibagi menjadi tiga jenis:
    • Node Query: Menjalankan operasi pencarian dan query pada segmen yang dimuat
    • Node Data: Menangani penyisipan, penghapusan, dan kompaksi data
    • Node Indeks: Membangun indeks vektor di latar belakang

    Lapisan Penyimpanan - Menggunakan object storage (MinIO/S3) untuk data persisten dan etcd untuk metadata. Pemisahan ini memungkinkan penskalaan komputasi dan penyimpanan secara independen.
    Aplikasi Klien
    

    |

    [Lapisan Akses - Node Proxy]

    |

    [Layanan Koordinator]

    / | \

    [Node] [Node] [Node]

    Query Data Indeks

    |

    [Object Storage + etcd]


    Instalasi dan Pengaturan

    Pengaturan Lokal dengan Docker Compose

    # Unduh file docker-compose
    

    wget https://github.com/milvus-io/milvus/releases/download/v2.4.0/milvus-standalone-docker-compose.yml -O docker-compose.yml

    Jalankan Milvus

    docker compose up -d

    Verifikasi bahwa Milvus berjalan

    docker compose ps

    Menghubungkan dari Python

    from pymilvus import connections, utility
    
    

    Hubungkan ke Milvus

    connections.connect(

    alias="default",

    host="localhost",

    port="19530"

    )

    Verifikasi koneksi

    print(f"Terhubung ke Milvus. Versi server: {utility.getserverversion()}")

    Daftar koleksi yang ada

    koleksi = utility.listcollections()

    print(f"Koleksi yang ada: {koleksi}")

    Artikel Terkait

    Tutorial Lengkap Qdrant: Vector Database untuk Aplikasi AI

    Tutorial Lengkap Qdrant: Vector Database untuk Aplikasi AI Qdrant adalah vector database performa tinggi yang dirancang ...

    Tutorial Lengkap LlamaIndex: Membangun Aplikasi RAG dengan LLM

    Tutorial Lengkap LlamaIndex: Membangun Aplikasi RAG dengan LLM LlamaIndex adalah framework data yang powerful untuk memb...

    Tutorial Lengkap ChromaDB: Vector Database Sederhana untuk AI

    Tutorial Lengkap ChromaDB: Vector Database Sederhana untuk AI ChromaDB adalah open-source vector database yang dirancang...

    Tutorial FAISS: Pencarian Kemiripan Vektor dalam Skala Besar

    FAISS: Pencarian Kemiripan Vektor yang Efisien dalam Skala Besar FAISS (Facebook AI Similarity Search) adalah library C+...