Thứ Bảy, 1 tháng 8, 2026

🔍 M30 VECTOR DATABASE – CƠ SỞ DỮ LIỆU VECTOR

🎓 AI TUTORIAL A–Z

📚 KHÓA 1 – AI FOUNDATION

🔍 MODULE M30

VECTOR DATABASE – CƠ SỞ DỮ LIỆU VECTOR

⏱️ Thời lượng: 210 phút
🟢 Cấp độ: Cơ bản → Trung cấp
🎯 Mục tiêu chung: Hiểu Vector Database là gì, cách lưu trữ và tìm kiếm Vector, lựa chọn công nghệ phù hợp và thiết kế Vector Database phục vụ Semantic Search, RAG và AI Agent.


📚 1. MỤC LỤC

  1. 📚 Mục lục

  2. 🎯 Mục tiêu

  3. 🏗️ Kiến trúc và công nghệ

  4. 📖 Kiến thức cốt lõi

  5. 💼 Ứng dụng thực tế và Case Study

  6. ⚠️ Lưu ý và kinh nghiệm

  7. 📌 Tóm tắt kiến thức

  8. 🧪 Bài tập thực hành

  9. ❓ Câu hỏi ôn tập và đáp án

  10. 📚 Tài liệu tham khảo

  11. 🚀 Module tiếp theo


🎯 2. MỤC TIÊU

Sau khi học xong module này, bạn sẽ:

  • ✅ Hiểu Vector Database là gì.

  • ✅ Phân biệt Vector Database và Database truyền thống.

  • ✅ Hiểu Collection, Vector, Point, Payload và Metadata.

  • ✅ Hiểu Exact Search và Approximate Search.

  • ✅ Biết HNSW và IVFFlat hoạt động như thế nào.

  • ✅ Phân biệt Cosine, Euclidean và Dot Product.

  • ✅ Biết lựa chọn pgvector, Qdrant, Milvus, Weaviate hoặc FAISS.

  • ✅ Thiết kế Vector Database cho RAG.

  • ✅ Hiểu Sharding, Replication, Backup và High Availability.

  • ✅ Biết theo dõi hiệu năng, độ chính xác và chi phí Vector Search.


🏗️ 3. KIẾN TRÚC VÀ CÔNG NGHỆ

3.1 Kiến trúc tổng thể

📚 Tài liệu nguồn
      │
      ▼
🧹 Làm sạch dữ liệu
      │
      ▼
✂️ Chia thành Chunk
      │
      ▼
🧠 Embedding Model
      │
      ▼
🔢 Vector + Metadata
      │
      ▼
🗄️ Vector Database
      │
      ├── Vector Index
      ├── Metadata Index
      ├── Shard
      ├── Replica
      └── Snapshot/Backup
      │
      ▼
🔎 Similarity Search
      │
      ▼
🎯 Reranker
      │
      ▼
🧠 LLM / RAG / AI Agent

3.2 Cách hiểu đơn giản

Database truyền thống thường tìm theo:

  • Mã khách hàng.

  • Tên.

  • Ngày tháng.

  • Trạng thái.

  • Giá trị chính xác.

Vector Database tìm theo:

Mức độ giống nhau về ý nghĩa hoặc đặc trưng.

Ví dụ, người dùng hỏi:

Database Oracle gần hết không gian lưu trữ phải xử lý thế nào?

Vector Database có thể tìm được tài liệu:

Hướng dẫn xử lý Tablespace sử dụng trên 95%.

Hai câu không giống từ hoàn toàn nhưng có ý nghĩa gần nhau.


3.3 Kiến trúc một bản ghi Vector

Một bản ghi thường gồm:

┌────────────────────────────────────┐
│ ID                                 │
│ Vector                             │
│ Nội dung gốc hoặc đường dẫn        │
│ Metadata/Payload                   │
└────────────────────────────────────┘

Ví dụ:

{
  "id": "runbook-ora-01653-001",
  "vector": [0.17, -0.42, 0.81, 0.09],
  "text": "Hướng dẫn xử lý ORA-01653...",
  "metadata": {
    "database": "Oracle",
    "version": "19c",
    "error_code": "ORA-01653",
    "department": "DBA",
    "security_level": "internal"
  }
}

Trong Qdrant, một Collection là tập hợp các Point; mỗi Point có Vector và Payload. Các Vector trong cùng một cấu hình tìm kiếm phải có kích thước và Distance Metric phù hợp. (Qdrant)


3.4 Kiến trúc RAG sử dụng Vector Database

📥 GIAI ĐOẠN NẠP DỮ LIỆU

Tài liệu
   │
   ▼
Parser
   │
   ▼
Chunking
   │
   ▼
Embedding
   │
   ▼
Vector Database


💬 GIAI ĐOẠN HỎI ĐÁP

Câu hỏi
   │
   ▼
Query Embedding
   │
   ▼
Vector Search + Filter
   │
   ▼
Top K Chunk
   │
   ▼
Reranker
   │
   ▼
LLM
   │
   ▼
Câu trả lời có nguồn

3.5 Các lớp công nghệ

📚 Data Ingestion

  • Đọc PDF, Word, HTML, Database và API.

  • Làm sạch dữ liệu.

  • Chuẩn hóa Unicode.

  • Loại nội dung trùng.

  • Gắn Metadata.

✂️ Chunking

  • Chia tài liệu thành các đoạn có ý nghĩa.

  • Giữ tiêu đề và ngữ cảnh.

  • Có thể thêm Chunk Overlap.

🧠 Embedding

  • Chuyển Chunk thành Vector.

  • Cùng Embedding Model phải được dùng cho dữ liệu và truy vấn.

🗄️ Vector Storage

  • Lưu Vector.

  • Lưu nội dung và Metadata.

  • Xây dựng Index.

🔎 Retrieval

  • Vector Search.

  • Keyword Search.

  • Metadata Filter.

  • Hybrid Search.

  • Reranking.

🛡️ Governance

  • Phân quyền.

  • Audit Log.

  • Encryption.

  • Data Retention.

  • Backup.

  • Monitoring.


3.6 Lộ trình công nghệ

📊 Relational Database
        │
        ▼
🔎 Full-text Search
        │
        ▼
🧮 Vector Library
        │
        ▼
🗄️ Vector Database
        │
        ▼
