POTTCloud
Essener Rechenzentrum
  • Tier 3
  • ISO 27001
  • Bunker

Managed pgvector

Vektorsuche direkt in deiner PostgreSQL-Datenbank im Essener Rechenzentrum.
Auf dem Server läuft die Erweiterung, Daten und Protokoll sichern wir mit geprüfter Wiederherstellung.

  • Essener Rechenzentrum
  • Vektoren neben den Fachdaten
  • Index aus HNSW oder IVFFlat
  • Transaktionen und Wiederherstellung
  • Filter in derselben Abfrage
  • Sicherung und Wiederherstellung auf Zeitpunkt

Die Vektorsuche in der Datenbank

  • Ein Spaltentyp für Vektoren

    Die Erweiterung legt in PostgreSQL einen Typ an, der Vektoren aufnimmt. Halbe Genauigkeit, Binärwerte und dünne Vektoren stehen daneben, wenn es die Größe verlangt.

  • Exakt oder angenähert

    Ohne Index liefert die Suche jedes Mal das gleiche Ergebnis. Mit Index arbeitet sie annähernd und antwortet schneller. Welche Indexart sich eignet, richtet sich nach Menge und Latenz.

  • Filter in derselben Abfrage

    Bedingungen auf die eigenen Felder laufen mit, der Index liefert die Kandidaten, danach greift der Filter. Für Mandanten trennen wir über Listen.

  • Eine gewöhnliche Datenbank

    Vektoren stehen in einer Tabelle mit den übrigen Daten. Transaktionen, Wiederherstellung auf Zeitpunkt und Verknüpfungen bleiben Sache von PostgreSQL.

Tabelle, Vektorspalte und Index

Tabelle mit Vektorspalte und IndexLinks steht eine Tabelle mit zwei Spalten: Fachdaten und Vektorspalte. Rechts steht der Index, eine Linie verbindet beide.TabelleFachdatenVektorIndex
Links die Tabelle mit der Vektorspalte, rechts der Index.

Die Erweiterung kommt als regulärer Bestandteil der Datenbank dazu. Nach der Installation steht der Typ für Vektoren zur Verfügung, und du kannst ihn in einer Spalte verwenden. Die Werte speichert die Datenbank wie jeden anderen Spaltentyp.

Für die Suche legst du einen Index an. HNSW legt einen mehrschichtigen Graphen an und antwortet schnell, braucht dafür mehr Speicher. IVFFlat sortiert die Vektoren in Gruppen auf und baut sich schneller. Für große Mengen kommt die Quantisierung dazu, damit der Index in den Speicher passt.

Die Abfrage verbindet beide Wege: Der Index liefert die ähnlichsten Vektoren, die Bedingung auf die übrigen Felder grenzt die Treffer ein. Für Mandanten, die sich eine Tabelle teilen, empfiehlt die Projektseite eine Trennung über Listen.

So betreiben wir die Instanz

  • Standort Essen

    Die Instanz läuft im Rechenzentrum in Essen, unter der Erde in einer Bunkeranlage. Deine Daten unterliegen deutschem Recht.

  • Betrieb und Updates

    Wir überwachen die Instanz rund um die Uhr und spielen die Aktualisierungen ein. Die Erweiterung pflegen wir mit der Datenbank, vor jedem Wechsel sichern wir den Stand.

  • Sicherung und Wiederherstellung

    Wir sichern Daten, Konfiguration und Write-Ahead-Log und spielen die Sicherung quartalsweise testweise zurück. Die Probe gehört zum Leistungsumfang.

  • Verträge und Standort

    Im AV-Vertrag steht schriftlich, wer welche Daten verarbeitet und wo die Instanz steht. Die Aufbewahrung der Backups legen wir darin fest.

Grundlagen zu pgvector

Was ist pgvector?

pgvector ist eine Erweiterung für PostgreSQL, die Vektoren speichert und die ähnlichsten Nachbarn findet. Das Projekt steht unter einer offenen Lizenz und läuft auf PostgreSQL ab Version 13. Für jede Sprache mit einem PostgreSQL-Client gibt es eine Bibliothek.

Welche Indexarten gibt es?

HNSW legt einen mehrschichtigen Graphen an und liefert die besseren Treffer, braucht dafür mehr Speicher und baut den Index langsamer. IVFFlat teilt die Vektoren in Listen auf, baut schneller und kommt mit weniger Speicher aus. Beide lassen sich mit der Quantisierung verkleinern.

