Vektor-LagerAusführungszeit in msOpensearch1695Postgresql1807Neptune2236S3 Vektor-Lager2284 Aurora Capacity Unit (ACU) 0,12 $ pro ACU pro Stunde Vektor-Store-Typ WiederherstellungszeitZum Preis pro MonatS3 Vektor2284 ms$3.54Neptune2236 ms$345PostgreSQL1807 ms$86OpenSearch1695 ms$172 Ab dem 15. Juli hat AWS Unterstützung für S3-Vektor-Stores für Bedrock-Wissensdatenbanken hinzugefügt. AWS managed: Others: OpenSearch MongoDB Atlas S3 vector store Pinecone PostgreSQL Redis Enterprise Cloud Neptune AWS managed: Others: OpenSearch MongoDB Atlas S3 vector store Pinecone PostgreSQL Redis Enterprise Cloud Neptune AWS verwaltet: Die anderen: Was ist jeder einzelne? AWS verwaltet werden: Die OpenSearch: ist eine verteilte, community-driven, Apache 2.0-lizenzierte, 100% open-source-such- und analytische Suite, die für eine breite Palette von Anwendungsfällen wie Echtzeit-Anwendungsüberwachung, Log-Analyse und Website-Such verwendet wird. OpenSearch bietet ein hoch skalierbares System für den schnellen Zugriff und die Reaktion auf große Datenmengen mit einem integrierten Visualisierungswerkzeug, OpenSearch Dashboards, das es Benutzern einfach macht, ihre Daten zu erkunden. OpenSearch wird von der Apache Lucene-Suchbibliothek angetrieben und unterstützt eine Reihe von Such- und Analysemöglichkeiten wie K-Nearest Neighbours (KNN) Suche, SQL, Anomaly Detection, Machine Learning Commons, Trace Analytics, Voll OpenSearch OpenSearch Der S3 Vector Store: Amazon S3 Vectors is the first cloud object store with native support to store and query vectors, delivering purpose-built, cost-optimized vector storage for AI agents, AI inference, and semantic search of your content stored in Amazon S3. By reducing the cost of uploading, storing, and querying vectors by up to 90%, S3 Vectors makes it cost-effective to create and use large vector datasets to improve the memory and context of AI agents as well as semantic search results of your S3 data. Amazon S3 Vectors ist der erste Cloud-Objekt-Store mit nativer Unterstützung für das Speichern und Abfragen von Vektoren und liefert zielgerichtete, kosteneffiziente Vektorspeicherung für KI-Agenten, AI-Abschluß und semantische Suche nach Inhalten, die in Amazon S3 gespeichert sind. Über AWS Aurora PostgreSQL: Amazon Aurora PostgreSQL is a cloud-based, fully managed relational database service that is compatible with PostgreSQL. It combines the performance and availability of high-end commercial databases with the simplicity and cost-effectiveness of open-source databases, specifically PostgreSQL. Essentially, it's a PostgreSQL-compatible database offered as a service by Amazon Web Services Amazon Aurora PostgreSQL ist ein cloudbasierter, vollständig verwalteter relationaler Datenbankdienst, der mit PostgreSQL kompatibel ist. Es kombiniert die Leistung und Verfügbarkeit hochwertiger kommerzieller Datenbanken mit der Einfachheit und Kosteneffizienz von Open-Source-Datenbanken, insbesondere PostgreSQL. Die Amazon Neptune: Amazon Neptune is a fast, reliable, fully managed graph database service that makes it easy to build and run applications that work with highly connected datasets Amazon Neptune ist ein schneller, zuverlässiger, vollständig verwalteter Graph-Datenbankdienst, der es einfach macht, Anwendungen zu erstellen und auszuführen, die mit hochvernetzten Datensätzen arbeiten. And non-AWS managed: MongoDB Atlas: Atlas vereinfacht die Bereitstellung und Verwaltung Ihrer Datenbanken und bietet gleichzeitig die Vielseitigkeit, die Sie benötigen, um widerstandsfähige und leistungsstarke globale Anwendungen auf den Cloud-Anbietern Ihrer Wahl zu erstellen. Pinecone: Pinecone ist ein cloudbasierter Vektor-Datenbank-Dienst, der für KI-Anwendungen konzipiert ist, insbesondere für Anwendungen, bei denen die Erfassung erhöht wird. Redis Enterprise Cloud: Redis Enterprise Cloud ist ein vollständig verwaltetes, on-demand, database-as-a-service (DBaaS) Angebot von Redis, das auf der Grundlage von Open-Source-Redis gebaut wurde. Jetzt verstehen wir, was jeder der unterstützten Stores ist.Ich werde nur AWS-verwaltete Stores testen und vergleichen. Ich habe eine Python Lambda-Funktion erstellt. import json import time import boto3 def lambda_handler(event, context): """Demo: Bedrock Nova Micro with Knowledge Base timing comparison""" # Configuration - easily change these for testing MODEL_ID = "amazon.nova-micro-v1:0" # Allow override for comparison KNOWLEDGE_BASE_ID = event.get('kb_id') # Initialize clients bedrock_runtime = boto3.client('bedrock-runtime') bedrock_agent_runtime = boto3.client('bedrock-agent-runtime') query = event.get( 'query', 'Can you provide a list of bank holidays employers can have?') start_time = time.time() try: # 1. Retrieve from Knowledge Base kb_start = time.time() kb_response = bedrock_agent_runtime.retrieve( knowledgeBaseId=KNOWLEDGE_BASE_ID, retrievalQuery={'text': query}, retrievalConfiguration={ 'vectorSearchConfiguration': {'numberOfResults': 3}} ) kb_time = time.time() - kb_start # 2. Build context and prompt context = "\n".join([r['content']['text'] for r in kb_response.get('retrievalResults', [])]) prompt = f"Context: {context}\n\nQuestion: {query}\n\nAnswer:" # 3. Call Bedrock model model_start = time.time() response = bedrock_runtime.converse( modelId=MODEL_ID, messages=[{"role": "user", "content": [{"text": prompt}]}], inferenceConfig={"maxTokens": 500, "temperature": 0.7} ) model_time = time.time() - model_start total_time = time.time() - start_time answer = response['output']['message']['content'][0]['text'] return { 'statusCode': 200, 'body': json.dumps({ 'kb_id': KNOWLEDGE_BASE_ID, 'query': query, 'answer': answer, 'timing_ms': { 'kb_retrieval': round(kb_time * 1000), 'model_inference': round(model_time * 1000), 'total': round(total_time * 1000) }, 'chunks_found': len(kb_response.get('retrievalResults', [])) }) } except Exception as e: return { 'statusCode': 500, 'body': json.dumps({ 'error': str(e), 'kb_id': KNOWLEDGE_BASE_ID }) } In diesem Beispiel werden wir amazon.nova-micro-v1:0-Bedrock-Modell verwenden, um die Leistung zu vergleichen. Diese lambda-Funktion erwartet ein Testereignis im Format: { "query": "Can you provide a list of bank holidays employers can have?", "kb_id": "AAUAL8BHQV" } query - ist unsere query aus meiner text-beispieldatei. sie können jede text-datei verwenden, die sie wollen. kb_id - Wissensdatenbank-ID; wir erstellen eine Wissensdatenbank zur Prüfung Und ich habe 4 verschiedene Wissensdatenbanken mit verschiedenen Datenquellen erstellt: Und schließlich haben wir alles, was wir brauchen, um unsere Tests durchzuführen: Lassen Sie uns die lambda-Funktion ausführen und nur die Wissensdatenbank-ID ändern, um sie richtig zu testen. OpenSearch: Neptune: PostgreSQL: S3 Vector store: Und für ein besseres Bild, geordnet nach Ausführungszeit: Vektor-LagerAusführungszeit in msOpensearch1695Postgresql1807Neptune2236S3 Vektor-Lager2284 Der Vektor Store Ausführungszeit in ms Wie Sie hier sehen können, ist OpenSearch eine schnellere Speicherlösung. Bezahlen Sie wie per OCU. OpenSearch OpenSearch Compute Unit (OCU) - Indexing $0.24 per OCU per hour OpenSearch Compute Unit (OCU) - Search and Query $0.24 per OCU per hour OpenSearch Compute Unit (OCU) - Indexing $0.24 per OCU per hour OpenSearch Compute Unit (OCU) - Search and Query $0.24 per OCU per hour Die minimale OCU, für die Sie bezahlen können, beträgt 0,5. Das bedeutet $ 0,24 * 24 Stunden * 30 Tage * 2 (Indexierung, Suche und Abfrage) * 0,5 (minimale OCU) = $ 172. von : PostgreSQL - pay per ACU Aurora Capacity Unit (ACU) 0,12 $ pro ACU pro Stunde Die minimale ACU, für die Sie bezahlen können, ist 0. Aber 1 ACU kostet Sie $ 0,12 * 24 Stunden * 30 Tage = $ 86 : Neptune Memory-optimized Neptune Capacity Units configuration Cost 16 m-NCUs $0.48 per hour 32 m-NCUs $0.96 per hour 64 m-NCUs $1.92 per hour 128 m-NCUs $3.84 per hour 256 m-NCUs $7.68 per hour 384 m-NCUs $11.52 per hour Memory-optimized Neptune Capacity Units configuration Cost 16 m-NCUs $0.48 per hour 32 m-NCUs $0.96 per hour 64 m-NCUs $1.92 per hour 128 m-NCUs $3.84 per hour 256 m-NCUs $7.68 per hour 384 m-NCUs $11.52 per hour Die Mindestinstanz beträgt $ 0,48 pro Stunde. Das bedeutet, dass Sie pro Monat $ 0,48 kosten * 24 Stunden * 30 Tage = $ 345. Wow! S3 vector store, here - you will need to pay for requests and storage. S3 Vector Storage /Monat - monatliche logische Speicherung von Vektordaten, Schlüsseln und Metadaten = $0.06 per GB S3 Vectors request pricing PUT-Anfragen (pro GB)* GET, LIST und alle anderen Anfragen (pro 1000 Anfragen) S3 Vektoren fordert $ 0,20 pro GB $ 0,055 *PUT unterliegt einer Mindestlast von 128KB pro PUT. Um die PUT-Kosten zu senken, können Sie mehrere Vektoren pro PUT-Anfrage batchen. S3 Vektorabfrage Preise S3 Vektorabfrageanfragen (pro 1.000 Anfragen) $0.0025 S3 Vektordaten - Summe der Vektoren pro Index multipliziert mit der durchschnittlichen Vektorgröße (Vektordaten, Schlüssel und filtrierbare Metadaten) Erste 100 Tausend Vektoren $ 0,0040 pro TB Über 100 Tausend Vektoren $ 0,0020 pro TB Die TLDR: S3 Vectors storage charge ((4 Byte * 1024 Dimensionen) Vektordaten/Vektor + 1 KB filtierbare Metadaten/Vektor + 1 KB nicht filtierbare Metadaten/Vektor + 0,17 KB Schlüssel/Vektor) = 6,17 KB logischer Speicher pro durchschnittlichen Vektor. 6.17 KB/durchschnittlicher Vektor * 250.000 Vektoren * 40 Vektorindizes = 59 GB logischer Speicher. Gesamtmonatliche Speicherkosten = 59 GB * $0.06/GB pro Monat = $3.54 Final comparison table: Vektor-Store-Typ WiederherstellungszeitZum Preis pro MonatS3 Vektor2284 ms$3.54Neptune2236 ms$345PostgreSQL1807 ms$86OpenSearch1695 ms$172 Vektor Store Typ Retrieval Zeit Preise pro Monat ungefähr Wenn die Geschwindigkeit nicht so kritisch ist, würde ich den S3-Vektorladen wählen. Der offensichtliche Gewinner ist ansonsten OpenSearch, was wahrscheinlich eine bessere Wahl wäre. Welchen Vektor-Store verwenden Sie in Ihrem Projekt?