AWS ha integrato DuckDB in Amazon Aurora PostgreSQL per consentire a una singola query di unire record operativi — comprese le scritture non ancora confermate — e dati Apache Iceberg o Apache Parquet in Amazon S3. Le applicazioni e gli strumenti PostgreSQL possono così interrogare dati correnti e archivi del lake senza copiarli prima in Aurora tramite una pipeline ETL.
Aurora interroga insieme dati operativi e dati del lake
AWS descrive una query che accede ai dati operativi di Aurora e a quelli archiviati in Amazon S3 nello stesso passaggio. Le fonti supportate includono tabelle Apache Iceberg e dati nel formato Apache Parquet, comprese le S3 Tables. La query può includere anche scritture operative non ancora confermate.
DuckDB è integrato in Aurora per elaborare le scansioni analitiche. La funzione è gestita come parte di Aurora PostgreSQL e non coincide con l’estensione PostgreSQL separata pg_duckdb.
DuckDB e i cataloghi compatibili
Per individuare le tabelle Iceberg, Aurora può usare AWS Glue Data Catalog. AWS indica inoltre un percorso per i cataloghi esterni compatibili con Iceberg REST Catalog: registrarli tramite AWS Glue e creare tabelle esterne che facciano riferimento ai relativi dati.
Versioni e configurazione
La funzione è supportata da Aurora PostgreSQL 17.11 e successive e dalla versione 18.6 in poi. Per abilitarla occorrono l’estensione aurora_analytics e un ruolo IAM associato alla funzionalità AuroraAnalytics. Il ruolo concede ad Aurora l’accesso a Amazon S3 e AWS Glue.
Esecuzione delle query e materializzazione
AWS descrive tre ottimizzazioni: il pushdown dei predicati, che applica i filtri durante l’accesso ai dati; la selezione delle colonne necessarie; e la memorizzazione nella cache. La funzione aurora_analytics_stat_statements() riporta, per ogni query, le righe analizzate, i byte letti da S3 e le cache hit.
Le query di lettura possono essere eseguite sull’istanza writer o su una replica di lettura. I comandi che materializzano i dati nel database Aurora, cioè li copiano in tabelle native, vengono invece eseguiti sull’istanza writer. Per i carichi di lavoro che richiedono latenze nell’ordine di pochi millisecondi, AWS indica la materializzazione di una selezione dei dati del lake come possibile soluzione; questa indicazione non è una misura delle prestazioni delle query dirette.
Nell’esempio descritto da AWS, Aurora combina sette giorni di transazioni recenti con cinque anni di transazioni storiche conservate in un file Parquet su S3. Aurora ricava lo schema della tabella esterna dai metadati del file.
Disponibilità e costi
AWS dichiara che la funzione è disponibile in tutte le regioni commerciali AWS e nelle regioni AWS GovCloud (US), senza un costo aggiuntivo per la funzionalità. Restano a carico del cliente i costi incrementali di calcolo di Aurora e quelli delle richieste a S3.