AlloyDB Omni ist ein herunterladbares Datenbanksoftwarepaket, mit dem Sie eine optimierte Version von AlloyDB for PostgreSQL in Ihrer eigenen Computing-Umgebung bereitstellen können. Dank der Portabilität von AlloyDB Omni kann es in einer Vielzahl von Umgebungen ausgeführt werden, darunter:
- Rechenzentren
- Laptops
- Cloudbasierte VM-Instanzen
AlloyDB Omni eignet sich gut für folgende Szenarien:
- Sie benötigen eine skalierbare und leistungsstarke Version von PostgreSQL, können aber aufgrund von rechtlichen oder Datensouveränitätsanforderungen keine Datenbank in der Cloud ausführen.
- Sie benötigen eine Datenbank, die auch dann weiter ausgeführt wird, wenn die Internetverbindung getrennt ist.
- Sie möchten Ihre Datenbank möglichst nah an Ihren Nutzern platzieren, um die Latenz zu minimieren.
- Sie möchten von einer alten Datenbank migrieren, ohne sich zu einer vollständigen Cloud-Migration zu verpflichten.
AlloyDB Omni enthält keine AlloyDB-Funktionen, die auf der Ausführung in Google Cloudbasieren. Wenn Sie Ihr Projekt auf die vollständig verwalteten Skalierungs-, Sicherheits- und Verfügbarkeitsfunktionen von AlloyDB umstellen möchten, können Sie Ihre AlloyDB Omni-Daten wie bei jedem anderen ersten Datenimport in einen AlloyDB-Cluster migrieren.
Wichtige Features
- Ein PostgreSQL-kompatibler Datenbankserver.
- Unterstützung für AlloyDB AI, eine Reihe integrierter Funktionen in AlloyDB, mit denen Sie generative KI-Anwendungen für Unternehmen mit Ihren Betriebsdaten erstellen können.
- Integrationen in das Google Cloud KI-Ökosystem, einschließlich Vertex AI Model Garden und Open-Source-Tools für generative KI.
- Ein Indexberater, der häufig ausgeführte Abfragen analysiert und neue Indexe für eine bessere Abfrageleistung empfiehlt.
- Die spaltenbasierte AlloyDB-Engine, die häufig abgefragte Daten in einem speicherinternen Spaltenformat speichert, um die Leistung von Business Intelligence, Berichten sowie Arbeitslasten von hybriden transaktionsorientierten und analytischen Verarbeitungen (HTAP) zu verbessern.
- Weitere Optimierungen und Verbesserungen gegenüber einem Standard-PostgreSQL-Server, z. B. automatische Arbeitsspeicherverwaltung und adaptives Auto-Vacuum für veraltete Daten.
So funktioniert AlloyDB Omni
AlloyDB Omni kann entweder als eigenständiger Server oder als Teil einer Kubernetes-Umgebung installiert werden.
AlloyDB Omni wird in einem Docker-Container ausgeführt, den Sie in Ihrer eigenen Umgebung installieren. Wir empfehlen, AlloyDB Omni auf einem Linux-System mit SSD-Speicher und mindestens 8 GB Arbeitsspeicher pro CPU auszuführen.
Der AlloyDB Omni Kubernetes-Operator ist eine Erweiterung der Kubernetes API, mit der Sie AlloyDB Omni in den meisten CNCF-kompatiblen Kubernetes-Umgebungen ausführen können. Weitere Informationen finden Sie unter AlloyDB Omni auf Kubernetes installieren.
Ihre Anwendungen stellen eine Verbindung zu Ihrer AlloyDB Omni-Installation her und kommunizieren mit ihr genau wie mit einem gewöhnlichen PostgreSQL-Datenbankserver. Die Nutzerzugriffssteuerung basiert ebenfalls auf PostgreSQL-Standards.
Sie können das Verhalten von AlloyDB Omni mit den gleichen Datenbank-Flags konfigurieren, die auch für AlloyDB verfügbar sind.
Datenbank-Engine-Architektur von AlloyDB Omni auf einer VM
In diesem Dokument wird die Datenbankarchitektur in AlloyDB Omni in einem Container beschrieben. In diesem Dokument wird davon ausgegangen, dass Sie mit PostgreSQL vertraut sind.
Ein Datenbankmodul führt die folgenden Aufgaben aus:
- Wandelt eine Abfrage von einem Client in einen ausführbaren Plan um
- Sucht nach den Daten, die für die Abfrage erforderlich sind
- Führt alle erforderlichen Filter-, Sortier- und Aggregationsschritte aus
- Gibt die Ergebnisse an den Client zurück
Wenn die Clientanwendung eine Abfrage an AlloyDB Omni sendet, werden die folgenden Aktionen ausgeführt:
- Die Abfrageverarbeitungsschicht wandelt die Abfrage in einen Ausführungsplan um, der an die Abfrageausführungsschicht gesendet wird.
- Die Abfrageausführungsschicht führt die Vorgänge aus, die zur Berechnung der Antwort auf die Abfrage erforderlich sind.
- Während der Ausführung können Daten aus dem Puffercache oder direkt aus dem Speicher geladen werden. Wenn die Daten aus dem Speicher geladen werden, werden sie für zukünftige Verwendungen im Cache gespeichert.
Zu den Ressourcen, die bei der Verarbeitung der Abfrage des Clients verwendet werden, gehören CPU, Arbeitsspeicher, E/A, Netzwerk und synchrone Primitive wie Datenbanksperren. Bei der Leistungsoptimierung wird die Ressourcennutzung bei jedem Schritt der Abfrageausführung optimiert.
Das Ziel eines leistungsstarken Datenbankmoduls besteht darin, mit möglichst wenigen Ressourcen auf eine Abfrage zu reagieren. Dieses Ziel beginnt mit einem guten Datenmodell und Abfragedesign.
- Wie können Abfragen mit möglichst wenigen Daten beantwortet werden?
- Welche Indexe sind erforderlich, um den Suchraum und die I/O-Leistung zu reduzieren?
- Für die Sortierung von Daten ist bei großen Datenmengen die CPU und oft auch der Laufwerkzugriff erforderlich. Wie kann die Sortierung von Daten vermieden werden?
Datenspeicher
AlloyDB Omni speichert Daten in Seiten mit fester Größe, die im zugrunde liegenden Dateisystem gespeichert werden. Wenn eine Abfrage auf Daten zugreifen muss, prüft AlloyDB Omni zuerst den Pufferpool. Wenn die Seite(n) mit den erforderlichen Daten nicht im Pufferpool gefunden werden, liest AlloyDB Omni die erforderlichen Seite(n) aus dem Dateisystem. Der Zugriff auf Daten aus dem Pufferpool ist deutlich schneller als das Lesen aus dem Dateisystem. Daher ist es ein wichtiger Faktor, die Größe des Pufferpools auf die Datenmenge zu maximieren, auf die eine Anwendung zugreift.
Ressourcenverwaltung
AlloyDB Omni verwendet die dynamische Arbeitsspeicherverwaltung, um den Pufferpool je nach Speicheranforderungen des Systems dynamisch innerhalb der konfigurierten Grenzen zu vergrößern und zu verkleinern. Daher ist keine Optimierung der Größe des Pufferpools erforderlich. Bei der Diagnose von Leistungsproblemen sollten Sie zuerst die Pufferpool-Trefferrate und die Leserate prüfen, um festzustellen, ob Ihre Anwendung vom Pufferpool profitiert. Ist das nicht der Fall, passt das Dataset der Anwendung nicht in den Pufferpool. Sie können dann überlegen, die Größe auf eine größere Maschine mit mehr Arbeitsspeicher anzupassen.
Das Abrufen, Filtern, Aggregieren, Sortieren und Projektieren von Daten erfordert CPU-Ressourcen auf dem Datenbankserver. Um die für diesen Vorgang erforderlichen CPU-Ressourcen zu reduzieren, sollten Sie die Menge der zu manipulierenden Daten minimieren. Überwachen Sie die CPU-Auslastung auf dem Datenbankserver, damit die Auslastung im stabilen Zustand bei etwa 70 % liegt. Dieser Wert lässt auf dem Server ausreichend Spielraum für Auslastungsspitzen oder Änderungen der Zugriffsmuster im Laufe der Zeit. Eine Auslastung von annähernd 100% führt aufgrund der Prozessplanung und des Kontextwechsels zu einem Overhead und kann zu Engpässen in anderen Teilen des Systems führen. Eine hohe CPU-Auslastung ist ein weiterer wichtiger Messwert, der bei Entscheidungen über die Maschinenspezifikationen berücksichtigt werden sollte.
Die Anzahl der IOPS (Eingabe-/Ausgabevorgänge pro Sekunde) ist ein wichtiger Faktor für die Leistung von Datenbankanwendungen. Sie gibt an, wie viele Eingabe- oder Ausgabevorgänge pro Sekunde das zugrunde liegende Speichergerät an die Datenbank senden kann. Um die IOPS-Limits des Datenbankspeichers nicht zu erreichen, minimieren Sie Lese- und Schreibvorgänge im Speicher, indem Sie die Datenmenge maximieren, die in den Pufferpool passt.
Datensicherung und Notfallwiederherstellung
AlloyDB Omni bietet ein kontinuierliches Sicherungs- und Wiederherstellungssystem, mit dem Sie einen neuen Datenbankcluster zu einem beliebigen Zeitpunkt innerhalb eines anpassbaren Aufbewahrungszeitraums erstellen können. So können Sie bei einem versehentlichen Datenverlust schnell wiederherstellen.
Darüber hinaus kann AlloyDB Omni vollständige Sicherungen der Daten Ihres Datenbankclusters erstellen und speichern, entweder auf Anfrage oder nach einem regelmäßigen Zeitplan. Sie können jederzeit eine Sicherung in einem AlloyDB Omni-Datenbankcluster wiederherstellen, der alle Daten aus dem ursprünglichen Datenbankcluster zum Zeitpunkt der Erstellung der Sicherung enthält.
Weitere Informationen finden Sie unter AlloyDB Omni sichern und wiederherstellen.
Als weitere Methode zur Notfallwiederherstellung können Sie eine datenzentrumsübergreifende Replikation erreichen, indem Sie sekundäre Datenbankcluster in separaten Rechenzentren erstellen. AlloyDB Omni streamt Daten asynchron von einem bestimmten primären Datenbankcluster an jeden seiner sekundären Cluster. Sie können einen sekundären Datenbankcluster bei Bedarf zu einem primären AlloyDB Omni-Datenbankcluster hochstufen.
Weitere Informationen finden Sie unter Rechenzentrumsübergreifende Replikation.
Dokumentation für AlloyDB Omni-Version 15.5.2 und niedriger
Informationen zur vorherigen Version von AlloyDB Omni finden Sie in der AlloyDB Omni-Dokumentation für mehrere Container.