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.
Migrieren Sie CLOB Oracle-Werte in einzelne Zeilen in Postgre on SQL AWS
Erstellt von Sai Krishna Namburu () und Sindhusha Paturu () AWS AWS
Umgebung: PoC oder Pilotprojekt | Quelle: Oracle-Datenbank | Ziel: Aurora SQL Postgre-Compatible oder Amazon RDS for Postgre SQL |
R-Typ: Replatform | Arbeitslast: Oracle; Open Source | Technologien: Migration; Speicher und Backup; Datenbanken |
AWSDienste: Amazon Aurora AWSDMS; Amazon S3; Amazon RDS |
Übersicht
Dieses Muster beschreibt, wie die Werte von Oracle Character Large Object (CLOB) in Amazon Aurora Postgre SQL -Compatible Edition und Amazon Relational Database Service (AmazonRDS) for Postgre in einzelne Zeilen aufgeteilt werden. SQL Postgre unterstützt den SQL Datentyp nicht. CLOB
Tabellen mit Intervallpartitionen werden in der Oracle-Quelldatenbank identifiziert, und der Tabellenname, der Partitionstyp, das Intervall der Partition und andere Metadaten werden erfasst und in die Zieldatenbank geladen. Sie können CLOB Daten mit einer Größe von weniger als 1 GB als Text in Zieltabellen laden, indem Sie AWS Database Migration Service (AWSDMS) verwenden, oder Sie können die Daten im CSV Format exportieren, sie in einen Amazon Simple Storage Service (Amazon S3) -Bucket laden und in Ihre SQL Postgre-Zieldatenbank migrieren.
Nach der Migration können Sie den benutzerdefinierten SQL Postgre-Code verwenden, der mit diesem Muster bereitgestellt wird, um die CLOB Daten basierend auf der neuen Zeilenzeichen-ID (CHR(10)
) in einzelne Zeilen aufzuteilen und die Zieltabelle zu füllen.
Voraussetzungen und Einschränkungen
Voraussetzungen
Eine Oracle-Datenbanktabelle mit Intervallpartitionen und Datensätzen mit einem CLOB Datentyp.
Eine Aurora SQL Postgre-Compatible- oder Amazon RDS for SQL Postgre-Datenbank mit einer Tabellenstruktur, die der Quelltabelle ähnelt (dieselben Spalten und Datentypen).
Einschränkungen
Der CLOB Wert darf 1 GB nicht überschreiten.
Jede Zeile in der Zieltabelle muss eine neue Zeilenzeichen-ID haben.
Produktversionen
Oracle 12c
Aurora Postgres 11.6
Architektur
Das folgende Diagramm zeigt eine Oracle-Quelltabelle mit CLOB Daten und die entsprechende SQL Postgre-Tabelle in Aurora SQL Postgre-Compatible Version 11.6.
Tools
AWSDienstleistungen
Amazon Aurora SQL Postgre-Compatible Edition ist eine vollständig verwaltete, ACID konforme relationale Datenbank-Engine, die Sie bei der Einrichtung, dem Betrieb und der Skalierung von Postgre-Bereitstellungen unterstützt. SQL
Amazon Relational Database Service (AmazonRDS) for Postgre SQL unterstützt Sie bei der Einrichtung, dem Betrieb und der Skalierung einer SQL relationalen Postgre-Datenbank in der Cloud. AWS
AWSDer Database Migration Service (AWSDMS) unterstützt Sie bei der Migration von Datenspeichern in die AWS Cloud oder zwischen Kombinationen von Cloud- und lokalen Setups.
Amazon Simple Storage Service (Amazon S3) ist ein cloudbasierter Objektspeicherservice, der Sie beim Speichern, Schützen und Abrufen beliebiger Datenmengen unterstützt.
Andere Tools
Sie können die folgenden Client-Tools verwenden, um eine Verbindung zu Ihren Aurora SQL Postgre-Compatible- und Amazon RDS for SQL Postgre-Datenbanken herzustellen, darauf zuzugreifen und diese zu verwalten. (Diese Tools werden in diesem Muster nicht verwendet.)
pgAdmin
ist ein Open-Source-Verwaltungstool für SQL Postgre. Es bietet eine grafische Oberfläche, mit der Sie Datenbankobjekte erstellen, verwalten und verwenden können. DBeaver
ist ein Open-Source-Datenbanktool für Entwickler und Datenbankadministratoren. Sie können das Tool verwenden, um Ihre Daten zu manipulieren, zu überwachen, zu analysieren, zu verwalten und zu migrieren.
Bewährte Methoden
Bewährte Methoden für die Migration Ihrer Datenbank von Oracle zu Postgre SQL finden Sie im AWS Blogbeitrag Bewährte Methoden für die Migration einer Oracle-Datenbank zu Amazon RDS Postgre SQL oder Amazon Aurora PostgreSQL: Überlegungen zum Migrationsprozess
Bewährte Methoden für die Konfiguration der AWS DMS Aufgabe für die Migration großer binärer Objekte finden Sie in der Dokumentation unter Migration großer binärer Objekte (). LOBs AWS DMS
Epen
Aufgabe | Beschreibung | Erforderliche Fähigkeiten |
---|---|---|
Analysieren Sie die CLOB Daten. | Analysieren Sie die CLOB Daten in der Oracle-Quelldatenbank, um festzustellen, ob sie Spaltenüberschriften enthalten, sodass Sie die Methode zum Laden der Daten in die Zieltabelle festlegen können. Verwenden Sie die folgende Abfrage, um die Eingabedaten zu analysieren.
| Developer |
Laden Sie die CLOB Daten in die Zieldatenbank. | Migrieren Sie die Tabelle mit CLOB Daten in eine Zwischentabelle (Staging) in der Aurora- oder RDS Amazon-Zieldatenbank. Sie können die Daten verwenden AWS DMS oder als CSV Datei in einen Amazon S3 S3-Bucket hochladen. Informationen zur Verwendung AWS DMS für diese Aufgabe finden Sie in der AWS DMS Dokumentation unter Verwenden einer Oracle-Datenbank als Quelle und Verwenden einer SQL Postgre-Datenbank als Ziel. Informationen zur Verwendung von Amazon S3 für diese Aufgabe finden Sie in der AWS DMS Dokumentation unter Amazon S3 als Ziel verwenden. | Migrationsingenieur, DBA |
Validieren Sie die SQL Postgre-Zieltabelle. | Validieren Sie die Zieldaten, einschließlich der Header, anhand der Quelldaten, indem Sie die folgenden Abfragen in der Zieldatenbank verwenden.
Vergleichen Sie die Ergebnisse mit den Abfrageergebnissen aus der Quelldatenbank (ab dem ersten Schritt). | Developer |
Teilen Sie die CLOB Daten in separate Zeilen auf. | Führen Sie den benutzerdefinierten SQL Postgre-Code aus, der im Abschnitt Zusätzliche Informationen bereitgestellt wird, um die CLOB Daten aufzuteilen und sie in separate Zeilen in der Postgre-Zieltabelle einzufügen. SQL | Developer |
Aufgabe | Beschreibung | Erforderliche Fähigkeiten |
---|---|---|
Überprüfen Sie die Daten in der Zieltabelle. | Überprüfen Sie die in die Zieltabelle eingefügten Daten mithilfe der folgenden Abfragen.
| Developer |
Zugehörige Ressourcen
CLOBDatentyp
(Oracle-Dokumentation) Datentypen
(SQLPostgre-Dokumentation)
Zusätzliche Informationen
SQLPostgre-Funktion zum Teilen von Daten CLOB
do $$ declare totalstr varchar; str1 varchar; str2 varchar; pos1 integer := 1; pos2 integer ; len integer; begin select rawdata||chr(10) into totalstr from clobdata_pg; len := length(totalstr) ; raise notice 'Total length : %',len; raise notice 'totalstr : %',totalstr; raise notice 'Before while loop'; while pos1 < len loop select position (chr(10) in totalstr) into pos2; raise notice '1st position of new line : %',pos2; str1 := substring (totalstr,pos1,pos2-1); raise notice 'str1 : %',str1; insert into clobdatatarget(data) values (str1); totalstr := substring(totalstr,pos2+1,len); raise notice 'new totalstr :%',totalstr; len := length(totalstr) ; end loop; end $$ LANGUAGE 'plpgsql' ;
Beispiele für Eingabe und Ausgabe
Sie können die folgenden Beispiele verwenden, um den SQL Postgre-Code auszuprobieren, bevor Sie Ihre Daten migrieren.
Erstellen Sie eine Oracle-Datenbank mit drei Eingabezeilen.
CREATE TABLE clobdata_or ( id INTEGER GENERATED ALWAYS AS IDENTITY, rawdata clob ); insert into clobdata_or(rawdata) values (to_clob('test line 1') || chr(10) || to_clob('test line 2') || chr(10) || to_clob('test line 3') || chr(10)); COMMIT; SELECT * FROM clobdata_or;
Dadurch wird die folgende Ausgabe angezeigt.
id | Rohdaten |
1 | Testlinie 1 Testlinie 2 Testlinie 3 |
Laden Sie die Quelldaten zur Verarbeitung in eine SQL Postgre-Staging-Tabelle (clobdata_pg
).
SELECT * FROM clobdata_pg; CREATE TEMP TABLE clobdatatarget (id1 SERIAL,data VARCHAR ); <Run the code in the additional information section.> SELECT * FROM clobdatatarget;
Dadurch wird die folgende Ausgabe angezeigt.
id1 | data |
1 | Testlinie 1 |
2 | Testlinie 2 |
3 | Testlinie 3 |