Blog JSystems - uwalniamy wiedzę!

Szukaj

Kiedy mówi się „AI w bazie danych", większość ludzi myśli o nowych, wyspecjalizowanych bazach wektorowych (baza wektorowa przechowuje dane jako listy liczb — wektory — które opisują znaczenie tekstu, obrazu czy dokumentu — podobne treści mają podobne wektory, co pozwala wyszukiwać „po sensie", nie po słowach kluczowych). Tymczasem Oracle Database robi uczenie maszynowe w SQL już od ponad dwóch dekad (pakiet DBMS_DATA_MINING zadebiutował w Oracle 9i R2 w 2002 r.), a wydania 23ai (2024) i jego kontynuacja 26ai postawiły AI w samym centrum bazy: wektorowy typ danych, semantyczne wyszukiwanie, wbudowane modele embeddingów i pytania w języku naturalnym. W tym artykule pokazujemy całą historię rozwoju AI w Oracle oraz działające przykłady z prawdziwej bazy Oracle 26ai Free - wszystkie zrzuty ekranu pochodzą z realnej instancji uruchomionej specjalnie na potrzeby tego tekstu.

Z tego artykułu dowiesz się:
  • jak rozwijało się AI w Oracle - od przejęcia narzędzia Darwin w 1999 r. po AI Vector Search,
  • czym jest typ VECTOR i jak działa funkcja VECTOR_DISTANCE,
  • jak zbudować indeks wektorowy HNSW i wyszukiwać semantycznie,
  • jak Oracle Machine Learning buduje model ML w czystym SQL,
  • czym jest Select AI i wbudowane modele ONNX.

Historia AI w Oracle - 25 lat, nie 2 lata

AI w Oracle nie zaczęło się od mody na ChatGPT. Baza danych Oracle ma za sobą długą drogę uczenia maszynowego liczonego bezpośrednio na danych - bez eksportu do osobnych narzędzi.

Oś czasu rozwoju AI w bazie danych Oracle: 1999 Thinking Machines, 2002 Oracle Data Mining, 2008 Oracle Data Miner, 2013 Oracle Advanced Analytics, 2018 Oracle Machine Learning, 2021 OML4SQL, 2024 Oracle 23ai
Rozwój AI w bazie Oracle - od narzędzia Darwin po AI Vector Search i generatywne AI
  • 1999 - Oracle przejmuje zespół data mining firmy Thinking Machines wraz z narzędziem Darwin. To fundament pod uczenie maszynowe w bazie.
  • 2002 (Oracle 9i R2) - debiut Oracle Data Mining i pakietu DBMS_DATA_MINING: klasyfikacja, regresja, klastrowanie - modele budowane w czystym SQL, wewnątrz bazy.
  • 2008 (11g) - graficzny Oracle Data Miner w SQL Developer i więcej algorytmów: drzewa decyzyjne, SVM, sieci Bayesa, reguły asocjacyjne.
  • 2013 - Oracle Advanced Analytics: Data Mining + Oracle R Enterprise, czyli język R liczony bezpośrednio na danych w bazie.
  • 2018 (18c) - marka Oracle Machine Learning, notatniki OML, biblioteki OML4Py i OML4R, AutoML w Autonomous Database.
  • 2021 (21c) - Oracle Data Mining zostaje przemianowane na Oracle Machine Learning for SQL (OML4SQL); nazwa pakietu DBMS_DATA_MINING pozostaje bez zmian. Wbudowany AutoML.
  • 2024 (23ai) - przełom: AI Vector Search, typ VECTOR, Select AI, import modeli ONNX, grounded generative AI (RAG na danych firmy) - i ponad 300 innych nowości. Aktualizacje tej linii Oracle marketingowo oznacza jako „26ai" (wewnętrznie: Release 23.26.x).

Co nowego w najnowszych wydaniach (23ai i 26ai)

