Alpine Drupal Camp 2011 - Data migration
-
Upload
marco-moscaritolo -
Category
Technology
-
view
690 -
download
1
description
Transcript of Alpine Drupal Camp 2011 - Data migration
Data MigrationMarco Vito Moscaritolo
Chi sono?
Sviluppatore Drupal dal 2007 Socio fondatore della
Associazione Drupal Italiaed attuale presidente
Consulente freelance e membro di agavee
Contatti@[email protected]
Come procederemo
Parte introduttiva “teorica” sulle procedure di migrazione
I tool che si possono utilizzare (e quando possono essere usati)
Disclaimer Io NON conosco la verità, potrei sbagliarmi! NON esiste un metodo unico e sempre valido per migrare i dati Tutto quello che dirà NON potrà MAI essere usato contro di me Le mie affermazioni si basano sulla mia esperienza, se vi
risulta diversamente non fatevi problemi a contraddirmi, anzi!
Cosa intendiamo per data migration?
...e se i dati crescono o i tempi si stringono (o tipicamente entrambi)?
Risultato?
Forse c'è un modo migliore?
Facciamolo fare Facciamolo fare alle macchine!alle macchine!
Occhio ai
bug!!!!
Occhio ai
bug!!!!
Come procediamo?
Recuperare i dati di partenza Archiviarli in maniera da
essere manipolabili facilmente Normalizzarli/ripulirli
(per quanto possibile) Esporli al sistema di import Importarli
Ottenere i dati di partenza(buona fortuna)
Rendere i dati manipolabili
I dati di partenza...
...devono, DEVONO, essere “puliti”...
...e se non lo sono tocca a noi pulirli.
Esporre i dati da migrare
Attraverso WebService (più o meno complessi) SOAP XML-RPC Feed
Attraverso connessioni dirette al DataBase Dati importati da CSV Provenienti da dump di DB
La teoria è facile, ma in pratica?
Processo di importazione
Procedura iterativa Importo i dati Verifico i dati Se ci sono errori correggo i
dati di partenza Cancello/sostituisco i dati
importati con una nuova importazione
Ripeto e termino l'importazione quando i dati sono importati corettamente
Pulizia dati
Importazione
Verifica dei dati
Importazioneterminata
Dati iniziali
Raccogliere i dati
Punto non standardizzabile, dipende dalle sorgenti a disposizione.
Normalmente CSV o SQL Script (bash/php/perl/...) per
organizzare i dati da importare Utilizzo di PhpMyAdmin,
MySQL workbanch per l'import (anche mysql da CLI)
Esporre i dati
Accesso al DB Metodo consigliato,
meno problemi nella conversione dei dati
Si può ottenere da file CSV o XML esportati da altri strumenti con poco lavoro
Attraverso webservice Il webservice deve
essere accessibile dalla macchina che si occupa dell'importazione
I tempi per la migrazione, a causa della connessione possono essere lunghi
Importazione dei dati
Accesso al DB Utilizzo di migrate Soluzione consigliata
Attraverso CSV Utilizzo di
node_import Utilizzo di feeds
Attraverso webservice Utilizzo di feeds I tempi per la
migrazione, a causa della connessione possono essere lunghi
node_import / node_export
Disponibile solo per D6, abbandonato in favore di feeds
Permette di importare contenuti con i corrispettivi campi CCK più semplici
Permette di importare dati precedentemente esportati (comodo per passaggi di versione)
feeds
Configurabile da UI Permette di
importare nodi, utenti, tassonomia
Non gestisce le relazioni tra diversi elementi
Operazioni di importazione schedulabili
feeds
Logica basata su Fetcher: gestisce
l'importazione del dato Parser: il modo in cui
l'informazione viene elaborata
Processor: in modo in cui le informazioni ottenute vengono inserite in Drupal
Migrate(ramo 1.x – unsupported – D6)
Configurabile da UI Dipende da
schema, table wizard, views, views bulk update
Richiede che i dati siano sul DB di Drupal per poter essere mappati
Migrate(ramo 2.x – supported – D6/D7)
NON configurabile da UI
Permette di importare dati da più sorgenti (CSV, SQL, JSON, XML, ...)
Completamente strutturato attraverso oggetti per la migrazione dei dati