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
Strumenti
AWSservizi
Amazon Aurora Postgre SQL -Compatible Edition è un motore di database relazionale completamente gestito e ACID conforme che ti aiuta a configurare, gestire e scalare le distribuzioni Postgre. SQL
Amazon Relational Database Service (RDSAmazon) per SQL Postgre ti aiuta a configurare, gestire e scalare un database relazionale SQL Postgre nel cloud. AWS
AWSDatabase Migration Service (AWSDMS) ti aiuta a migrare gli archivi di dati nel AWS Cloud o tra combinazioni di configurazioni cloud e locali.
Amazon Simple Storage Service (Amazon S3) è un servizio di archiviazione degli oggetti basato sul cloud che consente di archiviare, proteggere e recuperare qualsiasi quantità di dati.
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
Epiche
Attività | Descrizione | Competenze 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.
| 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.
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à | Descrizione | Competenze richieste |
---|---|---|
Convalida i dati nella tabella di destinazione. | Convalida i dati inseriti nella tabella di destinazione utilizzando le seguenti query.
| Developer |
Risorse correlate
CLOBtipo di dati (documentazione
Oracle) tipi di dati
(documentazione Postgree) SQL
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 |