🔀 Hybrid Search
        │
        ▼
🎯 Reranking
        │
        ▼
📚 Enterprise RAG
        │
        ▼
🤖 AI Agent Memory

3.7 So sánh Database truyền thống và Vector Database

Tiêu chíDatabase truyền thốngVector Database
Dữ liệu chínhBảng, cột, dòngVector nhiều chiều
Kiểu tìm kiếmChính xác, điều kiệnTương đồng
Ví dụcustomer_id = 1001Tìm nội dung gần nghĩa
IndexB-tree, HashHNSW, IVF
Kết quảKhớp hoặc không khớpĐiểm tương đồng
Ứng dụngOLTP, báo cáoRAG, Semantic Search
MetadataRất mạnhCó hỗ trợ tùy sản phẩm
TransactionThường đầy đủMức hỗ trợ khác nhau

Vector Database không thay thế hoàn toàn Relational Database.

Trong nhiều hệ thống:

PostgreSQL / Oracle
        +
Vector Database
        =
Dữ liệu nghiệp vụ + Tìm kiếm ngữ nghĩa

3.8 So sánh các công nghệ phổ biến

Công nghệĐiểm mạnhPhù hợp
pgvectorTích hợp PostgreSQL, SQL và TransactionHệ thống đã dùng PostgreSQL
QdrantVector Search, Filter, API thuận tiệnRAG và ứng dụng AI
MilvusThiết kế phân tán, nhiều loại IndexDữ liệu Vector quy mô lớn
WeaviateVector + Object + Hybrid SearchỨng dụng AI tích hợp
FAISSThư viện tìm Vector hiệu năng caoNghiên cứu, xử lý cục bộ
Elasticsearch/OpenSearchKeyword + Vector SearchEnterprise Search

pgvector mặc định thực hiện Exact Nearest Neighbor Search; HNSW và IVFFlat có thể được thêm để tăng tốc bằng cách đánh đổi một phần Recall. (GitHub)

Milvus được thiết kế cho Similarity Search trên dữ liệu Vector nhiều chiều và có thể triển khai từ máy đơn đến hệ thống phân tán. (Milvus)

Weaviate lưu cả Data Object và Vector Embedding, hỗ trợ Semantic Search dựa trên ý nghĩa thay vì chỉ từ khóa. (Weaviate Documentation)


📖 4. KIẾN THỨC CỐT LÕI

4.1 Vector Database là gì?

Vector Database là hệ thống được thiết kế để:

  • Lưu Vector.

  • Lập chỉ mục Vector.

  • Tìm Vector gần nhất.

  • Lọc theo Metadata.

  • Mở rộng tới số lượng Vector lớn.

  • Phục vụ Semantic Search, Recommendation và RAG.

Vector Database thường không tự tạo Vector.

Vector được tạo bởi:

  • Embedding Model.

  • Vision Model.

  • Audio Model.

  • Recommendation Model.

  • Feature Extraction Pipeline.


4.2 Vector là gì?

Vector là danh sách số biểu diễn nội dung hoặc đặc trưng.

Ví dụ:

Oracle RAC
    │
    ▼
[0.18, -0.51, 0.74, 0.09, ...]

Các Vector có ý nghĩa gần nhau thường nằm gần nhau trong không gian Vector.


4.3 Collection là gì?

Collection có thể hiểu tương tự một Table hoặc một nhóm dữ liệu Vector.

Ví dụ:

Collection: dba_runbooks
Collection: incident_reports
Collection: telecom_alarms
Collection: internal_policies

Mỗi Collection có thể quy định:

  • Vector Dimension.

  • Distance Metric.

  • Shard.

  • Replica.

  • Index.

  • Metadata Schema.

  • Retention Policy.


4.4 Point hoặc Object là gì?

Point là một đơn vị dữ liệu được lưu trong Vector Database.

Một Point thường có:

  • ID.

  • Vector.

  • Payload.

  • Nội dung tham chiếu.

Point
 ├── ID
 ├── Vector
 ├── Text
 └── Metadata

4.5 Payload và Metadata

Payload hoặc Metadata mô tả Vector.

Ví dụ:

{
  "system": "Billing",
  "database": "Oracle",
  "version": "19c",
  "document_type": "runbook",
  "security_level": "internal",
  "updated_at": "2026-07-20"
}

Metadata giúp:

  • Lọc tài liệu theo hệ thống.

  • Lọc theo phiên bản.

  • Phân quyền.

  • Tìm tài liệu mới nhất.

  • Loại tài liệu hết hiệu lực.

  • Tạo nguồn trích dẫn.

Qdrant sử dụng Payload Index để tăng tốc Filter trên các trường có cấu trúc, trong khi Vector Index tăng tốc Similarity Search. (Qdrant)


4.6 Distance Metric

Distance Metric quyết định cách đo hai Vector gần nhau.

📐 Cosine Similarity

Đo góc giữa hai Vector.

Phù hợp khi quan tâm hướng của Vector.

📏 Euclidean Distance

Đo khoảng cách đường thẳng.

✖️ Dot Product

Đo tích vô hướng.

Thường dùng khi Embedding Model được tối ưu cho phép đo này.

Phải dùng đúng Metric được Embedding Model khuyến nghị.


4.7 Exact Nearest Neighbor Search

Exact Search so sánh Query Vector với toàn bộ Vector.

Query Vector
     │
     ▼
So sánh tất cả Vector
     │
     ▼
Sắp xếp khoảng cách
     │
     ▼
Top K

Ưu điểm:

  • Recall gần 100%.

  • Kết quả ổn định.

  • Dễ đánh giá.

Hạn chế:

  • Chậm khi dữ liệu lớn.

  • Tốn CPU.

  • Khó đạt độ trễ thấp với hàng triệu Vector.

pgvector sử dụng Exact Search theo mặc định và chỉ chuyển sang Approximate Search khi sử dụng Index phù hợp. (GitHub)


4.8 Approximate Nearest Neighbor Search

Approximate Search không kiểm tra toàn bộ Vector.

Hệ thống sử dụng Index để nhanh chóng tìm vùng có khả năng chứa Vector gần nhất.

Query
  │
  ▼
ANN Index
  │
  ▼
Nhóm ứng viên
  │
  ▼
Tính khoảng cách
  │
  ▼
Top K gần đúng