Oracle Database 23ai (ogólna dostępność: maj 2024) to pierwsze wydanie long-term z literą „ai" w nazwie. Kolejne aktualizacje tej samej linii Oracle oznacza już jako 26ai - instancja, na której powstały poniższe przykłady, raportuje się jako Oracle AI Database 26ai Free Release 23.26. Najważniejsze funkcje AI:

  • AI Vector Search - typ VECTOR, funkcja VECTOR_DISTANCE, indeksy wektorowe (HNSW, IVF) i nowa składnia wyszukiwania semantycznego.
  • Wbudowane embeddingi - model w formacie ONNX można zaimportować do bazy i liczyć wektory funkcją VECTOR_EMBEDDING, bez wysyłania danych na zewnątrz.
  • Select AI - pytania w języku naturalnym zamieniane na SQL przez duży model językowy (pakiet DBMS_CLOUD_AI).
  • Oracle Machine Learning - pełne uczenie maszynowe w SQL/PL-SQL i Pythonie, działające w całości w bazie.
  • Property Graph i JSON Relational Duality - zapytania grafowe oraz jeden zbiór danych widziany jednocześnie jako tabele i jako dokumenty JSON.

Poniższe zrzuty pochodzą z prawdziwej, świeżo postawionej bazy Oracle 26ai Free. Zacznijmy od dowodu, że to faktycznie najnowsze wydanie:

SQL*Plus - SELECT banner_full FROM v$version zwraca Oracle AI Database 26ai Free Release 23.26.2.0.0
Wersja bazy - Oracle AI Database 26ai Free, Release 23.26

Wektor jako pełnoprawny typ danych

W 23ai/26ai wektor to zwykła kolumna w tabeli - definiujesz jej wymiar i format liczb. Dzięki temu embeddingi (np. opisów produktów, dokumentów, zdjęć) leżą obok danych biznesowych, a nie w osobnym systemie.

SQL*Plus - CREATE TABLE z kolumną wektor VECTOR(384, FLOAT32) i DESC tabeli pokazujący typ VECTOR(384, FLOAT32, DENSE)
Kolumna typu VECTOR(384, FLOAT32) - wektor jest first-class citizen w bazie

Wyszukiwanie semantyczne funkcją VECTOR_DISTANCE

Sercem AI Vector Search jest funkcja VECTOR_DISTANCE. Liczy ona odległość między wektorami (np. metryką kosinusową), a najmniejsza odległość oznacza największe podobieństwo. W przykładzie pytamy o produkty najbardziej podobne do roweru górskiego - baza poprawnie układa ranking:

SQL*Plus - tworzenie tabeli produkty z kolumną VECTOR, wstawienie 4 produktów i zapytanie VECTOR_DISTANCE z metryką COSINE; wynik ranking: Rower gorski 0, Rower szosowy 0.0059, Hulajnoga 0.3265
VECTOR_DISTANCE z metryką COSINE - ranking podobieństwa liczony w jednym zapytaniu SQL

Składnia jest zwięzła i czytelna - to po prostu SQL z nowymi funkcjami:

SELECT nazwa,
       VECTOR_DISTANCE(cechy, VECTOR('[0.90,0.10,0.20]'), COSINE) AS odleglosc
FROM   produkty
ORDER  BY odleglosc
FETCH FIRST 3 ROWS ONLY;

Indeks wektorowy HNSW dla milionów wektorów

Przy dużych zbiorach przeszukiwanie każdego wektora po kolei jest zbyt wolne. Oracle dodaje indeksy wektorowe (HNSW i IVF) oraz dedykowany obszar pamięci Vector Pool. Zapytanie z FETCH APPROX korzysta z indeksu i zwraca wynik przybliżony z zadaną dokładnością - bardzo szybko, nawet przy milionach rekordów:

SQL*Plus - CREATE VECTOR INDEX ORGANIZATION INMEMORY NEIGHBOR GRAPH DISTANCE COSINE oraz zapytanie z FETCH APPROX FIRST 2 ROWS ONLY
Indeks wektorowy HNSW (graf sąsiedztwa w pamięci) i wyszukiwanie przybliżone FETCH APPROX

