OceanBase wprowadza SeekDB: hybrydową bazę danych dla wielomodelowych zastosowań AI
Współczesne aplikacje sztucznej inteligencji rzadko opierają się na jednolitych źródłach danych. Zazwyczaj wymagają one przetwarzania różnorodnych informacji, takich jak profile użytkowników, logi czatów, metadane JSON, wektory osadzeń (embeddings), a nawet dane przestrzenne. Tradycyjnie deweloperzy radzili sobie z tym wyzwaniem, łącząc w złożonych architekturach transakcyjne bazy danych (OLTP), magazyny wektorów oraz wyspecjalizowane silniki wyszukiwania. Takie podejście, choć funkcjonalne, generuje niepotrzebną złożoność i utrudnia zarządzanie.
W odpowiedzi na te wyzwania OceanBase, znany dostawca rozwiązań bazodanowych, wprowadził na rynek SeekDB. Jest to otwartoźródłowa baza danych (licencjonowana na Apache 2.0), która ma ambicję stać się natywnym dla AI, hybrydowym magazynem danych. SeekDB unifikuje obsługę danych relacyjnych, wektorowych, tekstowych, JSON oraz GIS w ramach jednego silnika, oferując funkcje hybrydowego wyszukiwania i operacje AI bezpośrednio w bazie danych.
Czym jest SeekDB?
SeekDB jest pozycjonowane jako lekka, osadzalna wersja silnika OceanBase, stworzona specjalnie dla zastosowań AI, w odróżnieniu od rozproszonych wdrożeń ogólnego przeznaczenia. Działa jako baza danych na pojedynczym węźle, wspierając tryb osadzony oraz tryby klient-serwer. Jej kluczową cechą jest pełna kompatybilność ze sterownikami MySQL i składnią SQL, co ułatwia adaptację dla programistów.
Z perspektywy modelu danych, SeekDB oferuje kompleksowe wsparcie dla:
- danych relacyjnych ze standardowym SQL,
- wyszukiwania wektorowego,
- wyszukiwania pełnotekstowego,
- danych JSON,
- danych przestrzennych GIS.
Wszystkie te typy danych są przechowywane i indeksowane w jednej, zunifikowanej warstwie, eliminując potrzebę multipleksowania różnych systemów bazodanowych.
Hybrydowe wyszukiwanie jako fundament
Główną innowacją, którą OceanBase podkreśla w SeekDB, jest funkcjonalność hybrydowego wyszukiwania. Umożliwia ono łączenie semantycznego wyszukiwania opartego na wektorach, wyszukiwania słów kluczowych w pełnym tekście oraz filtrowania skalarnych w ramach jednego zapytania i jednego etapu rankingu wyników. W SeekDB hybrydowe wyszukiwanie jest realizowane poprzez systemowy pakiet DBMS_HYBRID_SEARCH, oferujący dwie główne funkcje wejściowe: DBMS_HYBRID_SEARCH.SEARCH, która zwraca wyniki posortowane według trafności w formacie JSON, oraz DBMS_HYBRID_SEARCH.GET_SQL, pozwalającą na wgląd w konkretne zapytanie SQL użyte do wykonania operacji.
Ścieżka hybrydowego wyszukiwania pozwala na prowadzenie czystego wyszukiwania wektorowego, czystego pełnotekstowego, jak i ich kombinacji. Jest w stanie przetwarzać filtry relacyjne i złączenia bezpośrednio w warstwie przechowywania danych. Ponadto wspiera strategie rerankingu zapytań, takie jak ważone wyniki i rekurencyjne łączenie rankingów, a także umożliwia integrację modeli językowych (LLM) do rerankingu.
Dla zastosowań takich jak RAG (Retrieval Augmented Generation) i pamięci agentów AI oznacza to możliwość napisania pojedynczego zapytania SQL, które jednocześnie wykonuje semantyczne dopasowanie na wektorach embeddings, dokładne dopasowanie na kodach produktów czy nazwach własnych oraz filtruje dane relacyjne na podstawie zakresów użytkowników czy dzierżawców.
Szczegóły silników wektorowego i pełnotekstowego
Rdzeniem SeekDB jest nowoczesny stos technologiczny dla wektorów i pełnego tekstu. Dla wektorów obsługuje zarówno gęste (dense), jak i rzadkie (sparse) wektory, z metrykami odległości takimi jak Manhattan, Euklidesowa, iloczyn skalarny i cosinusowa. Udostępnia także indeksy pamięciowe (np. HNSW, HNSW SQ, HNSW BQ) oraz dyskowe (IVF i IVF PQ). Interesującą funkcją jest hybrydowy indeks wektorowy, który pozwala na przechowywanie surowego tekstu i automatyczne generowanie wektorów osadzeń przez SeekDB z pomocą zewnętrznego modelu, co eliminuje potrzebę oddzielnego potoku wstępnego przetwarzania.
W zakresie wyszukiwania pełnotekstowego SeekDB oferuje możliwości wyszukiwania słów kluczowych, fraz i zapytań Boole’a, z rankingiem trafności opartym na algorytmie BM25 oraz wieloma trybami tokenizacji. Kluczowe jest to, że indeksy pełnotekstowe i wektorowe traktowane są jako pierwszorzędne elementy i są w pełni zintegrowane z planistą zapytań, podobnie jak indeksy skalarne i GIS, co sprawia, że wyszukiwanie hybrydowe nie wymaga zewnętrznej orkiestracji.
Funkcje AI wewnątrz bazy danych
SeekDB wyróżnia się wbudowanymi funkcjami AI, które umożliwiają bezpośrednie wywoływanie modeli zapytań SQL bez potrzeby pośrednictwa oddzielnej usługi aplikacyjnej. Główne funkcje to:
AI_EMBED: konwertowanie tekstu na wektory osadzeń (embeddings),AI_COMPLETE: generowanie tekstu za pomocą modelu czatu lub uzupełniania,AI_RERANK: reranking listy kandydatów,AI_PROMPT: tworzenie szablonów promptów i dynamicznych wartości w obiekcie JSON dlaAI_COMPLETE.
Metadane i punkty końcowe modeli są zarządzane przez pakiet DBMS_AI_SERVICE, który pozwala na rejestrowanie zewnętrznych dostawców, konfigurowanie adresów URL i kluczy API, wszystko w ramach samej bazy danych.
Wielomodelowe dane i obciążenia
Architektura SeekDB została zaprojektowana do obsługi wielu modalności danych w ramach jednego węzła. Posiada warstwę danych i indeksowania, która obejmuje wektory, tekst, JSON i GIS, oraz warstwę obliczeniową do hybrydowych obciążeń, łączących warunki wektorowe, pełnotekstowe i skalarne. Indeksy JSON i GIS umożliwiają efektywne zapytania metadanych i warunków przestrzennych. Dzięki temu możliwe jest wykonywanie złożonych zapytań, takich jak wyszukiwanie semantycznie podobnych dokumentów, filtrowanie według metadanych JSON (np. dzierżawca, region, kategoria) lub ograniczanie wyników do określonego zakresu przestrzennego, wszystko w ramach tego samego silnika. Jako że SeekDB wywodzi się z silnika OceanBase, dziedziczy cechy takie jak transakcje ACID, hybrydowe przechowywanie wierszowo-kolumnowe i wektoryzowane wykonanie, choć wdrożenia rozproszone o dużej skali pozostają domeną pełnej wersji bazy danych OceanBase.
Podsumowanie kluczowych korzyści
SeekDB oferuje kilka istotnych przewag:
- Hybrydowe wyszukiwanie natywne dla AI: Ujednolica wyszukiwanie wektorowe, pełnotekstowe i filtrowanie relacyjne w jednym interfejsie SQL i
DBMS_HYBRID_SEARCH, umożliwiając wykonywanie wielosygnacyjnych zapytań bez łączenia wielu silników. - Wielomodelowe dane w jednym silniku: Przechowuje i indeksuje dane relacyjne, wektory, tekst, JSON i GIS w jednym silniku, co zapewnia spójność dokumentów, osadzeń i metadanych.
- Funkcje AI w bazie danych dla RAG: Funkcje takie jak
AI_EMBED,AI_COMPLETE,AI_RERANKiAI_PROMPTupraszczają potoki RAG, przenosząc logikę orkiestracji do warstwy bazodanowej. - Jednowęzłowa, osadzalna konstrukcja: SeekDB jest kompatybilnym z MySQL silnikiem jednowęzłowym, wspierającym tryby osadzone i samodzielne, co czyni go idealnym dla lokalnych i brzegowych wdrożeń AI.
- Open source i ekosystem narzędzi: Dostępność na licencji Apache 2.0 i integracja z rosnącym ekosystemem narzędzi AI, w tym wsparcie dla Pythona (via pyseekdb), umacnia jego pozycję jako zunifikowanej płaszczyzny danych dla aplikacji AI.