Ưu điểm:

  • Nhanh.

  • Phù hợp dữ liệu lớn.

  • Độ trễ thấp hơn.

Hạn chế:

  • Có thể bỏ sót tài liệu đúng.

  • Cần điều chỉnh Index.

  • Phải cân bằng tốc độ và Recall.


4.9 Recall là gì?

Recall trong Vector Search thể hiện khả năng tìm được kết quả đúng.

Ví dụ:

Có 10 tài liệu đúng.

Hệ thống tìm được 8 tài liệu.

Recall = 8/10 = 80%

Trong RAG, Recall thấp có thể làm LLM không nhận được tài liệu cần thiết dù mô hình ngôn ngữ rất mạnh.


4.10 HNSW là gì?

HNSW là viết tắt của:

Hierarchical Navigable Small World

Đây là Index dạng đồ thị nhiều tầng.

Có thể hình dung như bản đồ:

🌍 Tầng cao: Chọn khu vực lớn
      │
      ▼
🏙️ Tầng giữa: Chọn thành phố
      │
      ▼
🏘️ Tầng thấp: Tìm địa chỉ gần nhất

HNSW:

  • Tìm nhanh.

  • Recall cao.

  • Phù hợp truy vấn trực tuyến.

  • Hỗ trợ dữ liệu nhiều chiều.

Hạn chế:

  • Tốn RAM.

  • Index lớn.

  • Xây Index có thể mất thời gian.

  • Cần điều chỉnh tham số.

Milvus mô tả HNSW là Index đồ thị có độ chính xác tìm kiếm và độ trễ tốt nhưng cần nhiều bộ nhớ để duy trì cấu trúc phân cấp. (Milvus)

Weaviate cũng lưu ý HNSW có hiệu năng và Recall tốt nhưng có thể tốn RAM do Graph Index được giữ trong bộ nhớ. (Weaviate Documentation)


4.11 Tham số HNSW

Các tham số thường gặp:

M

Số kết nối giữa các Node trong đồ thị.

  • Cao hơn: Recall tốt hơn.

  • Đổi lại: Index lớn hơn và tốn RAM hơn.

efConstruction

Mức tìm kiếm khi xây Index.

  • Cao hơn: Index tốt hơn.

  • Xây Index chậm hơn.

efSearch

Mức tìm kiếm khi truy vấn.

  • Cao hơn: Recall tốt hơn.

  • Truy vấn chậm hơn.

Cần Benchmark trên dữ liệu thực tế, không nên dùng một cấu hình cho mọi hệ thống.


4.12 IVFFlat là gì?

IVFFlat chia Vector thành nhiều cụm.

Toàn bộ Vector
      │
      ▼
┌─────┬─────┬─────┬─────┐
│ Cụm│ Cụm│ Cụm│ Cụm│
│  1  │  2  │  3  │  4  │
└─────┴─────┴─────┴─────┘
      │
      ▼
Chỉ tìm trong các cụm gần Query

Ưu điểm:

  • Index đơn giản hơn.

  • Dung lượng thường thấp hơn HNSW.

  • Phù hợp dữ liệu tương đối ổn định.

Hạn chế:

  • Cần dữ liệu đủ lớn trước khi xây Index.

  • Chất lượng phụ thuộc số cụm.

  • Có thể Recall thấp nếu cấu hình chưa tốt.

  • Cần Rebuild trong một số tình huống dữ liệu thay đổi mạnh.


4.13 HNSW và IVFFlat

Tiêu chíHNSWIVFFlat
Cấu trúcĐồ thịPhân cụm
Tốc độ tìm kiếmRất nhanhNhanh
RecallThường caoPhụ thuộc cấu hình
RAMCao hơnThường thấp hơn
Xây IndexCó thể lâuThường nhanh hơn
Insert trực tuyếnKhá phù hợpCần theo dõi phân bố
TuningM, efLists, Probes

Không có Index tốt nhất cho mọi hệ thống.


4.14 Flat Index

Flat Index lưu Vector và thực hiện tìm kiếm gần như toàn bộ.

Phù hợp khi:

  • Dữ liệu nhỏ.

  • Cần Recall tuyệt đối.

  • Benchmark.

  • Kiểm chứng ANN Index.

  • Không yêu cầu độ trễ rất thấp.

Weaviate hỗ trợ nhiều kiểu Vector Index, bao gồm HNSW, Flat, Dynamic và HFresh trong các phiên bản hiện hành. (Weaviate Documentation)


4.15 Top K

Top K là số kết quả gần nhất cần lấy.

Ví dụ:

Top K = 5

Hệ thống trả năm Vector gần Query nhất.

Top K quá nhỏ:

  • Có thể bỏ sót tài liệu.

Top K quá lớn:

  • Tốn Token.

  • Làm Context loãng.

  • Tăng thời gian Reranking.

  • Tăng chi phí LLM.


4.16 Similarity Threshold

Threshold là ngưỡng tối thiểu để chấp nhận kết quả.

Ví dụ minh họa:

Similarity >= 0,75

Không nên dùng ngưỡng cố định cho mọi Embedding Model.

Ngưỡng phải được hiệu chỉnh theo:

  • Dữ liệu.

  • Ngôn ngữ.

  • Distance Metric.

  • Embedding Model.

  • Loại truy vấn.

  • Mức độ rủi ro.


4.17 Metadata Filtering

Ví dụ người dùng hỏi:

Tìm Runbook Oracle Data Guard 19c của hệ thống Billing.

Vector Search nên kết hợp Filter:

database = Oracle
version = 19c
system = Billing
document_type = runbook

Điều này giúp:

  • Giảm phạm vi tìm kiếm.

  • Tăng tính chính xác.

  • Bảo vệ quyền truy cập.

  • Ưu tiên đúng phiên bản.


4.18 Pre-filter và Post-filter

Pre-filter

Lọc Metadata trước rồi tìm Vector.

Ưu điểm:

  • Không trả dữ liệu ngoài phạm vi.

  • Tốt cho phân quyền.

Hạn chế:

  • Tập dữ liệu nhỏ sau Filter có thể ảnh hưởng chiến lược Index.

Post-filter

Tìm Vector trước rồi lọc.

Ưu điểm:

  • Dễ triển khai.

