Trasferire dati da un database all'altro è una delle attività più comuni nella gestione dei dati, che si tratti di consolidare sistemi dopo una fusione, dismettere una piattaforma obsoleta, adottare un unico fornitore di database o migrare un database desktop a un database server. Altova MapForce è uno strumento di migrazione di database che gestisce queste conversioni attraverso un'interfaccia visiva e intuitiva, basata sul trascinamento e sul rilascio, senza la necessità di scrivere manualmente script di migrazione.
MapForce si connette ai database di origine e di destinazione, legge automaticamente entrambi gli schemi e consente di definire le regole di migrazione creando collegamenti tra le tabelle e le colonne di ciascun lato. Poiché l'associazione tra origine e destinazione è definita esplicitamente, non si è limitati a schemi identici: è possibile rinominare le colonne, dividere o combinare i campi, convertire i tipi di dati, filtrare le righe e modificare la struttura di destinazione, il tutto all'interno della stessa operazione di migrazione.
Supportato relazionale database:
Supportato NoSQL Banche dati:
Qualsiasi database supportato può fungere da sorgente, da destinazione, o da entrambi. Ciò significa che lo stesso strumento copre tutte le possibili combinazioni sorgente-destinazione presenti nell'elenco, invece di seguire un singolo percorso di migrazione predefinito.
È facile definire un progetto di migrazione di database utilizzando strumenti di mappatura dei dati visivi e intuitivi, basati sul sistema "trascina e rilascia", in MapForce. È possibile persino iniziare utilizzando Altova AI per ottenere suggerimenti di connessione dopo aver caricato le strutture di origine e destinazione.
1. Connettersi al database di origine. La procedura guidata di connessione al database vi guiderà attraverso il processo. Le connessioni a SQLite sono supportate come connessioni dirette al file del database, senza la necessità di driver aggiuntivi. Altri database possono essere connessi direttamente o tramite interfacce standard, tra cui ODBC, JDBC, ADO e ADO.NET.
2. Connettersi al database di destinazione. MapForce carica lo schema di destinazione nello stesso modo e visualizza le tabelle, le viste e le relazioni disponibili.
3. `Definire le tabelle e le colonne. Trascina le linee di collegamento dalle tabelle di origine a quelle di destinazione, oppure inizia con Altova AI. MapForce riconosce automaticamente le relazioni tra le tabelle, quindi le tabelle correlate mantengono la loro struttura nella mappatura.
4. `Trasformare i dati secondo le necessità. Inserire filtri, condizioni e funzioni di elaborazione dei dati tra la sorgente e la destinazione per convertire i tipi di dati, riformattare i valori, concatenare o dividere i campi e escludere le righe che non si desidera migrare.
5. Anteprima ed esecuzione. Il motore MapForce integrato consente di visualizzare in anteprima gli script SQL (istruzioni SELECT, INSERT, UPDATE e DELETE) nella scheda "Output" prima di eseguirli sul database di destinazione.
Di seguito sono descritte alcune delle attività di migrazione dati più comuni tra diversi sistemi di database. Lo stesso approccio può essere applicato a qualsiasi altra combinazione di database supportati.
Le organizzazioni che migrano da Oracle a PostgreSQL devono trasferire i dati delle tabelle tra due sistemi che utilizzano nomi e tipi di colonne diversi. Utilizzando l'Assistente di connessione al database, MapForce si connette a Oracle tramite JDBC o ODBC e a PostgreSQL tramite una connessione nativa o una connessione basata su driver. Carica entrambi gli schemi nell'area di mappatura, dove è possibile trascinare e rilasciare (o utilizzare Altova AI) per collegare le tabelle di Oracle alle rispettive tabelle di PostgreSQL.
È altrettanto semplice trascinare e rilasciare le funzioni di elaborazione dei dati per convertire i valori tra i tipi di dati di Oracle e PostgreSQL, modificare i formati di data e timestamp e gestire i valori NULL in modo appropriato, in base alle regole dei database coinvolti. Le impostazioni delle chiavi del database consentono di decidere se i valori delle chiavi primarie e secondarie provengono dalla sorgente Oracle o vengono generati da PostgreSQL durante l'inserimento.
La migrazione da MySQL a PostgreSQL è una delle conversioni più comuni per cui MapForce viene utilizzato. Una volta caricate entrambe le strutture del database, MapForce interpreta ogni schema, visualizza le tabelle e le viste disponibili e riconosce le relazioni tra di esse. Per completare la migrazione, è sufficiente trascinare delle linee di collegamento tra le strutture di origine e di destinazione e aggiungere funzioni di elaborazione dei dati nei punti in cui i tipi o le convenzioni di MySQL e PostgreSQL differiscono.
Poiché la mappatura viene salvata come un progetto riutilizzabile, la stessa migrazione da MySQL a PostgreSQL può essere rieseguita ogni volta che i dati di origine cambiano, ad esempio durante una transizione graduale o come un processo di caricamento ricorrente.
I database SQLite vengono spesso utilizzati per l'archiviazione locale o integrata, e in seguito è necessario trasferire i dati a un server MySQL condiviso.
La flessibilità del sistema di tipi di SQLite è l'aspetto principale da considerare in questa migrazione: i valori che SQLite memorizza in modo generico devono essere associati a colonne MySQL con tipi di dati specifici. Le funzioni di elaborazione dati di MapForce eseguono questa conversione all'interno della mappatura, garantendo che i valori con il tipo corretto vengano scritti nel database MySQL di destinazione.
Quando si migra da MSSQL a MySQL, MapForce gestisce le differenze di schema tra i due sistemi come parte del processo di mappatura: la ridenominazione delle colonne, la conversione dei tipi di dati e la formattazione dei valori vengono eseguiti graficamente, anziché tramite script di migrazione. Le azioni sulle tabelle offrono il controllo su come i dati vengono mappati. È possibile scegliere tra INSERT, UPDATE o DELETE per ogni tabella, e definire quali colonne MapForce utilizza per determinare se una riga di destinazione esiste già.
I database di Access che hanno superato i limiti della versione desktop vengono solitamente migrati a SQL Server. MapForce si connette a Microsoft Access e a SQL Server tramite ADO, carica entrambi gli schemi e consente di mappare le tabelle e le query di Access sulle tabelle di SQL Server.
Access e SQL Server differiscono per quanto riguarda i tipi di dati, la gestione delle chiavi e le regole di denominazione. La visualizzazione della mappatura rende esplicite queste differenze e consente di correggerle una sola volta, nella mappatura stessa, anziché ripetutamente nei dati. Le impostazioni delle chiavi del database determinano se i valori AutoNumber di Access vengono mantenuti o sostituiti dai valori di identità di SQL Server.
La conversione di un file ACCDB in SQLite trasforma un database Access in un formato leggero, basato su file, che può essere eseguito ovunque. MapForce legge il database Access tramite ADO e scrive nel file SQLite tramite una connessione nativa. Come per qualsiasi migrazione con MapForce, gli schemi di origine e destinazione non devono necessariamente corrispondere. È possibile semplificare, rinominare o selezionare solo una parte della struttura di Access durante la conversione in SQLite.
MariaDB e MySQL sono strettamente correlate, ma una migrazione tra i due sistemi richiede comunque di tenere conto dei tipi di dati, delle chiavi e di eventuali differenze nelle definizioni delle colonne. Quando gli schemi sono identici, la migrazione si riduce a una serie di semplici collegamenti; quando invece differiscono, si applicano gli stessi filtri e le stesse funzioni utilizzate in qualsiasi altro processo di migrazione.
MapForce consente anche di migrare i dati da database relazionali a database NoSQL, tra cui MongoDB, CouchDB e Microsoft Azure Cosmos DB. Le righe dei database relazionali e le tabelle correlate vengono mappate in strutture di tipo documento in modo visivo, in modo che uno schema SQL normalizzato possa essere trasformato in documenti come parte del processo di migrazione, anziché in una fase di trasformazione separata.
La maggior parte delle migrazioni di dati reali non si basa su una semplice corrispondenza colonna per colonna. MapForce include una libreria di funzioni di elaborazione dati per confronti logici, calcoli matematici, manipolazione di stringhe e gestione di date e orari, oltre a filtri e condizioni che controllano quali righe raggiungono la destinazione.
Questo significa che è possibile migrare una parte dei dati di origine, unire due colonne di origine in un'unica colonna di destinazione, suddividere una singola colonna di origine in diverse colonne di destinazione, cercare e sostituire valori, oppure applicare regole aziendali durante la migrazione, il tutto all'interno della stessa interfaccia di mappatura visiva.
Impostazioni delle chiavi del database
Le impostazioni delle chiavi di database in MapForce consentono di personalizzare il modo in cui i valori delle chiavi primarie e secondarie vengono aggiunti al database di destinazione durante una migrazione. È possibile fornire i valori delle chiavi direttamente da MapForce, mantenendo gli identificatori utilizzati nel sistema di origine, oppure lasciare che il sistema del database di destinazione gestisca la generazione automatica dei valori.
Definire le azioni sulle tabelle del database
La finestra di dialogo "Azioni sulla tabella del database" controlla come i dati vengono scritti in ciascuna tabella di destinazione. Selezionate l'azione da eseguire (INSERIMENTO, AGGIORNAMENTO, ELIMINAZIONE) e definite le colonne che MapForce utilizza per associare i record di destinazione. Questa finestra di dialogo supporta il confronto dei valori NULL, quindi è possibile configurare una migrazione per confrontare i dati tenendo conto dei valori NULL, in base alle regole del database coinvolto.
Supporto per le stored procedure SQL
MapForce include: supporto per le stored procedure come componenti di input o output, oppure come chiamate di funzioni: forniscono dati di input, eseguono la procedura e associano i dati di output ad altri componenti. Le stored procedure possono essere utilizzate anche per generare valori chiave durante una migrazione.
Registrazione/tracciamento dell'output del database
Tracciamento dell'output del database registra tutte le modifiche apportate da una migrazione durante la sua esecuzione. Quando il tracciamento è attivo, eventi come operazioni di inserimento o aggiornamento nel database, nonché errori, vengono scritti in un file XML che è possibile analizzare in seguito o elaborare ulteriormente. La registrazione dell'output è utile per creare una cronologia di ciò che è stato migrato.
Gestione degli errori nelle transazioni del database
MapForce offre la gestione delle transazioni del database per annullare le modifiche apportate a una parte del database durante una conversione, nel caso in cui si verifichi un errore, e, opzionalmente, continuare con il resto della mappatura. Questo impedisce che un errore parziale lasci il database di destinazione in uno stato inconsistente.
Interrogate direttamente i database
La scheda "Query del database" consente di eseguire query SQL sul database di origine o di destinazione direttamente all'interno di MapForce, grazie a un editor SQL completo. Questo è utile per esaminare i dati di origine prima di progettare la mappatura e per verificare i risultati nel database di destinazione dopo l'esecuzione della migrazione.
Organizzare i componenti di input del database
Per le migrazioni che richiedono dati di input in un ordine specifico, il componente SQL-WHERE/ORDER offre opzioni aggiuntive di ordinamento e filtraggio per i componenti di input del database.
Una volta che una mappatura di migrazione è stata progettata e testata in MapForce, Altova MapForce Server offre funzionalità di automazione ad alte prestazioni, attivabili dalla riga di comando, programmaticamente tramite un'API, oppure come fase di un processo gestito da FlowForce Server, in base a trigger e pianificazioni predefinite.
MapForce Server include funzionalità di elaborazione parallela e multi-threading, inserimento massivo di dati SQL e supporto multipiattaforma, quindi le migrazioni di grandi dimensioni e i caricamenti ripetuti vengono eseguiti più velocemente rispetto a quando vengono eseguiti in modalità interattiva. Per una migrazione graduale in cui le stesse tabelle vengono trasferite ripetutamente fino al passaggio definitivo, questo trasforma una mappatura una tantum in un'operazione ripetibile e programmata.




