Weitere Informationen zur Vektorunterstützung und ihrer Funktionsweise finden Sie unter Vektorunterstützung – Übersicht.
Hinweis
- Prüfen Sie, ob auf Ihrer AlloyDB Omni-Instanz Version 18.1.0 oder höher ausgeführt wird. Weitere Informationen zum Upgrade finden Sie unter AlloyDB Omni aktualisieren.
Aktivieren Sie die Erweiterung „Vector Assist“ mit dem folgenden Befehl in der Datenbank, die Sie verwenden möchten:
CREATE EXTENSION vector_assist CASCADE;Dadurch wird das
vector_assist-Schema generiert, das von Vector Assist verwendet wird.
Vector Assist zum Bereitstellen einer Vektorarbeitslast verwenden
Wenn Sie Vector Assist zum Bereitstellen und Verwalten einer Vektorarbeitslast verwenden möchten, müssen Sie Folgendes tun:
- Vektorspezifikation definieren
- Vector Assist-Empfehlungen ansehen
- Vector Assist-Empfehlungen anwenden
Vektorspezifikation definieren
Die Vektorspezifikation oder Vektorspezifikation zu definieren, ist der erste Schritt bei der Verwendung von Vector Assist. Je nach Art der Vektor-Arbeitslast können sich die Felder, die Sie zum Definieren der Vektorspezifikation verwenden, unterscheiden.
Wenn Sie beispielsweise die semantische Suche für eine bestimmte Spalte in einer Tabelle aktivieren möchten, führen Sie die Funktion vector_assist.define_spec aus, um die Vektorspezifikation zu definieren:
SELECT
recommendation_id,
REGEXP_REPLACE(query, 'SET hnsw.ef_search TO \d+', 'SET hnsw.ef_search TO') AS query_1,
recommendation,
vector_spec_id,
table_name,
applied,
modified
FROM vector_assist.define_spec(
table_name => 'TABLE_NAME',
vector_column_name => 'VECTOR_COLUMN_NAME',
target_recall => TARGET_RECALL,
tune_vector_index => TUNE_INDEX
);
Ersetzen Sie die folgenden Parameter:
TABLE_NAME: Name der Tabelle, die Sie für Ihre Vektorarbeitslast verwenden möchten.- Optional:
VECTOR_COLUMN_NAME: Spalte, in der die semantische Suche durchgeführt werden soll. Wenn Ihre Tabelle nur eine Spalte mit Vektoren enthält, kannvector_assistdiese automatisch festlegen. Wenn es mehrere Tabellen mit Vektoren gibt, müssen Sie angeben, welche Spalte verwendet werden soll. - (Optional)
TARGET_RECALL: Der Ziel-Recall, den Vector Assist erreichen soll. Falls angegeben, werdenvector_assist-Tests mit verschiedenenef_search-Werten durchgeführt und der Recall bei genauen und Nearest-Neighbor-Suchvorgängen verglichen. Mitvector_assistwirdef_searchauf den Wert festgelegt, der den nächstgelegenen Ziel-Recall ergibt. Der Standardwert ist0.95. - (Optional)
TUNE_INDEX: Boolescher Wert, der angibt, ob Vector Assist die Vektorindexe in Ihrem Arbeitslast optimiert. Der Standardwert istfalse. Das bedeutet, dass nur die suchbezogenen Parameter (ef_search) optimiert werden. Parameter für die Build-Zeit (m,ef_construction) werden nicht optimiert.
Eine vollständige Liste aller verfügbaren Parameter für die Vektorspezifikation finden Sie unter Referenzen für Vector Assist-Funktionen.
Nachdem Sie die Abfrage zum Erstellen der Vektorspezifikation ausgeführt haben, generiert Vector Assist automatisch Schritte, sogenannte Empfehlungen, die Sie ausführen müssen, um Ihren Vektor-Workload bereitzustellen.
Vector Assist-Empfehlungen ansehen
Wenn Sie die Empfehlungen aufrufen möchten, die von Vector Assist anhand Ihrer Vektorspezifikation generiert wurden, führen Sie die Funktion vector_assist.get_recommendations aus:
SELECT vector_assist.get_recommendations(
spec_id => 'SPEC_ID'
);
Ersetzen Sie SPEC_ID durch die Spezifikations-ID der Vektorspezifikation, für die Sie Empfehlungen aufrufen möchten. Eine Liste der verfügbaren Vektorspezifikationen finden Sie unter Vektorspezifikationen auflisten.
vector_assist.get_recommendations gibt eine Tabelle mit dem Namen vector_assist.RECOMMENDATIONS zurück, die alle Empfehlungen enthält. Jede Empfehlung wird in einer Tabelle mit dem zugehörigen spec_id gespeichert. Jede Empfehlung enthält in der Regel die folgenden Informationen:
- SQL-Abfrage, die Sie ausführen müssen
- Detaillierte Erklärung für die Empfehlung
- Weitere relevante Informationen, die die Empfehlung erläutern
Vector Assist-Empfehlungen anwenden
Sie können die generierten Empfehlungen einzeln oder als Ganzes übernehmen.
Wenn Sie eine bestimmte Empfehlung anwenden möchten, führen Sie die Funktion vector_assist.apply_recommendation aus:
SELECT vector_assist.apply_recommendation(
recommendation_id => 'RECOMMENDATION_ID'
);
Ersetzen Sie RECOMMENDATION_ID durch die ID der Empfehlung für den Vektor-Assistenten, die Sie aus der Tabelle vector_assist.RECOMMENDATIONS anwenden möchten.
Wenn Sie alle Empfehlungen zusammen anwenden möchten, führen Sie die Funktion vector_assist.apply_spec mit dem Parameter spec_id oder table_name aus:
SELECT vector_assist.apply_spec(
spec_id => 'SPEC_ID'
);
Ersetzen Sie SPEC_ID durch die ID der Vektorspezifikation, die Sie verwenden möchten.
Optional können Sie auch die Parameter schema_name oder column_name eingeben.
Informationen zu allen verfügbaren Suchparametern finden Sie unter Funktionsreferenzen für Vector Assist.
Nachdem Sie die von Vector Assist generierten Empfehlungen angewendet haben, ist der Vektorindex einsatzbereit.
Suchanfragen generieren
Mit Vector Assist können Sie optimierte Suchanfragen für Ihre bereitgestellten Vektorarbeitslasten erstellen. Dazu werden die Vektorspezifikation der Arbeitslast und der generierte Vektorindex verwendet. So generieren Sie eine optimierte Suchanfrage mit der Funktion vector_assist.generate_query:
SELECT vector_assist.generate_query(
spec_id => 'SPEC_ID',
search_vector => 'SEARCH_VECTOR',
top_k => 'TOP_K',
target_recall => TARGET_RECALL,
filter_expression => 'FILTER_EXPRESSION'
);
Ersetzen Sie die folgenden Parameter:
SPEC_ID: ID der Spezifikation, die Sie verwenden möchten.SEARCH_VECTOR: Vektor für Ihre Suchanfrage. Beispiel:[1, 2, 3].- (Optional)
TOP_K: Anzahl der zurückzugebenden nächsten Nachbarn. Wenn kein Wert angegeben ist, wird der Standardwert10verwendet. - (Optional)
TARGET_RECALL: Der Ziel-Recall, den Vector Assist erreichen soll. Falls angegeben, werdenvector_assist-Tests mit verschiedenenef_search-Werten durchgeführt und der Recall bei genauen und Nearest-Neighbor-Suchvorgängen verglichen. Mitvector_assistwirdef_searchauf den Wert festgelegt, der den nächstgelegenen Ziel-Recall ergibt. - (Optional)
FILTER_EXPRESSION: Alle Filter für die Suchanfrage. Beispiel: Filtern nach anderen Spalten.
Eine vollständige Liste aller verfügbaren Parameter zum Generieren einer Suchanfrage finden Sie unter Funktionsreferenzen für Vector Assist.
Die Ausgabe dieser Funktion ist Text, der eine SQL-Abfrage enthält. Sie können diese SQL-Abfrage nach Bedarf ausführen oder speichern.
Vektorspezifikationen auflisten
Wenn Sie eine einzelne oder alle vorhandenen Vektorspezifikationen auflisten möchten, führen Sie die Funktion vector_assist.list_specs aus:
SELECT vector_assist.list_specs(
spec_id => 'SPEC_ID',
table_name => 'TABLE_NAME'
);
Ersetzen Sie die folgenden Parameter:
- (Optional)
SPEC_ID: ID der Vektorspezifikation, die Sie verwenden möchten. TABLE_NAME: Name der Tabelle, die Sie zum Definieren Ihrer Vektorspezifikation verwendet haben.