Hạn chế:

  • Có thể không đủ Top K sau khi lọc.

  • Có nguy cơ xử lý dư dữ liệu.

Weaviate triển khai Filtered Vector Search theo hướng Pre-filtering và tối ưu để không phải luôn chuyển sang Brute-force Search. (Weaviate Documentation)


4.19 Hybrid Search

Hybrid Search kết hợp:

Keyword Search
       +
Vector Search
       =
Hybrid Search

Phù hợp với:

  • Mã lỗi.

  • Tên máy chủ.

  • Mã thiết bị.

  • Số hiệu văn bản.

  • Từ đồng nghĩa.

  • Câu hỏi tự nhiên.

Ví dụ:

ORA-00600 ktcrcm Materialized View

Keyword Search giữ chính xác:

  • ORA-00600.

  • ktcrcm.

Vector Search tìm thêm:

  • Internal Error.

  • Read Consistency.

  • Materialized View Refresh.

  • Undo và Transaction.


4.20 Reranking

Vector Database thường trả danh sách ứng viên.

Reranker sắp xếp lại:

Vector Search
      │
      ▼
Top 20
      │
      ▼
Reranker
      │
      ▼
Top 5 chính xác hơn

Reranking giúp:

  • Tăng độ liên quan.

  • Giảm tài liệu nhiễu.

  • Cải thiện câu trả lời RAG.


4.21 Sharding

Sharding chia dữ liệu thành nhiều phần.

Collection
   │
   ├── Shard 1
   ├── Shard 2
   ├── Shard 3
   └── Shard 4

Mục đích:

  • Mở rộng dung lượng.

  • Tăng Throughput.

  • Phân phối tải.

  • Triển khai nhiều Node.

Cần chọn Shard Key phù hợp:

  • Tenant.

  • Phòng ban.

  • Loại dữ liệu.

  • Vùng địa lý.

  • Hệ thống.


4.22 Replication

Replication tạo nhiều bản sao của Shard.

Shard 1
   ├── Replica A
   ├── Replica B
   └── Replica C

Lợi ích:

  • Chịu lỗi Node.

  • Tăng khả năng đọc.

  • Hỗ trợ bảo trì.

  • Tăng tính sẵn sàng.

Qdrant cho phép Replicate Shard giữa các Node để tăng Read Throughput và chịu lỗi Node. (Qdrant)


4.23 Consistency

Trong hệ thống phân tán cần cân bằng:

  • Tính nhất quán.

  • Độ trễ.

  • Khả năng chịu lỗi.

  • Throughput.

Cần xác định:

  • Khi ghi Vector, bao nhiêu Replica phải xác nhận?

  • Khi đọc, có chấp nhận dữ liệu hơi cũ không?

  • Khi Node lỗi, hệ thống chuyển dịch vụ ra sao?


4.24 Backup và Snapshot

Backup cần bảo vệ:

  • Vector.

  • Payload.

  • Metadata.

  • Collection Schema.

  • Index Configuration.

  • Security Configuration.

  • Mapping tới tài liệu gốc.

Không chỉ Backup Vector Database.

Cũng cần Backup:

  • Tài liệu nguồn.

  • Embedding Model Version.

  • Chunking Configuration.

  • Pipeline Code.

  • Access Policy.

Weaviate hỗ trợ Backup tích hợp với các hệ thống Object Storage trên Cloud. (Weaviate Documentation)


4.25 Có cần Backup Index không?

Tùy sản phẩm.

Index có thể:

  • Được Backup trực tiếp.

  • Được khôi phục từ Snapshot.

  • Được Rebuild từ Vector.

Nếu Rebuild Index mất nhiều giờ hoặc nhiều ngày, cần đánh giá việc Backup Index.


4.26 High Availability

Một kiến trúc HA cơ bản:

             Load Balancer
                  │
        ┌─────────┴─────────┐
        ▼                   ▼
 Vector DB Node 1     Vector DB Node 2
        │                   │
        └─────────┬─────────┘
                  ▼
             Replicated Data
                  │
                  ▼
            Object Storage
               Backup

Cần kiểm tra:

  • Quorum.

  • Replica Placement.

  • Node Failure.

  • Network Partition.

  • Backup Restore.

  • Rebalance.

  • Monitoring.


4.27 Multi-tenancy

Multi-tenancy phục vụ nhiều đơn vị hoặc khách hàng trên cùng nền tảng.

Có thể tách theo:

  • Collection riêng.

  • Shard riêng.

  • Tenant ID.

  • Metadata Filter.

  • Cluster riêng.

Không nên chỉ dựa vào Prompt để kiểm soát dữ liệu.

Phân quyền phải được thực thi tại:

  • API Gateway.

  • Application Layer.

  • Vector Database.

  • Metadata Filter.

  • Audit Layer.


4.28 Data Lifecycle

Vector phải được cập nhật khi:

  • Tài liệu thay đổi.

  • Tài liệu hết hiệu lực.

  • Embedding Model thay đổi.

  • Chunking Logic thay đổi.

  • Quyền truy cập thay đổi.

  • Tài liệu bị xóa.

Quy trình:

Tài liệu thay đổi
       │
       ▼
Xóa Vector cũ
       │
       ▼
Tạo Chunk mới
       │
       ▼
Tạo Embedding mới
       │
       ▼
Cập nhật Metadata
       │
       ▼
Re-index nếu cần

4.29 Monitoring Vector Database

Các chỉ số nên theo dõi:

Hiệu năng

  • Query Latency.

  • p95/p99 Latency.

  • Queries per Second.

  • Insert Throughput.

  • Index Build Time.

Chất lượng

  • Recall@K.

  • Precision@K.

  • MRR.

  • nDCG.

  • No-result Rate.

Tài nguyên

  • CPU.

  • RAM.

  • Disk.

  • GPU nếu có.

  • Network.

  • Cache Hit Rate.

Vận hành

  • Shard Health.

  • Replica Status.

  • Backup Status.

  • Index Size.

  • Deleted Vector Ratio.

  • Queue Length.


4.30 Capacity Planning

Dung lượng phụ thuộc:

Số Vector
    ×
Số chiều
    ×
Số Byte mỗi phần tử

Ví dụ:

10 triệu Vector
× 768 chiều
× 4 Byte
≈ 30,7 GB

