Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Azure HorizonDB è un servizio di database completamente gestito e pronto per l'intelligenza artificiale nativo del cloud basato su PostgreSQL. Combina un'architettura di calcolo e archiviazione disaggregata con una progettazione di database come log per offrire prestazioni prevedibili, sicurezza di livello aziendale, disponibilità elevata e scalabilità senza problemi per carichi di lavoro cruciali.
Azure HorizonDB consente agli sviluppatori di creare applicazioni intelligenti basate sull'intelligenza artificiale tramite il supporto nativo per incorporamenti vettoriali e l'integrazione con gli strumenti di Azure AI Foundry, mantenendo al tempo stesso la compatibilità completa di PostgreSQL in modo che le applicazioni esistenti possano facilmente eseguire la migrazione a Azure HorizonDB.
Casi d'uso di Azure HorizonDB
Azure HorizonDB è un'alternativa cloud-native scalabile a PostgreSQL autogestito ed è progettata per carichi di lavoro mission-critical, tra cui, a titolo esemplificativo e non esaustivo:
- Carichi di lavoro transazionali (OLTP): elaborazione di transazioni ad alta velocità effettiva, bassa latenza con prestazioni prevedibili per applicazioni line-of-business, piattaforme di e-commerce e back-end SaaS.
- Applicazioni intelligenti e di intelligenza artificiale : il supporto nativo per la ricerca e l'incorporamento dei vettori consente di creare pipeline di generazione aumentata (RAG) di recupero, motori di raccomandazione e ricerca semantica direttamente all'interno del livello del database. La gestione dei modelli di intelligenza artificiale e le pipeline di intelligenza artificiale semplificano ulteriormente la creazione di applicazioni intelligenti all'interno del database.
- Scalabilità in lettura massiva - Applicazioni che possono beneficiare della scalabilità in lettura con dati resilienti della zona condivisi.
- Applicazioni ibride - Integrazione con l'ecosistema Azure, eseguire il mirroring dei dati transazionali in OneLake di Microsoft Fabric, integrandoli con altri dati analitici.
Architettura di Azure HorizonDB
Azure HorizonDB si basa su due principi di architettura fondamentali: separazione delle risorse di calcolo e archiviazione e una progettazione di database come log.
Calcolo e archiviazione disaggregati
L'architettura separa completamente il livello di calcolo dal livello di archiviazione:
- Livello di calcolo - Il calcolo su Azure HorizonDB è senza stato. Le risorse di calcolo (vCore e memoria) possono essere ridimensionate in modo indipendente senza influire sull'archiviazione e viceversa. È possibile aumentare orizzontalmente le letture aggiungendo repliche al cluster HorizonDB.
- Layerstorage - Il livello di archiviazione usa due fleet di archiviazione appositamente create: una dedicata a WAL, un'altra ai dati; entrambe hanno una durabilità supportata dall'archiviazione Azure. Tutte le risorse di archiviazione sono resilienti alla zona per impostazione predefinita. L'archiviazione si espande automaticamente con l'aumentare dei dati, indipendentemente dal livello di calcolo provisionato.
La separazione tra calcolo e archiviazione offre diversi vantaggi:
- Ridimensionare le risorse di calcolo e archiviazione in modo indipendente in base alle esigenze del carico di lavoro.
- Provisioning rapido delle repliche in lettura, poiché condividono la stessa archiviazione sottostante e non è necessaria la replicazione dei dati.
- Failover più rapido per l'alta disponibilità grazie all'archiviazione WAL condivisa e duratura, senza necessità di ripristinare i log.
Architettura del database come log
Azure HorizonDB adotta un'architettura in cui il database funge da log, nella quale solo il WAL (Write Ahead Log) viene scritto dal livello di calcolo al livello di archiviazione. Le pagine di dati non vengono scritte dalle repliche di calcolo al livello di archiviazione. WAL è la fonte autorevole della verità attraverso il sistema.
- Tutte le operazioni di scrittura (Write-Ahead Log) vengono accodate a un servizio di log persistente prima di essere confermate al client. Il servizio WAL è ottimizzato per la semantica di un log delle transazioni e ottimizzato per una bassa latenza.
- Wal filtrato viene inviato solo ai nodi di archiviazione a cui appartengono le modifiche.
- I nodi di archiviazione ricostruiscono lo stato della pagina applicando il WAL, eliminando i tradizionali colli di bottiglia di I/O associati ai checkpoint.
- Questo approccio riduce l'amplificazione della scrittura e offre una latenza di scrittura coerente e prevedibile indipendentemente dalle dimensioni del database.
La combinazione di questi due principi consente a Azure HorizonDB di offrire velocità effettiva elevata, bassa latenza e un utilizzo efficiente delle risorse mantenendo al tempo stesso garanzie ACID complete.
Cluster
Una risorsa Azure HorizonDB di cui è stato eseguito il provisioning è un cluster. Un cluster di Azure HorizonDB è composto da:
- Una o più repliche di calcolo, una delle quali è primaria e scrivibile, mentre le altre sono repliche standby leggibili.
- Una singola copia dei dati nell'archiviazione resiliente alla zona condivisa da tutte le repliche nel cluster.
- Un endpoint di lettura/scrittura che punta sempre alla replica primaria.
- Un endpoint di sola lettura che distribuisce il carico delle connessioni tra tutte le repliche leggibili.
Calcolo delle repliche
Una replica di calcolo di Azure HorizonDB può essere la replica primaria (scrivibile) o una replica in standby leggibile, candidata anche al failover. La replica di calcolo è la posizione in cui risiede il motore relazionale PostgreSQL e dove si verificano il linguaggio, la query e l'elaborazione delle transazioni. Tutte le interazioni con il cluster Azure HorizonDB vengono eseguite tramite le repliche di calcolo. Per avere resilienza zonale, sono necessarie almeno due repliche nel cluster. È possibile aggiungere o rimuovere repliche al cluster Azure HorizonDB in base alle esigenze del carico di lavoro.
Le repliche di calcolo sono dotate di 8 GB di memoria allocata per core. Le repliche di calcolo hanno anche una cache SSD locale. Questa cache è una cache NVMe a bassa latenza che memorizza nella cache le pagine ad accesso frequente e riduce al minimo la necessità di recuperare i dati dal livello di archiviazione remoto. La cache è presente su tutte le repliche, la primaria e quella in standby.
Le repliche di elaborazione vengono utilizzate in modo efficiente perché delegano al livello di storage le attività relative alla durabilità e all'alta disponibilità. Questo spostamento del carico rende disponibili più risorse di CPU, disco e rete per eseguire la logica di business delle applicazioni sul database. Le attività seguenti vengono trasferite dalle repliche di elaborazione al livello di storage.
| Task | Processo PostgreSQL | Risparmio delle risorse |
|---|---|---|
| Invio WAL dalle repliche | walsender | I/O su disco, I/O di rete |
| Archiviazione WAL nell'archiviazione BLOB | Archiver | I/O su disco, I/O di rete |
| Scrittura di pagine sporche | processo di scrittura in background | I/O disco |
| Checkpoint | gestore dei checkpoint | I/O disco |
| Copie di sicurezza | pg_dump, pg_basebackup, pg_backup_start, pg_backup_stop | I/O disco |
| Operazioni di scrittura a pagina intera | Back-end che eseguono la scrittura WAL | I/O disco |
| Ripristino del WAL di PostgreSQL | ripristino di avvio | I/O disco |
| Ripetizione replica in lettura PostgreSQL | ripristino di avvio | I/O disco |
Storage
Azure HorizonDB utilizza due flotte di archiviazione basate sull'archiviazione BLOB di Azure. Tutti i livelli dello stack di archiviazione sono resilienti a livello di zona per impostazione predefinita.
Spazio di archiviazione WAL
Il servizio WAL è un servizio appositamente progettato che accetta WAL dalla replica di calcolo primaria ed è ottimizzato per modelli di scrittura WAL e a bassa latenza. Quando viene apportata una modifica dei dati (inserimento/aggiornamento/eliminazione) nella replica primaria, WAL viene scritto nel servizio WAL e la transazione viene riconosciuta. WAL viene quindi applicato in modo asincrono alle rispettive partizioni di dati nella flotta di archiviazione dati per applicare le modifiche più recenti. Inoltre, WAL viene inviato alle repliche di calcolo secondarie per riapplicare eventuali modifiche alle pagine presenti in memoria sulle repliche. WAL viene quindi archiviato nell'archiviazione BLOB di Azure e conservato per il periodo di conservazione a breve termine configurato.
Archiviazione dati
La flotta di archiviazione dati è una cache per tutti i dati nel database che fornisce dati a tutte le repliche di calcolo nel cluster Azure HorizonDB. L'archiviazione viene allocata in modo dinamico man mano che il database aumenta senza la necessità di configurare le dimensioni di archiviazione o le operazioni di I/O al secondo. I dati delle relazioni postgres vengono partizionati tra più nodi di archiviazione della flotta per offrire una maggiore scalabilità. Esistono più copie di dello stesso frammento di dati archiviate in più zone per garantire resilienza. Poiché il WAL viene riprodotto nella flotta di archiviazione, le pagine dirty della flotta di archiviazione vengono quindi scritte nell'Archiviazione BLOB di Azure.
Archiviazione BLOB di Azure
L'archiviazione BLOB di Azure garantisce la durabilità dei dati del database e funge anche da archivio dati per l'archiviazione WAL. I dati vengono archiviati su account di archiviazione con ridondanza geografica. I backup del database vengono implementati come snapshot dei BLOB.
prezzo
Azure HorizonDB attualmente addebita:
- Calcolo con provisioning in ore core,
- Spazio di archiviazione del database usato (GB/mese) e
- Utilizzato lo spazio di archiviazione di backup per il periodo di conservazione a breve termine.
Per altri dettagli sui prezzi, vedere la pagina dei prezzi
Limitations
Azure HorizonDB è attualmente in preview. Le funzionalità seguenti non sono ancora disponibili che stiamo lavorando attivamente su queste funzionalità.
| Feature | Condizione | Note |
|---|---|---|
| Conservazione dei backup configurabili | Non ancora disponibile | La conservazione dei backup è attualmente di sette giorni. Stiamo lavorando per abilitare la conservazione dei backup di 1-35 giorni |
| Repliche di lettura tra aree geografiche | Non ancora disponibile | La replica tra aree per il ripristino di emergenza non è ancora supportata. |
| Chiavi gestite dal cliente (CMK) per la crittografia | Non disponibile | La crittografia dei dati archiviati attualmente utilizza solo chiavi gestite dal servizio. |
| Finestre di manutenzione configurabili | Non ancora disponibile | Attualmente gli aggiornamenti vengono eseguiti in una finestra di manutenzione gestita dal sistema. La possibilità di configurare finestre di manutenzione personalizzate non è ancora disponibile |
| Pool di connessioni (PgBouncer) | Non ancora disponibile | È possibile utilizzare un pooler di connessioni esterno mentre lavoriamo all’implementazione del pooling delle connessioni nel servizio. |
| Conservazione a lungo termine (LTR) | Non disponibile | La conservazione dei backup è attualmente di sette giorni. |
| Ottimizzazione dell'indice | Non ancora disponibile | L'ottimizzazione dell'indice è in arrivo. |
| Inserimento della rete virtuale | Non disponibile | Attualmente è supportato il collegamento privato. L'integrazione della rete virtuale non è ancora supportata |
Note
Questo elenco riflette lo stato corrente del servizio ed è soggetto a modifiche man mano che vengono rilasciate nuove funzionalità. Controlla le note di rilascio per gli aggiornamenti più recenti.
Regioni di Azure
Azure HorizonDB è attualmente disponibile nelle aree di Azure seguenti:
| Geography | Regioni |
|---|---|
| Americas | Canada centrale, Stati Uniti centrali, Stati Uniti orientali, Stati Uniti occidentali 2, Stati Uniti occidentali 3 |
| Europe | Germania centro-occidentale, Svezia centrale |
| Asia Pacific | Australia East |
Note
La disponibilità dell'area è soggetta a modifiche e presto verranno aggiunte altre aree. Alcune aree potrebbero avere restrizioni sulle nuove distribuzioni. Per la disponibilità più recente dell'area, vedere il portale di Azure o contattare supporto tecnico di Azure.
Feedback e supporto
Per domande o suggerimenti su Azure HorizonDB, è possibile ottenere assistenza e supporto tramite i canali seguenti:
- Per contattare il supporto tecnico di Azure, inviare un ticket dal portale di Azure.
- Per risolvere un problema con l'account, inviare una richiesta di supporto nel portale di Azure.
- Per fornire feedback o per richiedere nuove funzionalità, inserire un messaggio tramite UserVoice.