Aurora/RDS Postgres come bersaglio - Amazon Timestream

Amazon Timestream LiveAnalytics for non sarà più aperto a nuovi clienti a partire dal 20 giugno 2025. Se desideri utilizzare Amazon Timestream LiveAnalytics per, registrati prima di tale data. I clienti esistenti possono continuare a utilizzare il servizio normalmente. Per ulteriori informazioni, consulta Amazon Timestream LiveAnalytics per la modifica della disponibilità.

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Aurora/RDS Postgres come bersaglio

Questa sezione spiega come importare i dati delle serie temporali staged di S3 in Amazon RDS/Aurora PostgreSQL. Il processo di inserimento si concentrerà principalmente sui file CSV generati dallo strumento di esportazione di Timestream da importare in Postgres. Consigliamo di progettare lo schema e la tabella PostgreSQL con strategie di indicizzazione adeguate per le query basate sul tempo. Utilizza qualsiasi processo ETL per trasformare le strutture specializzate di Timestream in tabelle relazionali ottimizzate per le tue esigenze specifiche. Quando migri i dati di Timestream in un database relazionale, struttura lo schema con una colonna timestamp come indice temporale principale, colonne identificative di misurazione derivate da measure_name di Timestream e colonne di dimensione dalle dimensioni di Timestream e dalle tue misure effettive. Crea indici strategici sugli intervalli di tempo e sulle combinazioni di dimensioni più richieste per ottimizzare le prestazioni durante il processo di trasformazione e caricamento dei dati. Quando si migrano dati di serie temporali su PostgreSQL, il corretto dimensionamento delle istanze è fondamentale per mantenere le prestazioni delle query su larga scala. Considerate il volume di dati previsto, la complessità delle query e i requisiti di concorrenza quando selezionate una classe di istanza, con particolare attenzione all'allocazione della memoria per i carichi di lavoro di aggregazione di serie temporali. Per set di dati che superano le decine di milioni di righe, sfrutta le funzionalità di partizionamento native di PostgreSQL e le strategie di indicizzazione avanzate per ottimizzare i modelli di accesso alle serie temporali.

Ti consigliamo di eseguire test funzionali e prestazionali per scegliere l'istanza giusta e di ottimizzare il database PostgreSQL per risolvere eventuali problemi di prestazioni. L'esecuzione di rigorosi controlli di integrità dei dati mediante confronti di query di esempio tra il database Timestream di origine e il sistema di destinazione è fondamentale per garantire il successo della migrazione e mantenere la correttezza delle query. Eseguendo query identiche su entrambi i sistemi e confrontando i risultati, compresi il conteggio dei record, le aggregazioni e i valori anomali, è possibile identificare eventuali discrepanze che potrebbero indicare errori di trasformazione, perdita di dati o differenze semantiche nell'interpretazione delle query. Questo processo di verifica verifica che i dati mantengano il loro valore analitico dopo la migrazione, crea fiducia nel nuovo sistema tra le parti interessate che si affidano a queste informazioni, aiuta a identificare eventuali aggiustamenti delle query necessari per soddisfare le differenze di sintassi o funzionali tra le piattaforme e stabilisce una base di riferimento quantificabile per determinare quando la migrazione può essere considerata completa e riuscita. Senza questi controlli sistematici, le sottili incongruenze dei dati potrebbero rimanere inosservate, portando potenzialmente a decisioni aziendali errate o minando la fiducia nell'intero progetto di migrazione.

Ingestione

Consigliamo di utilizzare AWS Database Migration Service (DMS) con codice sorgente come S3 (sono supportati sia CSV che Parquet) con PostgreSQL come destinazione. Per gli scenari in cui AWS DMS potrebbe non essere adatto ai tuoi requisiti specifici, forniamo un'utilità supplementare basata su Python (PostgreSQL CSV Ingestion Tool) per la migrazione dei dati CSV da S3 a PostgreSQL.

Panoramica dello strumento di inserimento di file CSV di PostgreSQL

Lo strumento di inserimento CSV di PostgreSQL è un'utilità ad alte prestazioni progettata per caricare in modo efficiente i file CSV nei database PostgreSQL. Sfrutta il multithreading e il pool di connessioni per elaborare più file in parallelo, riducendo significativamente i tempi di caricamento dei dati. Si consiglia di eseguire questo script utilizzando un'istanza. EC2 Prendi in considerazione l'utilizzo di tipi di istanze ottimizzati per le operazioni di rete, come C5N.

Funzionalità principali

  • Elaborazione multithread: carica più file CSV contemporaneamente.

  • Connessione in pool: gestisce in modo efficiente le connessioni al database.

  • Rilevamento automatico delle colonne: estrae dinamicamente i nomi delle colonne dalle intestazioni CSV.

  • Retry Logic: gestisce gli errori transitori con backoff esponenziale.

  • Gestione dei file; sposta i file elaborati in una directory designata in modo che i nuovi tentativi riprendano ma non si riavviino.

  • Registrazione completa: registri dettagliati per il monitoraggio e la risoluzione dei problemi.

  • Notifiche di errore: notifiche SNS opzionali per gli errori.

  • Credenziali sicure: recupera le password del database da Secrets Manager AWS .

Prerequisiti e installazione

Vedi i prerequisiti e l'installazione nel Readme dello strumento di inserimento CSV di PostgreSQL in. GitHub

Utilizzo

python copy_postgres.py \ --database 'postgres_testing' \ --table 'demolarge_restored' \ --csv-files-dir '/data/csv_files/*partition*/*.csv' \ --host database-1.cluster-xxxxxxxx.us-east-1.rds.amazonaws.com \ --secret-arn 'arn:aws:secretsmanager:<region>:<account_id>:secret:rds!cluster-xxxxx-xx-xx-xx-xxxxxxxx-xxxxx' \ --sns-topic-arn 'arn:aws:sns:<region>:<account_id>:<topic_name>'

Convalida

Puoi utilizzare DynamoDB per le righe o i log esportati generati dallo strumento di esportazione di Timestream e confrontarli con le righe importate dai log di automazione di PostgreSQL Ingestion. È possibile effettuare un conteggio delle selezioni rispetto alle tabelle di origine e di destinazione con tempi di esportazione e importazione costanti. Se i dati vengono continuamente inseriti durante il processo di migrazione, i conteggi possono variare, quindi si consiglia di confrontare le righe esportate e le righe importanti della registrazione.

Pulizia

  • Pulisci i dati scaricati che sono stati creati come parte dello strumento di esportazione Timestream for. LiveAnalytics

  • Elimina i dati scaricati e accedi per recuperare lo spazio. EC2

  • Elimina la tabella DynamoDB se utilizzata per la registrazione come parte dello strumento Timestream for export. LiveAnalytics