Đây mới chỉ là phần Vector thô, chưa tính:

  • Index.

  • Metadata.

  • Replica.

  • WAL/Log.

  • Backup.

  • Overhead hệ thống.

HNSW có thể cần lượng RAM đáng kể do Graph Index được lưu trong bộ nhớ. (Milvus)


4.31 Lựa chọn pgvector

Nên cân nhắc pgvector khi:

  • Doanh nghiệp đã dùng PostgreSQL.

  • Cần SQL và Transaction.

  • Dữ liệu Vector chưa quá lớn.

  • Muốn kết hợp dữ liệu nghiệp vụ và Vector.

  • Đội vận hành quen PostgreSQL.

  • Cần đơn giản hóa kiến trúc.

Ưu điểm:

  • Một hệ quản trị.

  • Backup và HA theo PostgreSQL.

  • SQL mạnh.

  • Kết hợp Join và Filter.

Hạn chế:

  • Scale Vector rất lớn có thể cần thiết kế kỹ.

  • ANN Query và Filter cần Benchmark.

  • Index có thể tốn RAM.


4.32 Lựa chọn Qdrant

Phù hợp khi:

  • Cần Vector Search chuyên dụng.

  • Metadata Filter mạnh.

  • API thân thiện.

  • RAG quy mô vừa và lớn.

  • Cần Distributed Deployment.

Qdrant tổ chức dữ liệu theo Collection, hỗ trợ Sharding, Replication và Filter Index. (Qdrant)


4.33 Lựa chọn Milvus

Phù hợp khi:

  • Dữ liệu Vector lớn.

  • Cần hệ thống phân tán.

  • Cần nhiều loại Index.

  • Có đội vận hành chuyên môn.

Milvus hỗ trợ nhiều họ Index, bao gồm HNSW, IVF, Product Quantization và một số lựa chọn tăng tốc bằng GPU. (Milvus)


4.34 Lựa chọn Weaviate

Phù hợp khi:

  • Muốn quản lý cả Object và Vector.

  • Cần Semantic Search và Hybrid Search.

  • Cần Module tích hợp AI.

  • Xây ứng dụng Knowledge Search.

Weaviate hỗ trợ lưu Object và Vector Embedding, đồng thời cung cấp nhiều loại Vector Index. (Weaviate Documentation)


4.35 Lựa chọn FAISS

FAISS là thư viện tìm kiếm Vector, không phải Database hoàn chỉnh.

Phù hợp khi:

  • Nghiên cứu.

  • Prototype.

  • Tìm kiếm cục bộ.

  • Pipeline Batch.

  • Không cần đầy đủ Transaction, HA và Metadata Management.


💼 5. ỨNG DỤNG THỰC TẾ VÀ CASE STUDY

5.1 📄 Office

  • Tìm chính sách nội bộ.

  • Tìm biên bản họp.

  • Nhóm tài liệu cùng chủ đề.

  • Trợ lý hỏi đáp.

  • Phát hiện tài liệu tương tự.


5.2 👨‍💻 Developer

  • Semantic Code Search.

  • Tìm Code tương tự.

  • Tìm Issue và Pull Request liên quan.

  • Trợ lý hiểu Codebase.

  • Gợi ý API.


5.3 🗄️ DBA

  • Tìm Runbook theo lỗi.

  • Tìm Incident tương tự.

  • Tìm tài liệu Oracle.

  • Nhóm Alert Log.

  • Tìm SQL có mẫu hoạt động tương tự.

  • Trợ lý RAG cho DBA.

Ví dụ

Query:

ORA-01555 xảy ra khi chạy báo cáo dài phải xử lý thế nào?

Vector Database có thể tìm:

  • Runbook ORA-01555.

  • Tài liệu Undo Retention.

  • Incident Query kéo dài.

  • Hướng dẫn AUM.

  • Checklist kiểm tra Undo.


5.4 🐧 System Administrator

  • Tìm lỗi OOM tương tự.

  • Tìm cấu hình Linux.

  • Nhóm System Log.

  • Tra cứu Runbook.

  • Tìm lệnh xử lý đã được phê duyệt.


5.5 ☁️ DevOps và Cloud

  • Tìm Kubernetes Incident.

  • Tìm Terraform Module.

  • Tìm Deployment tương tự.

  • RAG tài liệu Cloud.

  • Phân loại Alert.

  • Tìm Root Cause cũ.


5.6 📡 Viễn thông

  • Nhóm Alarm BTS.

  • Tìm Incident mạng tương tự.

  • Tra cứu SOP.

  • Tìm hướng dẫn thiết bị.

  • Phân loại khiếu nại.

  • Hỗ trợ kỹ sư hiện trường.


5.7 🏦 Ngân hàng

  • Tìm hợp đồng tương tự.

  • Tra cứu quy định.

  • Phân loại hồ sơ.

  • Phát hiện mẫu giao dịch gần giống.

  • Gợi ý sản phẩm.

  • Trợ lý nghiệp vụ.


5.8 🏢 Doanh nghiệp

  • Enterprise Search.

  • Knowledge Base.

  • RAG Chatbot.

  • Recommendation.

  • Customer 360.

  • Phân loại tài liệu.

  • Phát hiện nội dung trùng.


5.9 📖 Case Study: Vector Database cho trợ lý vận hành CNTT

Bài toán

Doanh nghiệp có:

  • 20.000 tài liệu.

  • 50.000 Incident.

  • Hàng triệu dòng Log.

  • Nhiều hệ thống khác nhau.

  • Tài liệu có nhiều mức bảo mật.

Kiến trúc đề xuất

              ┌────────────────────┐
              │ Tài liệu nội bộ    │
              │ Incident / Runbook │
              └─────────┬──────────┘
                        ▼
                Data Ingestion
                        │
                        ▼
             Chunking + Metadata
                        │
                        ▼
               Embedding Service
                        │
                        ▼
        ┌──────────────────────────────┐
        │ Vector Database Cluster      │
        │                              │
        │ Shard + Replica + HNSW       │
        │ Payload Index + Backup       │
        └─────────────┬────────────────┘
                      ▼
              Hybrid Retrieval
                      │
                      ▼
                  Reranker
                      │
                      ▼
                    LLM
                      │
                      ▼
         Chatbot / Portal / AI Agent

