Gestire un database può sembrare un po' come giocare a Jenga. Bisogna continuare ad apportare modifiche per rimanere in gioco, ma ogni cambiamento rischia di compromettere l'integrità della struttura se non lo si fa con attenzione.
Ma fortunatamente esistono strumenti e processi in grado di supportare cambiamenti strutturali validi, tenendo tutti al corrente di ciò che sta accadendo in tempo reale.
Che cos'è uno schema e una modifica dello schema?
Per comprendere appieno l'importanza di rilevare le modifiche allo schema, è importante innanzitutto capire la definizione di schema e di modifica dello schema.
Che cos'è uno schema?
Uno schema è una rappresentazione della struttura del database, comprese le tabelle e i campi delle tabelle, nonché le relazioni tra le tabelle e i campi. Include anche le regole che i dati devono seguire in quel database.
Lo schema di un database svolge un ruolo fondamentale nel determinare l'organizzazione e l'accesso ai dati. Uno schema ideale è progettato per garantire che il database sia in grado di supportare le esigenze dell'applicazione o del processo per cui viene utilizzato. E poiché le applicazioni e i processi cambiano spesso, è anche comune dover apportare modifiche allo schema.
Cosa conta come modifica dello schema?
Una modifica allo schema è una qualsiasi modifica alla struttura di un database che influisce sul modo in cui i dati vengono memorizzati o acceduti. Non tutte le modifiche a un database sono modifiche allo schema: la modifica deve avere un impatto sulla struttura del database.
Le vere modifiche allo schema includono:
- Aggiunta di una nuova tabella o rimozione di una esistente.
- Aggiunta di una nuova colonna a una tabella o rimozione di una colonna esistente.
- Modifica del tipo di dati, del nome o dei vincoli di una colonna.
Alcuni esempi di modifiche che non sono considerate modifiche allo schema (perché non modificano la struttura del database) includono:
- Aggiungere o modificare i dati nelle tabelle esistenti (questa operazione è chiamata "manipolazione dei dati").
- Creazione di nuove viste (una query memorizzata sui dati che gli utenti possono interrogare come un oggetto di raccolta persistente del database)
Queste modifiche più piccole, che modificano solo le informazioni all'interno dello schema ma non alterano lo schema stesso, non richiedono lo stesso livello di notifica.
Perché rilevare le modifiche di Schema è importante
Qualsiasi modifica alla struttura di un database può avere effetti a catena sui dati. Pensate alle gambe di sostegno di un tavolo da cucina. Se l'altezza di una gamba viene cambiata anche di poco, le conseguenze saranno evidenti e potrebbero inibire la capacità di quel tavolo da cucina di fare il suo lavoro: essere un luogo stabile dove posare il cibo.
Pertanto, ogni volta che viene apportata una modifica di questo tipo, è necessario rilevarla immediatamente per poterla adeguare.
Mantenere l'integrazione dei dati senza problemi
Quando si portano le informazioni da più fonti in un unico database o data warehouse, può essere necessario rilevare le modifiche allo schema nei sistemi di origine per assicurarsi che il processo di integrazione funzioni correttamente.
Supponiamo che un campo venga aggiunto al sistema di origine. Il processo di integrazione potrebbe richiedere un aggiornamento per includere quel campo nel database di destinazione.
Mantenimento delle prestazioni del database
L'aggiunta o la rimozione di campi o tabelle o la modifica del tipo di dati di un campo possono influire sulle prestazioni del database. L'aggiunta di un nuovo indice a una tabella può migliorare le prestazioni di alcune query, ma può anche rallentare le prestazioni complessive del database se non è progettato e implementato correttamente.
Se la modifica dello schema non è retrocompatibile con le applicazioni o i processi esistenti che utilizzano il database, tali applicazioni o processi potrebbero interrompersi o comportarsi in modo imprevisto.
Governance dei dati
Molte organizzazioni hanno bisogno di tracciare e controllare le modifiche allo schema di un database per mantenere l'integrità e la coerenza dei dati. Rilevando le modifiche allo schema, i team possono verificare se le modifiche sono state documentate e approvate correttamente prima di essere applicate.
Se un campo viene rimosso o il suo tipo di dati viene modificato in modo incompatibile con i dati esistenti, i dati in esso contenuti possono essere persi o danneggiati. E anche una piccola quantità di dati persi o corrotti può avere un impatto sull'integrità complessiva dei dati del database.
Monitoraggio e allerta
Il rilevamento delle modifiche allo schema può essere utile anche per il monitoraggio e gli avvisi. Ad esempio, un team potrebbe creare degli avvisi per notificare alle persone giuste se una modifica dello schema viene effettuata al di fuori di una finestra di modifica predeterminata o da un utente non autorizzato.
Controllo della versione
Tutti i team che utilizzano un sistema di controllo di versione per gestire le modifiche allo schema di un database potrebbero aver bisogno di uno strumento, di una funzione o di un'automazione per il rilevamento delle modifiche allo schema, semplicemente per tenere traccia del lavoro di più sviluppatori. Molti team hanno più persone che apportano modifiche contemporaneamente, quindi tracciare e unire correttamente le modifiche può essere un problema quando gli sviluppatori devono tenere traccia manualmente delle modifiche allo schema.
Come iniziare con il rilevamento delle modifiche di Schema
Supponiamo che un team debba creare una soluzione che acquisisca quotidianamente lo schema di un database controllato da terzi e che avvisi il team se lo schema è cambiato.
Utilizzando SnapLogic Intelligent Integration Platform, questo problema può essere risolto con due pipeline e un'attività pianificata. Una volta che le pipeline sono state realizzate, il sistema funziona in modo autonomo e invia un avviso via e-mail quando rileva una modifica dello schema.
Una cosa da notare: la stragrande maggioranza degli snap utilizzati sono snap principali e la soluzione può essere estesa ad altri endpoint in cui è possibile leggere schemi o metadati.
Poiché in questo articolo non c'è abbastanza spazio per spiegare esattamente come configurarlo, abbiamo realizzato un video del processo dall'inizio alla fine. Seguitelo e iniziate a creare il vostro rilevamento delle modifiche allo schema con SnapLogic Intelligent Integration Platform.
Se volete saperne di più sui nostri strumenti di integrazione dei dati e su come possono supportare i vostri team, scaricate il nostro eBook, Guida dell'acquirente all'integrazione di applicazioni e dati.