Panoramica di AlloyDB Omni

AlloyDB Omni è un pacchetto software di database scaricabile che ti consente di eseguire il deployment di una versione semplificata di AlloyDB per PostgreSQL nel tuo ambiente di calcolo. La portabilità di AlloyDB Omni consente di eseguirlo in un'ampia gamma di ambienti, tra cui:

  • Data center
  • Laptop
  • Istanze VM basate su cloud

AlloyDB Omni è adatto ai seguenti scenari:

  • Hai bisogno di una versione scalabile e performante di PostgreSQL, ma non puoi eseguire un database nel cloud a causa di requisiti normativi o di sovranità dei dati.
  • Devi avere un database che continui a funzionare anche quando è disconnesso da internet.
  • Vuoi posizionare fisicamente il database il più vicino possibile agli utenti per ridurre al minimo la latenza.
  • Vorresti un modo per eseguire la migrazione da un database legacy, ma senza impegnarti per una migrazione completa al cloud.

AlloyDB Omni non include le funzionalità di AlloyDB che si basano sul funzionamento all'interno di Google Cloud. Se vuoi eseguire l'upgrade del tuo progetto alle funzionalità di scalabilità, sicurezza e disponibilità completamente gestite di AlloyDB, puoi eseguire la migrazione dei dati di AlloyDB Omni in un cluster AlloyDB, come faresti con qualsiasi altra importazione iniziale dei dati.

Funzionalità principali

  • Un server di database compatibile con PostgreSQL.
  • Supporto di AlloyDB AI, un insieme integrato di funzionalità integrate in AlloyDB, per aiutarti a creare applicazioni di IA generativa di livello enterprise utilizzando i tuoi dati operativi.
  • Integrazioni con l' Google Cloud ecosistema dell'IA, tra cui Vertex AI Model Garden e gli strumenti di IA generativa open source.
  • Un suggerimento sull'indicizzazione che analizza le query eseguite di frequente e consiglia nuovi indici per migliorare le prestazioni delle query.
  • L'archivio a colonne AlloyDB, che conserva spesso i dati soggetti più spesso a query in un formato a colonne in memoria per prestazioni più rapide su carichi di lavoro per business intelligence, generazione di report ed elaborazione transazionale ibrida e analitica (HTAP).
  • Altre ottimizzazioni e miglioramenti rispetto a un server PostgreSQL standard, come la gestione automatica della memoria e l'autovacuum adattivo dei dati inutilizzati.

Come funziona AlloyDB Omni

AlloyDB Omni può essere installato come server autonomo o all'interno di un ambiente Kubernetes.

AlloyDB Omni viene eseguito in un contenitore Docker che installi nel tuo ambiente. Ti consigliamo di eseguire AlloyDB Omni su un sistema Linux con spazio di archiviazione SSD e almeno 8 GB di memoria per CPU.

L'operatore AlloyDB Omni Kubernetes è un'estensione dell'API Kubernetes che ti consente di eseguire AlloyDB Omni nella maggior parte degli ambienti Kubernetes conformi a CNCF. Per ulteriori informazioni, consulta Installa AlloyDB Omni su Kubernetes.

Le applicazioni si connettono e comunicano con l'installazione di AlloyDB Omni esattamente come con un normale server database PostgreSQL. Anche il controllo dell'accesso degli utenti si basa sugli standard PostgreSQL.

Puoi configurare il comportamento di AlloyDB Omni utilizzando gli stessi flag di database disponibili per AlloyDB.

Architettura del motore del database di AlloyDB Omni su una VM

Questo documento descrive l'architettura del database in AlloyDB Omni in un contenitore. Questo documento presuppone che tu abbia familiarità con PostgreSQL.

Un motore del database esegue le seguenti attività:

  1. Tradisce una query da un client in un piano eseguibile
  2. Trova i dati necessari per soddisfare la query
  3. Esegue eventuali filtri, ordini e aggregazioni necessari
  4. Restituisce i risultati al client
Diagramma che mostra in che modo le applicazioni client interagiscono con i livelli del database.
Figura 1 Una figura che mostra i livelli del database che lavorano insieme per rispondere alle query delle applicazioni client.

Quando l'applicazione client invia una query ad AlloyDB Omni, si verificano le seguenti azioni:

  1. Il livello di elaborazione delle query trasforma la query in un piano di esecuzione che viene inviato al livello di esecuzione delle query.
  2. Il livello di esecuzione delle query esegue le operazioni necessarie per calcolare la risposta alla query.
  3. Durante l'esecuzione, i dati possono essere caricati dalla cache del buffer o direttamente dallo spazio di archiviazione. Se i dati vengono caricati dallo spazio di archiviazione, vengono memorizzati nella cache per usi futuri.