Po co to wszystko? RAG na danych firmy

Najczęstsze zastosowanie wyszukiwania wektorowego to RAG (Retrieval-Augmented Generation) - odpowiedzi modelu językowego ugruntowane w dokumentach firmy. W Oracle cały przepływ może żyć w jednej bazie:

Diagram przepływu RAG w Oracle 23ai: Dokumenty --> VECTOR_EMBEDDING (model ONNX w bazie) --> kolumna VECTOR z indeksem HNSW --> VECTOR_DISTANCE --> LLM z kontekstem
Przepływ RAG w Oracle 23ai - embedding, indeks i wyszukiwanie obok danych transakcyjnych

Chcesz pewnie pisać takie zapytania SQL w Oracle?
Zaawansowany Oracle SQL - funkcje analityczne, hierarchie i optymalizacja zapytań. Ocena 4.9/5, terminy gwarantowane.

Oracle Machine Learning - model ML w czystym SQL

To najstarszy filar AI w Oracle - i wciąż w pełni żywy w 26ai. Pakiet DBMS_DATA_MINING pozwala zbudować model uczenia maszynowego bez ani jednej linijki Pythona i bez eksportu danych. W przykładzie uczymy klasyfikator Naive Bayes przewidywać, czy klient dokona zakupu, a następnie wołamy PREDICTION wprost w zapytaniu:

SQL*Plus - DBMS_DATA_MINING.CREATE_MODEL budujący model klasyfikacji Naive Bayes na tabeli klienci_ml oraz zapytanie z funkcjami PREDICTION i PREDICTION_PROBABILITY zwracające trafne predykcje TAK/NIE dla 8 klientów
Oracle Machine Learning - budowa modelu i predykcja w SQL (DBMS_DATA_MINING, PREDICTION)

Co krok po kroku robi ten kod:

  1. Tabela z danymi treningowymi (klienci_ml) — osiem rekordów z wiekiem, dochodem i liczbą kliknięć. Kolumna kupil (TAK/NIE) to zmienna docelowa, której model będzie się uczyć. W realnym projekcie to tysiące lub miliony wierszy z Twojego hurtowni danych — tutaj 8 rekordów wystarczy, żeby zademonstrować mechanizm.
  2. Tabela ustawień (ust_ml) — prosty słownik parametrów. Wpisujemy tu ALGO_NAME = ALGO_NAIVE_BAYES, co mówi pakietowi: użyj algorytmu Naiwnego Bayesa. Można tu podać dziesiątki innych parametrów (głębokość drzewa, liczba drzew w lesie losowym, próg prawdopodobieństwa itd.) — gdy tabela ustawień jest pusta, Oracle dobiera parametry automatycznie.
  3. Budowa modelu (DBMS_DATA_MINING.CREATE_MODEL) — jedno wywołanie PL/SQL i model jest gotowy. Podajesz: nazwę modelu (MODEL_KUPNA), typ zadania (CLASSIFICATION — klasyfikacja binarna), tabelę z danymi, kolumnę z unikalnym ID każdego przypadku i kolumnę docelową. Oracle trenuje model w bazie — żadne dane nie opuszczają serwera, żadne połączenie z zewnętrznym API nie jest potrzebne.
  4. Predykcja w SELECT (PREDICTION i PREDICTION_PROBABILITY) — model działa jak zwykła funkcja SQL. PREDICTION(MODEL_KUPNA USING wiek, dochod, klikniecia) zwraca prognozowaną etykietę (TAK lub NIE), a PREDICTION_PROBABILITY — stopień pewności tej prognozy w przedziale 0–1. Możesz łączyć je z WHERE, JOIN, ORDER BY — to zwykłe wyrażenie SQL.

Cały model powstał i działa wewnątrz bazy — obliczenia AI jadą do danych, nie odwrotnie. Ta sama filozofia co Vector Search, tyle że dostępna już od Oracle 9i R2.

Select AI — pytaj bazę po polsku