Metadata

  • Hệ thống.

  • Đơn vị.

  • Phiên bản.

  • Ngày hiệu lực.

  • Mức bảo mật.

  • Người phê duyệt.

  • Loại tài liệu.

  • Mã lỗi.

  • Khu vực.

Kiểm soát bảo mật

  • SSO.

  • RBAC.

  • Metadata Filter bắt buộc.

  • Audit Log.

  • Encryption.

  • DLP.

  • Không cho LLM truy cập dữ liệu ngoài quyền.

HA

  • Tối thiểu ba Node cho Production khi công nghệ và quy mô yêu cầu.

  • Shard Replication.

  • Load Balancer.

  • Backup Object Storage.

  • Kiểm thử Node Failure.

  • Kiểm thử Restore.

KPI

KPIMục tiêu
Recall@5Tài liệu đúng nằm trong Top 5
p95 LatencyĐáp ứng SLA
AvailabilityTheo yêu cầu dịch vụ
No-result RateTheo dõi truy vấn không có kết quả
Cost/queryKiểm soát chi phí
Source Citation RateCâu trả lời có nguồn
User AcceptanceKỹ sư chấp nhận kết quả

⚠️ 6. LƯU Ý VÀ KINH NGHIỆM

6.1 Những hiểu lầm thường gặp

❌ Vector Database thay thế hoàn toàn Database truyền thống.

❌ HNSW luôn tốt nhất.

❌ Similarity Score cao nghĩa là nội dung đúng.

❌ Chỉ cần Vector Search, không cần Metadata.

❌ Dữ liệu Vector không cần Backup.

❌ Vector không chứa thông tin nhạy cảm.

❌ Tăng Top K luôn tăng chất lượng RAG.


6.2 Không chọn công nghệ theo quảng cáo

Cần Benchmark bằng:

  • Dữ liệu thật.

  • Số Vector dự kiến.

  • Dimension thật.

  • Filter thật.

  • Truy vấn thật.

  • Tải đồng thời.

  • Yêu cầu Recall.


6.3 Filter có thể thay đổi hiệu năng

Vector Search nhanh khi không Filter chưa chắc nhanh khi có:

  • Tenant.

  • Phiên bản.

  • Phòng ban.

  • Thời gian.

  • Mức bảo mật.

Qdrant khuyến nghị xây Payload Index cho các trường dùng thường xuyên trong Filter để tăng hiệu quả truy vấn. (Qdrant)


6.4 Không bỏ qua Exact Search

Exact Search hữu ích để:

  • Làm Ground Truth.

  • Đánh giá Recall.

  • Kiểm tra ANN Index.

  • Phục vụ tập dữ liệu nhỏ.

  • Đối chiếu kết quả.


6.5 Best Practice

  • Lưu Version của Embedding Model.

  • Lưu Chunking Version.

  • Dùng Metadata đầy đủ.

  • Dùng Hybrid Search.

  • Có Reranker cho tác vụ quan trọng.

  • Benchmark HNSW và IVF.

  • Theo dõi Recall và Latency.

  • Kiểm thử Restore.

  • Phân quyền tại tầng Database.

  • Có quy trình Re-embedding.


6.6 Backup phải có khả năng khôi phục

Không chỉ kiểm tra:

Backup thành công.

Phải kiểm tra:

  • Restore Collection.

  • Restore Metadata.

  • Restore Index.

  • Query sau Restore.

  • Quyền truy cập.

  • Tính toàn vẹn dữ liệu.

  • Thời gian RTO.

  • Mức mất dữ liệu RPO.


6.7 Data Drift

Dữ liệu mới có thể khác dữ liệu cũ.

Ví dụ:

  • Thêm ngôn ngữ mới.

  • Thêm loại tài liệu mới.

  • Thay đổi phong cách viết.

  • Thay đổi phiên bản sản phẩm.

Cần định kỳ đánh giá:

  • Recall.

  • Distribution.

  • Similarity Score.

  • No-result Rate.

  • Query Pattern.


6.8 Bảo mật

Vector Database phải được bảo vệ như Database nghiệp vụ.

Cần:

  • Network Segmentation.

  • TLS.

  • Authentication.

  • Authorization.

  • Encryption at Rest.

  • Audit Log.

  • Backup Encryption.

  • Secret Management.

  • Vulnerability Management.

  • Patch Management.


6.9 Tránh Vendor Lock-in

Nên chuẩn hóa:

  • Document ID.

  • Metadata Schema.

  • Embedding Version.

  • Export Format.

  • API Abstraction.

  • Backup Format.

  • Retrieval Evaluation.

Như vậy có thể chuyển đổi công nghệ khi cần.


📌 7. TÓM TẮT KIẾN THỨC

7.1 📖 Thuật ngữ cần nhớ

Thuật ngữÝ nghĩa
Vector DatabaseDatabase lưu và tìm kiếm Vector
CollectionNhóm các Vector
PointMột bản ghi Vector
PayloadDữ liệu mô tả đi kèm
MetadataThông tin mô tả và lọc
Exact SearchTìm kiếm toàn bộ
ANNApproximate Nearest Neighbor
HNSWIndex đồ thị nhiều tầng
IVFFlatIndex phân cụm
RecallTỷ lệ tìm được kết quả đúng
Top KSố kết quả trả về
ThresholdNgưỡng chấp nhận
ShardPhần dữ liệu được chia
ReplicaBản sao dữ liệu
Hybrid SearchKeyword + Vector Search
RerankerSắp xếp lại kết quả
SnapshotẢnh chụp trạng thái dữ liệu
Multi-tenancyPhục vụ nhiều Tenant

7.2 📌 Tổng kết

  • Vector Database lưu và tìm Vector theo mức độ tương đồng.

  • Vector Database không thay thế hoàn toàn Relational Database.

  • Exact Search chính xác nhưng chậm khi dữ liệu lớn.

  • ANN nhanh hơn nhưng có thể giảm Recall.

  • HNSW nhanh và Recall cao nhưng thường tốn RAM.

  • IVFFlat chia Vector thành các cụm.

  • Metadata Filter rất quan trọng với RAG doanh nghiệp.

  • Hybrid Search phù hợp tài liệu kỹ thuật.

  • Production cần Sharding, Replication, Backup và Monitoring.

  • Công nghệ phải được Benchmark bằng dữ liệu thực tế.