Le risorse utilizzate durante l'elaborazione della query del client includono CPU, memoria, I/O, rete e primitive di sincronizzazione come i blocchi del database. L'ottimizzazione delle prestazioni mira a ottimizzare l'utilizzo delle risorse durante ogni passaggio dell'esecuzione delle query.

Lo scopo di un motore del database ad alte prestazioni è rispondere a una query utilizzando il minor numero di risorse richieste. Per raggiungere questo obiettivo, è necessario un buon modello di dati e un buon design delle query.

  • In che modo è possibile rispondere alle query esaminando la quantità minima di dati?
  • Quali indici sono necessari per ridurre lo spazio di ricerca e l'I/O?
  • L'ordinamento dei dati richiede CPU e, spesso, accesso al disco per set di dati di grandi dimensioni. Come si possono evitare questi problemi?

Archiviazione dei dati

AlloyDB Omni archivia i dati in pagine di dimensioni fisse memorizzate nel file system sottostante. Quando una query deve accedere ai dati, AlloyDB Omni controlla prima il pool di buffer. Se le pagine che contengono i dati richiesti non vengono trovate nel pool di buffer, AlloyDB Omni le legge dal file system. L'accesso ai dati dal pool di buffer è molto più veloce della lettura dal file system, pertanto la massimizzazione delle dimensioni del pool di buffer in base alla quantità di dati a cui accederà un'applicazione è un fattore importante.

Gestione delle risorse

AlloyDB Omni utilizza la gestione dinamica della memoria per consentire al pool di buffer di espandersi e contrarsi dinamicamente entro i limiti configurati, a seconda delle richieste di memoria del sistema. Pertanto, non è necessario ottimizzare le dimensioni del pool di buffer. Quando diagnostichi problemi di prestazioni, le prime metriche da considerare sono il tasso di hit del pool di buffer e la frequenza di lettura per capire se la tua applicazione sta sfruttando il vantaggio del pool di buffer. In caso contrario, significa che il set di dati dell'applicazione non è compatibile con il pool di buffer e potresti prendere in considerazione la possibilità di ridimensionare la macchina a una più grande con più memoria.

Il processo di recupero, filtraggio, aggregazione, ordinamento e proiezione dei dati richiede risorse della CPU sul server di database. Per ridurre la quantità di risorse della CPU richieste per questa procedura, riduci al minimo la quantità di dati da manipolare. Monitora l'utilizzo della CPU sul server di database per assicurarti che l'utilizzo in stato stabile sia intorno al 70%. Questo valore lascia spazio sufficiente sul server per picchi di utilizzo o variazioni dei pattern di accesso nel tempo. L'esecuzione con un utilizzo più vicino al 100% introduce un overhead dovuto alla pianificazione dei processi e al passaggio di contesto e potrebbe creare colli di bottiglia in altre parti del sistema. L'utilizzo elevato della CPU è un'altra metrica chiave da utilizzare per prendere decisioni sulle specifiche della macchina.

Le operazioni di I/O al secondo (IOPS) sono un fattore importante per il rendimento delle applicazioni di database: indicano quante operazioni di input o output al secondo il dispositivo di archiviazione sottostante può fornire al database. Per evitare di raggiungere i limiti di IOPS dello spazio di archiviazione del database, riduci al minimo le letture e le scritture nello spazio di archiviazione massimizzando la quantità di dati che possono essere inseriti nel pool del buffer.

Backup dei dati e ripristino di emergenza

AlloyDB Omni dispone di un sistema di backup e recupero continuo che consente di creare un nuovo cluster di database in base a un punto in tempo qualsiasi all'interno di un periodo di conservazione regolabile. In questo modo puoi recuperare rapidamente da incidenti di perdita di dati.

Inoltre, AlloyDB Omni può creare e archiviare backup completi dei dati del tuo cluster di database, on demand o con una pianificazione regolare. In qualsiasi momento, puoi eseguire il ripristino da un backup a un cluster di database AlloyDB Omni contenente tutti i dati del cluster di database originale al momento della creazione del backup.

Per ulteriori informazioni, consulta Eseguire il backup e il ripristino di AlloyDB Omni.

Come ulteriore metodo di disaster recovery, puoi eseguire la replica tra data center creando cluster di database secondari in data center separati. AlloyDB Omni trasmette in streaming i dati in modo asincrono da un cluster di database principale designato a ciascuno dei suoi cluster secondari. Se necessario, puoi promuovere un cluster di database secondario in un cluster di database AlloyDB Omni principale.

Per ulteriori informazioni, consulta Informazioni sulla replica tra data center.

Documentazione per AlloyDB Omni versione 15.5.2 e precedenti

Per informazioni sulla versione precedente di AlloyDB Omni, consulta il set di documentazione di AlloyDB Omni multi-container.

Passaggi successivi