Wyobraź sobie sytuację: analityk biznesowy chce wiedzieć, ilu klientów złożyło zamówienie w ostatnim kwartale wartości powyżej 10 000 zł. Nie zna SQL, nie wie jak nazywa się tabela, nie wie w której kolumnie jest data. Normalnie idzie do programisty, który pisze zapytanie. Select AI odwraca ten schemat: analityk pyta bazę bezpośrednio, po polsku, zwykłym zdaniem.

Select AI (pakiet DBMS_CLOUD_AI, dostępny od Oracle Database 23ai) to mechanizm zamieniający pytanie w języku naturalnym na pełne zapytanie SQL — na Twoim konkretnym schemacie, z właściwymi nazwami tabel i kolumn — i od razu zwracający wynik. Pod spodem działa duży model językowy (LLM), ale Ty piszesz tylko zdanie po polsku, resztę robi baza.

Jak to działa — przepływ krok po kroku

Zrozumienie mechanizmu jest kluczowe, żeby świadomie go używać (i żeby wiedzieć, gdzie są granice). Oto co się dzieje, gdy piszesz SELECT AI 'pokaż dziesięciu największych klientów':

  1. Baza czyta profil AI. Profil (stworzony przez administratora raz, poleceniem DBMS_CLOUD_AI.CREATE_PROFILE) zawiera: adres i klucz API dostawcy LLM, nazwę modelu językowego, listę tabel i kolumn, które model „widzi".
  2. Baza buduje tzw. prompt systemowy. Automatycznie pobiera z danych słownikowych (ALL_TABLES, ALL_COLUMNS) definicje tabel i kolumn z profilu, a następnie wysyła do LLM instrukcję: „Masz do dyspozycji ten schemat, napisz SQL odpowiadający na to pytanie."
  3. LLM generuje SQL. Model widzi schemat i pytanie użytkownika, odpowiada czystym zapytaniem SQL (bez żadnych dodatkowych słów).
  4. Baza wykonuje wygenerowany SQL i zwraca wyniki. Wygenerowane zapytanie jest uruchamiane na bazie tak samo jak każde inne — z uprawnieniami bieżącego użytkownika.
Dane do LLM — co tak naprawdę wysyłasz?
Do zewnętrznego modelu trafia wyłącznie schemat (nazwy tabel i kolumn oraz ewentualne komentarze) i treść Twojego pytania. Dane z tabel nie są wysyłane do LLM. Mimo to, jeśli nazwy kolumn zdradzają wrażliwe informacje (np. nr_pesel, kwota_wynagrodzenia), warto przemyśleć, które tabele umieszczasz w profilu.

Krok 1 — Poświadczenia (credential)

Zanim stworzysz profil, musisz zapisać w bazie klucz API dostawcy LLM. Oracle przechowuje go bezpiecznie w zaszyfrowanym obiekcie CREDENTIAL. Poniżej przykład dla OpenAI:

-- Zapisanie klucza API OpenAI w zaszyfrowanym obiekcie credential.
-- Klucz jest przechowywany jak hasło w Oracle Wallet — nie widać go po stworzeniu.
BEGIN
  DBMS_CLOUD.CREATE_CREDENTIAL(
    credential_name => 'OPENAI_CRED',        -- dowolna nazwa obiektu w bazie
    username        => 'OPENAI',             -- wymagana wartość literalna dla OpenAI
    password        => 'sk-...'              -- Twój klucz API z platform.openai.com
  );
END;
/

Jeżeli używasz OCI Generative AI (usługa Oracle Cloud — dane nie opuszczają infrastruktury OCI), zamiast klucza API podajesz poświadczenia OCI (user OCID, tenancy OCID, fingerprint klucza prywatnego) — procedura jest analogiczna, zmienia się tylko format parametrów.

Krok 2 — Profil AI

Profil to konfiguracja, która spina razem: dostawcę LLM, model, credential i listę tabel, które model może „widzieć". Tworzysz go raz (zazwyczaj robi to DBA lub właściciel schematu) — użytkownicy z nadanym profilem mogą potem pytać bazę bez konfiguracji:

