Aurora/RDS Postgres als Ziel - Amazon Timestream

Amazon Timestream for LiveAnalytics wird ab dem 20. Juni 2025 nicht mehr für Neukunden verfügbar sein. Wenn Sie Amazon Timestream für verwenden möchten LiveAnalytics, melden Sie sich vor diesem Datum an. Bestandskunden können den Service weiterhin wie gewohnt nutzen. Weitere Informationen finden Sie unter Amazon Timestream zur Änderung der LiveAnalytics Verfügbarkeit.

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Aurora/RDS Postgres als Ziel

In diesem Abschnitt wird die Aufnahme der bereitgestellten S3-Zeitreihendaten in Amazon RDS/Aurora PostgreSQL erklärt. Der Aufnahmeprozess konzentriert sich hauptsächlich auf die CSV-Dateien, die mit dem Exporttool von Timestream generiert wurden, um sie in Postgres aufzunehmen. Wir empfehlen, das PostgreSQL-Schema und die Tabelle mit geeigneten Indizierungsstrategien für zeitbasierte Abfragen zu entwerfen. Verwenden Sie beliebige ETL-Prozesse, um die speziellen Strukturen von Timestream in relationale Tabellen umzuwandeln, die für Ihre spezifischen Anforderungen optimiert sind. Wenn Sie Timestream-Daten in eine relationale Datenbank migrieren, strukturieren Sie Ihr Schema mit einer Timestamp-Spalte als primärem Zeitindex, aus Timestreams measure_name abgeleiteten Messkennungsspalten und Dimensionsspalten aus den Dimensionen von Timestream und Ihren tatsächlichen Kennzahlen. Erstellen Sie strategische Indizes für Zeitbereiche und häufig abgefragte Dimensionskombinationen, um die Leistung während der Datentransformation und des Ladevorgangs zu optimieren. Bei der Migration von Zeitreihendaten nach PostgreSQL ist die richtige Instanzgröße entscheidend, um die Abfrageleistung im großen Maßstab aufrechtzuerhalten. Berücksichtigen Sie bei der Auswahl einer Instance-Klasse Ihr erwartetes Datenvolumen, Ihre Anforderungen an die Abfragekomplexität und die Parallelität. Achten Sie dabei besonders auf die Speicherzuweisung für Arbeitslasten zur Zeitreihen-Aggregation. Nutzen Sie bei Datensätzen, die mehrere zehn Millionen Zeilen umfassen, die systemeigenen Partitionierungsfunktionen und fortschrittlichen Indexierungsstrategien von PostgreSQL, um die Zugriffsmuster von Zeitreihen zu optimieren.

Wir empfehlen, Funktions- und Leistungstests durchzuführen, um die richtige Instanz auszuwählen, und Ihre PostgreSQL-Datenbank so zu optimieren, dass etwaige Leistungsengpässe behoben werden. Die Durchführung strenger Datenintegritätsprüfungen anhand von Stichprobenabfragen zwischen Ihrer Timestream-Quelldatenbank und dem Zielsystem ist entscheidend, um den Erfolg der Migration sicherzustellen und die Richtigkeit der Abfragen zu gewährleisten. Durch die Ausführung identischer Abfragen für beide Systeme und den Vergleich der Ergebnisse — einschließlich Datensatzzahlen, Aggregationen und Ausreißerwerten — können Sie alle Diskrepanzen identifizieren, die auf Transformationsfehler, Datenverlust oder semantische Unterschiede bei der Abfrageinterpretation hinweisen könnten. Dieser Überprüfungsprozess bestätigt, dass Ihre Daten auch nach der Migration ihren analytischen Wert behalten, schafft Vertrauen in das neue System bei allen Beteiligten, die sich auf diese Erkenntnisse verlassen, hilft bei der Identifizierung notwendiger Abfrageanpassungen, um Syntax- oder Funktionsunterschieden zwischen den Plattformen Rechnung zu tragen, und legt eine quantifizierbare Grundlage fest, anhand derer bestimmt werden kann, wann die Migration als abgeschlossen und erfolgreich angesehen werden kann. Ohne diese systematischen Prüfungen könnten subtile Dateninkonsistenzen unentdeckt bleiben, was möglicherweise zu falschen Geschäftsentscheidungen führt oder das Vertrauen in das gesamte Migrationsprojekt untergräbt.

