Alpine Drupal Camp 2011 - Data migration

Post on 05-Dec-2014

690 views 1 download

description

Alcuni spunti e strumenti utili pre procedere alla migrazione di dati da piattaforme differenti a Drupal

transcript

Data MigrationMarco Vito Moscaritolo

@mavimomarco@agavee.com

Chi sono?

Sviluppatore Drupal dal 2007 Socio fondatore della

Associazione Drupal Italiaed attuale presidente

Consulente freelance e membro di agavee

Contatti@mavimomarco@agavee.com

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

Domande

Grazie per l'attenzione

marco@agavee.com

@mavimo

Marco Vito Moscaritolo