7.3 🧠 Mindmap

                  🔍 VECTOR DATABASE
                          │
       ┌──────────────────┼──────────────────┐
       ▼                  ▼                  ▼
   🔢 Vector          🏷️ Metadata       📏 Distance
       │                  │                  │
       └──────────────────┼──────────────────┘
                          ▼
                     🗂️ Index
                          │
          ┌───────────────┼───────────────┐
          ▼               ▼               ▼
       HNSW           IVFFlat          Flat
                          │
                          ▼
                    🔎 Retrieval
                          │
           ┌──────────────┼──────────────┐
           ▼              ▼              ▼
       Keyword         Vector        Reranker
                          │
                          ▼
                     📚 RAG / Agent

7.4 🎨 Infographic

📚 TÀI LIỆU
    │
    ▼
✂️ CHUNKING
    │
    ▼
🧠 EMBEDDING
    │
    ▼
🔢 VECTOR + METADATA
    │
    ▼
🗄️ VECTOR DATABASE
    │
 ┌──┼───────────────┐
 ▼  ▼               ▼
HNSW IVFFlat       Filter
    │
    ▼
🔎 TOP K KẾT QUẢ
    │
    ▼
🎯 RERANKER
    │
    ▼
🧠 LLM / RAG / AI AGENT

7.5 ⭐ Cheat Sheet

Định nghĩa

Vector Database là hệ thống lưu trữ, lập chỉ mục và tìm kiếm dữ liệu Vector.

Ba kiểu Search

  • Exact Search.

  • Approximate Search.

  • Hybrid Search.

Hai Index quan trọng

  • HNSW.

  • IVFFlat.

Năm thành phần Production

  1. Vector Index.

  2. Metadata Index.

  3. Sharding.

  4. Replication.

  5. Backup.

Quy trình ghi nhớ

Data → Chunk → Embedding
→ Vector Database → Search
→ Rerank → LLM

🧪 8. BÀI TẬP THỰC HÀNH

🥉 Bài 1 – Cơ bản

Thiết kế một Collection lưu Runbook DBA gồm:

  • ID.

  • Vector.

  • Nội dung.

  • Mã lỗi.

  • Database Version.

  • Hệ thống.

  • Mức bảo mật.

  • Ngày cập nhật.


🥈 Bài 2 – Trung bình

Cài PostgreSQL và pgvector:

  1. Tạo Extension.

  2. Tạo Table chứa Vector.

  3. Chèn 100 Vector mẫu.

  4. Thực hiện Cosine Search.

  5. Tạo HNSW Index.

  6. So sánh Execution Plan.


🥇 Bài 3 – Nâng cao

Triển khai Qdrant hoặc Milvus:

  • Tạo Collection.

  • Cấu hình Vector Dimension.

  • Tạo Payload Index.

  • Nạp tài liệu.

  • Tìm kiếm với Filter.

  • Đo p95 Latency.

  • Đánh giá Recall@5.


🚀 Mini Project

Xây dựng:

Vector Database Production cho trợ lý DBA

Yêu cầu

  • 100.000 Chunk tài liệu.

  • Hybrid Search.

  • Metadata Filter.

  • HNSW.

  • Reranking.

  • RBAC.

  • Backup.

  • Dashboard Monitoring.

  • Bộ 100 câu hỏi đánh giá.

Sản phẩm đầu ra

  • Sơ đồ kiến trúc.

  • Data Model.

  • Index Design.

  • Capacity Plan.

  • Backup Plan.

  • HA Plan.

  • Security Checklist.

  • Performance Report.

  • Recall Report.

  • Runbook vận hành.


❓ 9. CÂU HỎI ÔN TẬP VÀ ĐÁP ÁN

Câu 1. Vector Database là gì?

Đáp án: Hệ thống lưu trữ, lập chỉ mục và tìm kiếm Vector theo mức độ tương đồng.


Câu 2. Vector Database khác Relational Database thế nào?

Đáp án: Relational Database mạnh về dữ liệu có cấu trúc và điều kiện chính xác; Vector Database mạnh về tìm kiếm tương đồng và ngữ nghĩa.


Câu 3. Exact Search khác Approximate Search thế nào?

Đáp án: Exact Search kiểm tra toàn bộ Vector và có Recall cao; Approximate Search dùng Index để tăng tốc nhưng có thể bỏ sót kết quả.


Câu 4. HNSW là gì?

Đáp án: Index đồ thị nhiều tầng giúp tìm nhanh Vector gần nhất với Recall cao, nhưng thường cần nhiều RAM.


Câu 5. IVFFlat là gì?

Đáp án: Index chia Vector thành nhiều cụm và chỉ tìm trong một số cụm gần Query.


Câu 6. Payload hoặc Metadata dùng để làm gì?

Đáp án: Lọc dữ liệu, phân quyền, quản lý phiên bản, trích nguồn và mô tả Vector.


Câu 7. Hybrid Search là gì?

Đáp án: Kết hợp tìm kiếm từ khóa với Vector Search.


Câu 8. Vì sao cần Replication?

Đáp án: Để tăng khả năng chịu lỗi, tăng Read Throughput và duy trì dịch vụ khi Node hỏng.


Câu 9. Vì sao phải đánh giá Recall?

Đáp án: Vì Vector Search nhanh nhưng có thể không tìm được tài liệu đúng, làm giảm chất lượng RAG.


Câu 10. Khi nào nên chọn pgvector?

Đáp án: Khi đã sử dụng PostgreSQL, cần SQL, Transaction và quy mô Vector phù hợp với khả năng vận hành của PostgreSQL.


📚 10. TÀI LIỆU THAM KHẢO

10.1 🌐 pgvector


10.2 🌐 Qdrant


10.3 🌐 Milvus


10.4 🌐 Weaviate


10.5 💻 FAISS và công cụ mã nguồn mở


10.6 📄 Bài báo khoa học


10.7 📘 Sách nên đọc

  • Hands-On Large Language Models – Jay Alammar và Maarten Grootendorst.

  • Designing Data-Intensive Applications – Martin Kleppmann.

  • Introduction to Information Retrieval – Christopher Manning, Prabhakar Raghavan và Hinrich Schütze.

  • Database Internals – Alex Petrov.

  • Natural Language Processing with Transformers – Lewis Tunstall, Leandro von Werra và Thomas Wolf.