-- Stworzenie profilu AI łączącego: dostawcę LLM, model, credential i widoczne tabele.
-- JSON-owa konfiguracja jest przesyłana do DBMS_CLOUD_AI.CREATE_PROFILE.
BEGIN
  DBMS_CLOUD_AI.CREATE_PROFILE(
    profile_name => 'SPRZEDAZ_AI',           -- nazwa profilu używana w SELECT AI
    attributes   => '{
      "provider"   : "openai",               -- dostawca: openai | oci | azure | google
      "credential_name": "OPENAI_CRED",      -- credential stworzony w kroku 1
      "model"      : "gpt-4o",               -- konkretna wersja modelu LLM
      "object_list": [                        -- lista tabel, które LLM "widzi" (schemat)
        {"owner": "SKLEP", "name": "ZAMOWIENIA"},
        {"owner": "SKLEP", "name": "KLIENCI"},
        {"owner": "SKLEP", "name": "PRODUKTY"}
      ],
      "language"   : "polish"                -- podpowiada modelowi język pytań
    }'
  );
END;
/

-- Nadanie uprawnień do korzystania z profilu innemu użytkownikowi:
EXEC DBMS_CLOUD_AI.GRANT_PROFILE('SPRZEDAZ_AI', 'ANNA');

-- Ustawienie profilu jako domyślnego dla bieżącej sesji:
EXEC DBMS_CLOUD_AI.SET_PROFILE('SPRZEDAZ_AI');

Krok 3 — Cztery tryby zapytania

Składnia SELECT AI obsługuje wiele trybów (tzw. akcji), wybierasz je słowem kluczowym za AI. Sześć najczęściej używanych:

Tryb (akcja)SkładniaCo zwraca
runsql (domyślny) SELECT AI 'pytanie' Wynik zapytania SQL wygenerowanego przez LLM — wiersze i kolumny jak w zwykłym SELECT. Obsługuje też RAG (wyszukiwanie wektorowe jako kontekst)
showsql SELECT AI showsql 'pytanie' Wygenerowany kod SQL jako tekst — nie wykonuje go. Przydatne do nauki i weryfikacji poprawności
explainsql SELECT AI explainsql 'pytanie' Generuje SQL, a następnie prosi LLM o wyjaśnienie po ludzku, co ten SQL robi. Para do showsql — zamiast czytać SQL samemu, dostajesz opis słowami
showprompt SELECT AI showprompt 'pytanie' Wyświetla pełny prompt, który Oracle buduje i wysyła do LLM — widać tu schemat tabel, instrukcje systemowe i Twoje pytanie. Niezastąpione przy debugowaniu i audycie bezpieczeństwa
narrate SELECT AI narrate 'pytanie' LLM wykonuje SQL, dostaje wyniki i opisuje je zdaniami po polsku. Zamiast tabeli z liczbami dostajesz zdanie: „Najlepszy miesiąc to marzec z 4 820 zł średniej wartości zamówienia"
chat SELECT AI chat 'pytanie' Przekazuje pytanie bezpośrednio do LLM bez uruchamiania SQL. Rozmowa ogólna — wyjaśnienia, kontekst, pytania niezwiązane z danymi w bazie
summarize SELECT AI summarize 'pytanie' Streszcza tekst i duże pliki (do 1 GB) przy pomocy LLM. Przydatne do podsumowywania dokumentów, raportów lub długich treści przechowywanych w bazie
feedback SELECT AI feedback 'korekta' Pozwala powiedzieć modelowi, że poprzedni SQL był błędny i jak powinien wyglądać poprawny. LLM uczy się na tej podstawie i generuje dokładniejsze zapytania w przyszłości. Dostępne od Oracle AI Database 26ai
agent SELECT AI agent 'zadanie' Uruchamia autonomicznego agenta z planowaniem wieloetapowym, użyciem narzędzi i refleksją — agent samodzielnie rozkłada złożone zadanie na kroki i je wykonuje. Dostępne od Oracle AI Database 26ai

Przykłady w akcji

