Migra CLOB i valori Oracle su singole righe in SQL Postgre su AWS - Prontuario AWS

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à.

Migra CLOB i valori Oracle su singole righe in SQL Postgre su AWS

Creato da Sai Krishna Namburu () e Sindhusha Paturu () AWS AWS

Ambiente: PoC o pilota

Fonte: Oracle Database

Target: Aurora Postgre -Compatibile con Amazon for SQL Postgre RDS SQL

Tipo R: Replatform

Carico di lavoro: Oracle; open source

Tecnologie: migrazione; archiviazione e backup; database

AWSservizi: Amazon Aurora; Amazon S3 AWSDMS; Amazon RDS

Riepilogo

Questo modello descrive come suddividere i valori di Oracle character large object (CLOB) in singole righe in Amazon Aurora Postgre SQL -Compatible Edition e Amazon Relational Database Service (Amazon) per Postgre. RDS SQL SQLPostgre non supporta il tipo di dati. CLOB

Le tabelle con partizioni a intervalli sono identificate nel database Oracle di origine e il nome della tabella, il tipo di partizione, l'intervallo della partizione e altri metadati vengono acquisiti e caricati nel database di destinazione. Puoi caricare CLOB dati di dimensioni inferiori a 1 GB nelle tabelle di destinazione come testo utilizzando AWS Database Migration Service (AWSDMS) oppure puoi esportare i dati in CSV formato, caricarli in un bucket Amazon Simple Storage Service (Amazon S3) e migrarli nel database Postgre di destinazione. SQL

Dopo la migrazione, puoi utilizzare il SQL codice Postgre personalizzato fornito con questo modello per dividere i CLOB dati in singole righe in base al nuovo identificatore di carattere di riga (CHR(10)) e compilare la tabella di destinazione. 

Prerequisiti e limitazioni

Prerequisiti

  • Una tabella di database Oracle con partizioni e record a intervalli con un tipo di dati. CLOB

  • Un SQL database compatibile con Aurora Postgre SQL o Amazon RDS for Postgre con una struttura di tabella simile alla tabella di origine (stesse colonne e tipi di dati).

Limitazioni

  • Il CLOB valore non può superare 1 GB.

  • Ogni riga della tabella di destinazione deve avere un nuovo identificatore di carattere di riga.

Versioni del prodotto

  • Oracle 12c

  • Aurora Postgres 11.6

Architettura

Il diagramma seguente mostra una tabella Oracle di origine con CLOB dati e la tabella Postgre equivalente SQL nella versione 11.6 compatibile con Aurora Postgre. SQL

Tabella di origine e tabella Postgre di destinazione equivalente. CLOB SQL

Strumenti

AWSservizi

Altri strumenti

Puoi utilizzare i seguenti strumenti client per connetterti, accedere e gestire i tuoi database Aurora Postgre -Compatible SQL e Amazon for Postgre. RDS SQL (Questi strumenti non vengono utilizzati all'interno di questo schema).

  • pgAdminè uno strumento di gestione open source per SQL Postgre. Fornisce un'interfaccia grafica che consente di creare, gestire e utilizzare oggetti di database.

  • DBeaverè uno strumento di database open source per sviluppatori e amministratori di database. È possibile utilizzare lo strumento per manipolare, monitorare, analizzare, amministrare e migrare i dati.

Best practice

Per le best practice per la migrazione del database da Oracle a PostgreSQL, consulta il post AWS sul blog Best practice per la migrazione di un database Oracle ad Amazon RDS Postgre SQL o Amazon SQL Aurora Postgre: considerazioni sul processo di migrazione e sull'infrastruttura.

Per le migliori pratiche per configurare l'AWSDMSattività di migrazione di oggetti binari di grandi dimensioni, consulta Migrazione di oggetti binari di grandi dimensioni () nella documentazione. LOBs AWS DMS

Epiche

AttivitàDescrizioneCompetenze richieste

Analizza i CLOB dati.

Nel database Oracle di origine, analizza i CLOB dati per vedere se contengono intestazioni di colonna, in modo da poter determinare il metodo di caricamento dei dati nella tabella di destinazione. 

Per analizzare i dati di input, utilizzare la seguente query.

SELECT * FROM clobdata_or;  

Developer

Carica i CLOB dati nel database di destinazione.

Esegui la migrazione della tabella contenente CLOB i dati in una tabella provvisoria (staging) nel database di destinazione Aurora o Amazon. RDS Puoi utilizzare AWS DMS o caricare i dati come CSV file in un bucket Amazon S3.

Per informazioni sull'utilizzo AWS DMS per questa attività, consulta Utilizzo di un database Oracle come origine e Utilizzo di un SQL database Postgre come destinazione nella documentazione. AWS DMS

Per informazioni sull'utilizzo di Amazon S3 per questa attività, consulta Using Amazon S3 come target nella documentazione. AWS DMS

Ingegnere della migrazione, DBA

Convalida la tabella SQL Postgre di destinazione.

Convalida i dati di destinazione, incluse le intestazioni, rispetto ai dati di origine utilizzando le seguenti query nel database di destinazione.

SELECT * FROM clobdata_pg; SELECT * FROM clobdatatarget;

Confronta i risultati con i risultati delle query del database di origine (dal primo passaggio).

Developer

Dividi i CLOB dati in righe separate.

Esegui il SQL codice Postgre personalizzato fornito nella sezione Informazioni aggiuntive per dividere i CLOB dati e inserirli in righe separate nella tabella SQL Postgre di destinazione.

Developer
AttivitàDescrizioneCompetenze richieste

Convalida i dati nella tabella di destinazione.

Convalida i dati inseriti nella tabella di destinazione utilizzando le seguenti query.

SELECT * FROM clobdata_pg; SELECT * FROM clobdatatarget;
Developer

Risorse correlate

Informazioni aggiuntive

Funzione Postgre SQL per la suddivisione dei dati 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' ;

Esempi di input e output

Puoi usare i seguenti esempi per provare il SQL codice Postgre prima di migrare i tuoi dati.

Crea un database Oracle con tre righe di input.

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;

Viene visualizzato il seguente output.

id

dati grezzi

1

linea di test 1 linea di test 2 linea di test 3

Carica i dati di origine in una tabella intermedia di SQL Postgre (clobdata_pg) per l'elaborazione.

SELECT * FROM clobdata_pg; CREATE TEMP TABLE clobdatatarget (id1 SERIAL,data VARCHAR ); <Run the code in the additional information section.> SELECT * FROM clobdatatarget;

Questo mostra il seguente output.

id1

dati

1

linea di test 1

2

linea di test 2

3

linea di test 3