Verschlucken

Wir empfehlen, den AWS Database Migration Service (DMS) mit der Quelle S3 (sowohl CSV als auch Parquet werden unterstützt) mit PostgreSQL als Ziel zu verwenden. Für Szenarien, in denen AWS DMS möglicherweise nicht für Ihre spezifischen Anforderungen geeignet ist, bieten wir ein zusätzliches Python-basiertes Hilfsprogramm (PostgreSQL CSV Ingestion Tool) für die Migration von CSV-Daten von S3 nach PostgreSQL.

Überblick über das PostgreSQL CSV-Aufnahmetool

Das PostgreSQL CSV Ingestion Tool ist ein leistungsstarkes Hilfsprogramm, mit dem CSV-Dateien effizient in PostgreSQL-Datenbanken geladen werden können. Es nutzt Multithreading und Verbindungspooling, um mehrere Dateien parallel zu verarbeiten und so die Ladezeit der Daten erheblich zu reduzieren. Wir empfehlen, dieses Skript mit einer Instanz auszuführen. EC2 Erwägen Sie die Verwendung von Instance-Typen, die für Netzwerkoperationen optimiert sind, wie z. B. C5N.

Schlüsselfeatures

  • Multithread-Verarbeitung: Lädt mehrere CSV-Dateien gleichzeitig.

  • Verbindungspooling: Verwaltet Datenbankverbindungen effizient.

  • Automatische Spaltenerkennung: Extrahiert dynamisch Spaltennamen aus CSV-Headern.

  • Wiederholungslogik: Behandelt vorübergehende Fehler mit exponentiellem Backoff.

  • Dateiverwaltung; Verschiebt verarbeitete Dateien in ein bestimmtes Verzeichnis, sodass ein erneuter Versuch zwar fortgesetzt, aber nicht neu gestartet wird.

  • Umfassende Protokollierung: Detaillierte Protokolle zur Überwachung und Fehlerbehebung.

  • Fehlerbenachrichtigungen: Optionale SNS-Benachrichtigungen bei Ausfällen.

  • Sichere Anmeldeinformationen: Ruft Datenbankkennwörter aus AWS Secrets Manager ab.

Voraussetzungen und Installation

Weitere Informationen zu den Voraussetzungen und zur Installation finden Sie in der Readme-Datei zum PostgreSQL CSV Ingestion Tool unter. GitHub

Usage

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>'

Validierung

Sie können DynamoDB für exportierte Zeilen oder Protokolle verwenden, die mit dem Exporttool von Timestream generiert wurden, und sie mit Zeilen vergleichen, die aus PostgreSQL Ingestion-Automationsprotokollen aufgenommen wurden. Sie können die Anzahl anhand der Quell- und Zieltabellen auswählen und dabei die gleiche Export- und Importzeit einhalten. Wenn die Daten während des Migrationsprozesses kontinuierlich aufgenommen werden, variieren die Zahlen. Es wird daher empfohlen, die exportierten Zeilen mit den aus der Protokollierung wichtigen Zeilen zu vergleichen.

Bereinigen

  • Bereinigen Sie entladene Daten, die als Teil des Tools Timestream for Export erstellt wurden. LiveAnalytics

  • Löscht die heruntergeladenen Daten und meldet sich an, um den Speicherplatz EC2 zurückzugewinnen.

  • Löschen Sie die DynamoDB-Tabelle, wenn sie für die Protokollierung als Teil des Timestream-Tools für LiveAnalytics den Export verwendet wird.