Przyjmijmy, że w schemacie SKLEP mamy tabele ZAMOWIENIA (z kolumnami: id_klienta, data_zamowienia, wartosc) i KLIENCI (id_klienta, imie, nazwisko). Oto jak wygląda rozmowa z bazą:

-- runsql (domyślny): wykonuje SQL i zwraca wiersze jak w zwykłym SELECT
SELECT AI 'pokaż dziesięciu klientów z największą łączną wartością zamówień w tym roku';

--  IMIE        NAZWISKO    SUMA_ZAMOWIEN
--  ----------  ----------  -------------
--  Anna        Kowalska       128 540,00
--  Marek       Nowak          114 220,00
--  ...         ...                   ...

-- showsql: wyświetla wygenerowany SQL bez wykonywania go
SELECT AI showsql 'pokaż dziesięciu klientów z największą łączną wartością zamówień w tym roku';

--  SELECT k.imie, k.nazwisko, SUM(z.wartosc) AS suma_zamowien
--  FROM   sklep.klienci k
--  JOIN   sklep.zamowienia z ON z.id_klienta = k.id_klienta
--  WHERE  EXTRACT(YEAR FROM z.data_zamowienia) = EXTRACT(YEAR FROM SYSDATE)
--  GROUP  BY k.imie, k.nazwisko
--  ORDER  BY suma_zamowien DESC
--  FETCH FIRST 10 ROWS ONLY

-- explainsql: generuje SQL, a potem prosi LLM o wytłumaczenie go po ludzku
SELECT AI explainsql 'pokaż dziesięciu klientów z największą łączną wartością zamówień w tym roku';

--  "Zapytanie łączy tabele KLIENCI i ZAMOWIENIA po kolumnie id_klienta,
--   filtruje zamówienia z bieżącego roku, sumuje wartości dla każdego klienta
--   i sortuje malejąco, zwracając pierwszą dziesiątkę."

-- showprompt: pokazuje pełny prompt wysyłany do LLM (schemat + instrukcje + pytanie)
SELECT AI showprompt 'pokaż dziesięciu klientów z największą łączną wartością zamówień w tym roku';

--  "You are an Oracle SQL expert. The following tables are available:
--   SKLEP.ZAMOWIENIA (id_klienta NUMBER, data_zamowienia DATE, wartosc NUMBER)
--   SKLEP.KLIENCI (id_klienta NUMBER, imie VARCHAR2, nazwisko VARCHAR2)
--   Generate a SQL query for: pokaż dziesięciu klientów..."

-- narrate: wykonuje SQL i każe LLM opisać wynik zdaniami po polsku
SELECT AI narrate 'jaka była średnia wartość zamówienia w każdym miesiącu tego roku?';

--  "W 2025 roku najwyższa średnia wartość zamówienia przypadła na marzec
--   (4 820 zł), najniższa zaś na sierpień (2 110 zł). Ogólna średnia
--   roczna wyniosła 3 460 zł."

-- chat: przekazuje pytanie wprost do LLM, bez SQL i bez danych z tabel
SELECT AI chat 'co to jest indeks HNSW i kiedy go użyć?';

--  "HNSW (Hierarchical Navigable Small World) to graf przybliżonego wyszukiwania
--   najbliższych sąsiadów. Buduje wielowarstwową strukturę węzłów połączonych
--   krawędziami — górne warstwy to długie skoki, dolne to precyzyjne dopasowanie...
--   Użyj go, gdy masz powyżej kilkudziesięciu tysięcy wektorów i zależy Ci na
--   czasie odpowiedzi poniżej 10 ms."

-- summarize: streszcza tekst lub plik przechowywany w bazie (do 1 GB)
SELECT AI summarize 'streść raport kwartalny z tabeli RAPORTY gdzie id = 42';

--  "Raport za Q1 2025 odnotowuje wzrost sprzedaży o 18% rok do roku,
--   głównie w segmencie B2B. Marża brutto spadła o 2 pp do poziomu 34%
--   z powodu wzrostu kosztów logistyki..."