10.8 🎥 Chủ đề video nên tìm học

  • Vector Database Explained.

  • HNSW Step by Step.

  • IVFFlat Explained.

  • pgvector Tutorial.

  • Qdrant RAG Tutorial.

  • Milvus Architecture.

  • Hybrid Search.

  • Vector Database Performance Tuning.

  • Backup and HA for Vector Databases.

  • Vector Database Security.


10.9 🛠️ Công cụ thực hành

  • PostgreSQL + pgvector.

  • Qdrant.

  • Milvus.

  • Weaviate.

  • FAISS.

  • Python.

  • Sentence Transformers.

  • LangChain hoặc LlamaIndex.

  • Prometheus và Grafana.

  • Docker hoặc Kubernetes.


10.10 ⭐ Lộ trình học tiếp

Embedding
   │
   ▼
Vector Database
   │
   ▼
Exact Search
   │
   ▼
HNSW / IVF
   │
   ▼
Metadata Filter
   │
   ▼
Hybrid Search
   │
   ▼
Reranking
   │
   ▼
RAG
   │
   ▼
Enterprise AI Agent

🚀 11. MODULE TIẾP THEO

🔗 MODULE M31 – RAG

Trong Module M31, bạn sẽ học:

  • RAG là gì.

  • Vì sao LLM cần RAG.

  • Quy trình Ingestion và Retrieval.

  • Chunking.

  • Embedding.

  • Vector Database.

  • Hybrid Search.

  • Reranking.

  • Citation.

  • RAG cơ bản và Advanced RAG.

  • Thiết kế RAG cho tài liệu doanh nghiệp.

  • Bảo mật, đánh giá và giám sát hệ thống RAG.

=============================
TƯ VẤN: Click Here hoặc Hotline/Zalo 090.29.12.888
=============================
Website không chứa bất kỳ quảng cáo nào, mọi đóng góp để duy trì phát triển cho website (donation) xin vui lòng gửi về STK 90.2142.8888 - Ngân hàng Vietcombank Thăng Long - TRAN VAN BINH
=============================
Nếu bạn không muốn bị AI thay thế và tiết kiệm 3-5 NĂM trên con đường trở thành DBA chuyên nghiệp hay làm chủ Database thì hãy đăng ký ngay KHOÁ HỌC ORACLE DATABASE A-Z ENTERPRISE, được Coaching trực tiếp từ tôi với toàn bộ bí kíp thực chiến, thủ tục, quy trình của gần 20 năm kinh nghiệm (mà bạn sẽ KHÔNG THỂ tìm kiếm trên Internet/Google) từ đó giúp bạn dễ dàng quản trị mọi hệ thống Core tại Việt Nam và trên thế giới, đỗ OCP.
- CÁCH ĐĂNG KÝ: Gõ (.) hoặc để lại số điện thoại hoặc inbox https://m.me/tranvanbinh.vn hoặc Hotline/Zalo 090.29.12.888
- Chi tiết tham khảo:
https://bit.ly/oaz_w
=============================
2 khóa học online qua video giúp bạn nhanh chóng có những kiến thức nền tảng về Linux, Oracle, học mọi nơi, chỉ cần có Internet/4G:
- Oracle cơ bản: https://bit.ly/admin_1200
- Linux: https://bit.ly/linux_1200
=============================
KẾT NỐI VỚI CHUYÊN GIA TRẦN VĂN BÌNH:
📧 Mail: binhoracle@gmail.com
☎️ Mobile/Zalo: 0902912888
👨 Facebook: https://www.facebook.com/BinhOracleMaster
👨 Inbox Messenger: https://m.me/101036604657441 (profile)
👨 Fanpage: https://www.facebook.com/tranvanbinh.vn
👨 Inbox Fanpage: https://m.me/tranvanbinh.vn
👨👩 Group FB: https://www.facebook.com/groups/DBAVietNam
👨 Website: https://www.tranvanbinh.vn
👨 Blogger: https://tranvanbinhmaster.blogspot.com
🎬 Youtube: https://www.youtube.com/@binhguru
👨 Tiktok: https://www.tiktok.com/@binhguru
👨 Linkin: https://www.linkedin.com/in/binhoracle
👨 Twitter: https://twitter.com/binhguru
👨 Podcast: https://www.podbean.com/pu/pbblog-eskre-5f82d6
👨 Địa chỉ: Tòa nhà Sun Square - 21 Lê Đức Thọ - Phường Mỹ Đình 1 - Quận Nam Từ Liêm - TP.Hà Nội

=============================
cơ sở dữ liệu, cơ sở dữ liệu quốc gia, database, AI, trí tuệ nhân tạo, artificial intelligence, machine learning, deep learning, LLM, ChatGPT, DeepSeek, Grok, oracle tutorial, học oracle database, Tự học Oracle, Tài liệu Oracle 12c tiếng Việt, Hướng dẫn sử dụng Oracle Database, Oracle SQL cơ bản, Oracle SQL là gì, Khóa học Oracle Hà Nội, Học chứng chỉ Oracle ở đầu, Khóa học Oracle online,sql tutorial, khóa học pl/sql tutorial, học dba, học dba ở việt nam, khóa học dba, khóa học dba sql, tài liệu học dba oracle, Khóa học Oracle online, học oracle sql, học oracle ở đâu tphcm, học oracle bắt đầu từ đâu, học oracle ở hà nội, oracle database tutorial, oracle database 12c, oracle database là gì, oracle database 11g, oracle download, oracle database 19c/21c/23c/23ai, oracle dba tutorial, oracle tunning, sql tunning , oracle 12c, oracle multitenant, Container Databases (CDB), Pluggable Databases (PDB), oracle cloud, oracle security, oracle fga, audit_trail,oracle RAC, ASM, oracle dataguard, oracle goldengate, mview, oracle exadata, oracle oca, oracle ocp, oracle ocm , oracle weblogic, postgresql tutorial, mysql tutorial, mariadb tutorial, ms sql server tutorial, nosql, mongodb tutorial, oci, cloud, middleware tutorial, docker, k8s, micro service, hoc solaris tutorial, hoc linux tutorial, hoc aix tutorial, unix tutorial, securecrt, xshell, mobaxterm, putty

ĐỌC NHIỀU

Trần Văn Bình - Oracle Database Master