Was bleibt PostgreSQL?

Alles Übrige: Die Vektoren liegen in einer Tabelle mit den übrigen Daten, die Suche läuft über SQL, und die Datenbank behält ihre Eigenschaften wie Transaktionen, Wiederherstellung auf Zeitpunkt und Verknüpfungen. Ein Wechsel des Einbettungsmodells betrifft nur die Spalte.

In vier Schritten zur betriebenen Instanz

  1. 01

    Datenmodell klären

    Wir sprechen mit dir durch, welche Vektoren deine Anwendung sucht, wie breit sie sind und welche Felder zusätzlich zum Filter dienen.

  2. 02

    Instanz einrichten

    Wir legen die Instanz in deinem Mandanten an, installieren die Erweiterung und bereiten die Tabelle mit der Vektorspalte vor.

  3. 03

    Index und Abfrage prüfen

    Wir spielen deine Daten ein, legen den Index an und messen die Antwortzeit mit einer Abfrage aus deinem Bestand.

  4. 04

    Betrieb und Kontrolle

    Wir überwachen die Instanz, spielen Updates ein und sichern Daten und Log mit geprüfter Wiederherstellung. Für deine Fragen hast du eine feste Ansprechperson.

Häufige Fragen zu Managed pgvector

Warum Vektoren in der Datenbank statt daneben?

Weil beide Daten zusammen in einer Abfrage gehören. Mit der Vektorensuche im SQL lässt sich der Text eines Artikels mit dem Vektorseintrag derselben Zeile vergleichen, ohne dass ein zweiter Dienst die Verknüpfung übernimmt. Transaktionen, Wiederherstellung und Zugriffsrechte bleiben dabei PostgreSQL-Sache.

Welche Genauigkeit brauche ich?

Das hängt von deiner Aufgabe ab. Der Typ für einfache Vektoren speichert jeden Wert mit voller Genauigkeit. Für große Mengen gibt es die halbe Genauigkeit und die Binärquantisierung, die den Speicherbedarf senken und dabei einen kleinen Teil der Trefferqualität kosten. Wir messen das mit deinen Daten.

Wie schnell ist die Suche?

Ohne Index liefert die Suche das exakte Ergebnis, kostet aber einen vollen Durchlauf. Mit Index arbeitet sie annähernd und antwortet deutlich schneller. Beide Indexarten lassen sich in ihren Parametern auf Trefferqualität und Antwortzeit abstimmen, wir stellen sie nach deinem Bestand ein.

Wie trenne ich Mandanten?

Über Listen: Jeder Mandant bekommt eine eigene Liste mit eigenen Grenzen, damit die Suche des einen Mandanten die Treffer des anderen nicht beeinflusst. Alternativ bekommt jeder Mandant eine eigene Tabelle. Wir setzen die Trennung beim Aufsetzen auf und prüfen sie im Betrieb.

Was passiert bei einem Wechsel des Modells?

Die Vektoren ändern sich, die Spalte bleibt. Wir betten die Daten mit dem neuen Modell neu ein und bauen den Index neu auf. Währenddessen läuft die Suche auf einer Kopie, damit deine Anwendung nicht auf halben Daten arbeitet.

Was kostet der Betrieb?

Den Preis bekommst du auf Anfrage. Er richtet sich nach der Größe der Instanz, der Zahl der Vektoren und der gewählten Indexart. Nach der Bestandsaufnahme bekommst du ein schriftliches Angebot, in dem jede Leistung einzeln steht.

Servicegebiet

  • Essener Rechenzentrum, Rüttenscheiderstr. 12
  • Von hier betreiben wir Instanzen für Kunden im Ruhrgebiet, in NRW und bundesweit.
  • Für Kunden aus dem Ruhrgebiet kommen wir zur Probe der Wiederherstellung vorbei.

Kostenloses Erstgespräch über deine Vektorsuche

Wir schauen uns an, welche Vektoren deine Anwendung sucht, welche Dimension sie haben und wie schnell die Antwort sein muss. Aus dem Erstgespräch machen wir dir ein schriftliches Angebot.

Quellen: pgvector – Projektseite (Typen, Indizes, Quantisierung, Mandantentrennung) · PostgreSQL – Dokumentation 18 (Backup, Replikation, Monitoring, WAL) · Komplex IT GmbH – Managed Private Cloud, Managed Backup · Essener Rechenzentrum – Daten und Fakten