-- feedback (Oracle 26ai): powiedz modelowi, że poprzedni SQL był błędny
SELECT AI feedback 'poprzednie zapytanie o klientów pominęło zamówienia anulowane — kolumna status = ''ANULOWANE'' powinna być wykluczona';

--  "Dziękuję za korektę. Zapamiętałem, że przy zapytaniach o klientów
--   i zamówienia należy zawsze dodać warunek status != ''ANULOWANE''."

-- agent (Oracle 26ai): autonomiczny agent rozkłada złożone zadanie na kroki
SELECT AI agent 'znajdź klientów, którzy kupili produkt X, ale nie kupili Y, i wyślij im ofertę rabatową';

--  Agent planuje: (1) znajdź klientów X, (2) odejmij zbiór klientów Y,
--  (3) pobierz adresy e-mail, (4) wywołaj narzędzie do wysyłki oferty.
--  Każdy krok jest wykonywany osobno z refleksją nad wynikiem.

Tryb showsql — narzędzie do nauki i weryfikacji

Tryb showsql jest szczególnie wartościowy z dwóch powodów. Po pierwsze, pozwala sprawdzić, czy model dobrze zrozumiał pytanie — zanim zobaczysz wyniki, możesz ocenić poprawność SQL. Po drugie, to świetne narzędzie do nauki: piszesz pytanie po polsku, dostajesz gotowy, poprawny SQL i możesz analizować, jak Oracle przekłada intencję na zapytanie. W środowisku produkcyjnym warto uruchamiać showsql przy pierwszym użyciu każdego nowego pytania, żeby upewnić się, że model trafia w intencję.

Obsługiwani dostawcy LLM

Select AI współpracuje z kilkoma dostawcami dużych modeli językowych. Wybór zależy głównie od wymagań bezpieczeństwa i polityki firmy:

  • OCI Generative AI — usługa Oracle Cloud; dane pozostają w infrastrukturze OCI, naturalny wybór dla klientów chmury Oracle.
  • OpenAI — modele z rodziny GPT; schemat tabel trafia do serwerów OpenAI (poza UE).
  • Azure OpenAI — modele OpenAI hostowane przez Microsoft na Azure; dostępne opcje regionów UE.
  • Google Vertex AI — modele Gemini; integracja przez klucz API Google Cloud.
  • Cohere — alternatywny dostawca, modele Command R.
Select AI vs Vector Search vs Oracle ML — kluczowa różnica
Oracle Machine Learning i AI Vector Search działają w całości wewnątrz bazy — żadne dane nie opuszczają serwera. Select AI jest inaczej skonstruowany: schemat i pytanie trafiają do zewnętrznego LLM przez HTTPS. To często decyduje o wyborze: w regulowanych branżach (banki, ochrona zdrowia) może wymagać dodatkowej zgody na przetwarzanie metadanych poza organizacją.

Kiedy Select AI naprawdę się przydaje

Select AI nie zastąpi analityka, który musi pisać skomplikowane zapytania z wieloma JOINami, funkcjami okna czy hierarchiami. Sprawdza się natomiast doskonale w scenariuszach, gdzie wartość leży w demokratyzacji dostępu do danych:

  • Self-service BI dla menedżerów — kierownik sprzedaży sam sprawdza wyniki bez angażowania działu IT.
  • Rapid prototyping zapytań — programista pisze pytanie, dostaje bazowy SQL, który potem doprecyzowuje ręcznie.
  • Onboarding do nieznanej bazy — nowy pracownik szybko eksploruje nieznany schemat pytaniami w języku naturalnym.
  • Dashboardy z dynamicznymi pytaniami — aplikacje, gdzie użytkownik wpisuje pytanie i dostaje wynik bez własnego SQL.

Dlaczego AI w bazie ma sens?

