pgvector Benutzerhandbuch
pgvector
ist ein Drittanbieter-Erweiterungsmodul für PostgreSQL, das Datentypen für Vektoren sowie die Zugriffsmethoden IVFFlat und HNSW bereitstellt. Es ist ideal für Szenarien wie maschinelles Lernen, Bildverarbeitung und Verarbeitung natürlicher Sprache, in denen effizientes Handling von Vektordaten erforderlich ist. Dieser Artikel erläutert detailliert, wie pgvector
in ServBay installiert und verwendet wird.
Installation von pgvector
ServBay enthält bereits das pgvector
-Erweiterungsmodul; Sie müssen es lediglich in der Datenbank aktivieren. Hier sind die Schritte zur Aktivierung von pgvector
:
Verbindung zur PostgreSQL-Datenbank herstellen:
bashpsql -U Ihr_Benutzername -d Ihre_Datenbank
1Erweiterung erstellen:
sqlCREATE EXTENSION vector;
1Installation überprüfen:
sql\dx
1
Konfiguration von pgvector
Nach der Aktivierung von pgvector
können Sie Vektordaten erstellen und verwalten und verschiedene Zugriffsmethoden nutzen.
Erstellung einer Vektordaten-Tabelle
Hier ist ein Beispiel, das zeigt, wie man eine Tabelle mit Vektordaten erstellt.
Tabelle erstellen:
sqlCREATE TABLE embeddings ( id SERIAL PRIMARY KEY, vector VECTOR(3) );
1
2
3
4Beispieldaten einfügen:
sqlINSERT INTO embeddings (vector) VALUES ('[0.1, 0.2, 0.3]'), ('[0.4, 0.5, 0.6]'), ('[0.7, 0.8, 0.9]');
1
2
3
4
Erstellung eines Vektor-Index
Um die Abfrageleistung zu verbessern, wird empfohlen, einen Index für die Vektor-Spalte zu erstellen.
IVFFlat-Index erstellen:
sqlCREATE INDEX idx_ivfflat_vector ON embeddings USING ivfflat (vector) WITH (lists = 100);
1HNSW-Index erstellen:
sqlCREATE INDEX idx_hnsw_vector ON embeddings USING hnsw (vector) WITH (m = 16, ef_construction = 200);
1
Nutzung von pgvector für Vektor-Abfragen
Hier sind einige häufige Beispiele für Vektor-Abfragen.
Nächster-Nachbar-Abfrage
- Abfrage des nächsten Vektors:sql
SELECT id, vector FROM embeddings ORDER BY vector <-> '[0.2, 0.3, 0.4]' LIMIT 5;
1
2
3
Vektorsimilaritäts-Abfrage
- Abfrage der Vektorsimilarität:sql
SELECT id, vector, (vector <-> '[0.2, 0.3, 0.4]') AS similarity FROM embeddings ORDER BY similarity LIMIT 5;
1
2
3
Visualisierung von Vektordaten
Sie können verschiedene Datenvisualisierungstools (wie Matplotlib) verwenden, um die Vektordaten aus pgvector
zu visualisieren.
Verwendung von Matplotlib
Matplotlib installieren:
bashpip install matplotlib
1Python-Skript erstellen:
pythonimport psycopg2 import matplotlib.pyplot as plt # Verbindung zur PostgreSQL-Datenbank herstellen conn = psycopg2.connect( dbname="Ihre_Datenbank", user="Ihr_Benutzername", password="Ihr_Passwort", host="localhost" ) cur = conn.cursor() # Vektordaten abfragen cur.execute("SELECT vector FROM embeddings") vectors = cur.fetchall() # Vektorkoordinaten extrahieren x = [v[0][0] for v in vectors] y = [v[0][1] for v in vectors] z = [v[0][2] for v in vectors] # 3D-Streudiagramm erstellen fig = plt.figure() ax = fig.add_subplot(111, projection='3d') ax.scatter(x, y, z) ax.set_xlabel('X Label') ax.set_ylabel('Y Label') ax.set_zlabel('Z Label') plt.show() # Datenbankverbindung schließen cur.close() conn.close()
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
Zusammenfassung
pgvector
ist ein leistungsstarkes Vektorerweiterungsmodul, mit dem Sie durch einfache Konfiguration und Verwendung effiziente Vektordaten in PostgreSQL speichern und abfragen können. ServBay enthält bereits das pgvector
-Erweiterungsmodul; Sie müssen es nur gemäß den in diesem Artikel beschriebenen Schritten installieren und konfigurieren. Mithilfe verschiedener Vektorabfragen und Analysetools können Sie Vektordaten optimal nutzen und Ihrer Anwendung zuverlässige Datenbankunterstützung bieten.