AspektOsobna baza wektorowaAI Vector Search w Oracle
Lokalizacja danychKopia danych w drugim systemieWektory obok danych biznesowych
Spójność i transakcjeSynchronizacja, ryzyko rozjazduPełne ACID, jedna transakcja
BezpieczeństwoDrugi model uprawnieńTe same role i uprawnienia Oracle
Backup i odtwarzanieOsobny procesWspólny RMAN / Data Guard
Złączenia z danymi firmyTrudne (dwa systemy)Zwykły JOIN w SQL

Najczęstsze pytania

Od której wersji Oracle ma wyszukiwanie wektorowe?

Od Oracle Database 23ai (maj 2024) i w kolejnych wydaniach linii 23 (oznaczanych jako 26ai). Funkcja jest też w darmowej edycji Oracle Database Free - na niej powstały przykłady w tym artykule.

Czy potrzebuję osobnej bazy wektorowej?

Nie. W 23ai wektor to typ danych VECTOR w zwykłej tabeli - z tymi samymi transakcjami, backupem i uprawnieniami co reszta bazy.

Czy AI w Oracle wymaga wysyłania danych na zewnątrz?

Vector Search i Oracle Machine Learning działają w całości w bazie - embeddingi możesz liczyć lokalnie z modelu ONNX. Zewnętrzny LLM jest potrzebny tylko dla funkcji generatywnych (Select AI, generowanie odpowiedzi w RAG).

Opanuj Oracle SQL - fundament pod AI w bazie

Vector Search, OML i Select AI to nadal SQL. Naucz się pisać zaawansowane zapytania, funkcje analityczne i optymalizować wydajność u praktyków JSystems.

Zaawansowany Oracle SQL - terminy gwarantowane →

Interesuje Cię strona AI/ML? Zobacz też Uczenie maszynowe w Pythonie oraz Tworzenie systemu RAG z LangChain.

Najczęściej zadawane pytania

Od której wersji Oracle Database ma wyszukiwanie wektorowe (AI Vector Search)?
AI Vector Search pojawiło się w Oracle Database 23ai (ogólna dostępność maj 2024) i jest kontynuowane w kolejnych wydaniach linii 23 (oznaczanych jako 26ai). Funkcja jest dostępna także w darmowej edycji Oracle Database Free, na której powstały przykłady w tym artykule.
Czy do wyszukiwania wektorowego potrzebuję osobnej bazy wektorowej?
Nie. W Oracle 23ai wektory są pełnoprawnym typem danych (VECTOR), przechowywanym w zwykłej tabeli obok danych transakcyjnych. Te same transakcje, backup, uprawnienia i spójność co reszta bazy - bez kopiowania danych do osobnego systemu wektorowego.
Czy Oracle ma uczenie maszynowe wbudowane w bazę?
Tak, od 2002 roku. Pakiet DBMS_DATA_MINING (dziś Oracle Machine Learning for SQL) pozwala budować i wykonywać modele klasyfikacji, regresji czy klastrowania w czystym SQL/PL-SQL, bez eksportu danych poza bazę. Predykcje uruchamiasz funkcjami PREDICTION i PREDICTION_PROBABILITY wprost w zapytaniu.
Czym jest Select AI w Oracle?
Select AI (pakiet DBMS_CLOUD_AI) pozwala zadać bazie pytanie w języku naturalnym, np. 'pokaż dziesięciu największych klientów w zeszłym kwartale', a baza - korzystając z dużego modelu językowego - sama zamienia je na zapytanie SQL na Twoim schemacie i zwraca wynik.
Czy AI w Oracle wymaga wysyłania danych do zewnętrznego dostawcy AI?
Niekoniecznie. Oracle pozwala zaimportować model embeddingów w formacie ONNX do samej bazy i liczyć wektory funkcją VECTOR_EMBEDDING lokalnie - dane nie opuszczają bazy. Modele uczenia maszynowego (OML) także działają w całości wewnątrz Oracle. Zewnętrzny LLM jest potrzebny tylko dla funkcji generatywnych (Select AI, generowanie odpowiedzi w RAG).

Komentarze (0)

Musisz być zalogowany by móc dodać komentarz. Zaloguj się przez Google

Brak komentarzy...