Un modello di dati a livello aziendale è veramente fattibile?

5

Mi sono consultato per un certo numero di aziende Fortune 500 e 100 che hanno fatto un qualche tipo di sforzo nella creazione di un modello di dati "Master" anche al punto che avrebbero tentato di far funzionare tutte le applicazioni con una condivisione database (Immagina i problemi di gestione delle modifiche in quel mondo).

Ho visto le aziende buttare milioni di dollari a questi sforzi e ancora venire a mancare di quello che loro immaginavano (sebbene in molti casi ci fossero alcuni benefici realizzati dallo sforzo).

La mia domanda qui è che qualcuno ha visto implementato un modello di dati master veramente aziendale e utilizzato in modo coerente per qualcosa di più grande di 100 o più tabelle?

Il mio istinto si spinge maggiormente verso un modello SOA basato su messaggi, in cui i singoli componenti sono responsabili di un sottoinsieme di dati e ogni componente che ha bisogno di accedere a tali dati passerebbe attraverso il canale appropriato. Ma anche allora, "l'ideale" e la realtà tendono ad avere una differenza significativa.

    
posta Michael Brown 14.01.2015 - 20:08
fonte

3 risposte

3

Un centinaio di tabelle di database non è tutto, una volta considerate le normali tabelle di dati, tabelle di ricerca, tabelle di collegamento molti-a-molti, OLAP e così via.

Is an enterprise-wide data model truly feasible?

Sarà meglio. In quale altro modo hai intenzione di mantenerlo ed estenderlo?

Invece di pensare a un modello di dati aziendali come a una "grande palla di fango", è più utile pensarlo in termini di sottosistemi o dipartimenti . Ogni sistema di elaborazione dati più grande di una singola applicazione ha più applicazioni e più archivi di dati che parlano tra loro attraverso interfacce ben definite. È possibile acquisire prontamente questa architettura di alto livello con uno schema a blocchi o un diagramma del flusso di dati e disporre di schemi di database per ciascun archivio dati pronto quando è necessario eseguire l'analisi dei sistemi.

    
risposta data 14.01.2015 - 20:45
fonte
2

My instinct leans more toward a message driven/SOA model where individual components were responsible for a subset of data and any component that needs access to that data would go through the appropriate channel.

In realtà abbiamo qualcosa proprio come questo dove lavoro. La nostra azienda offre servizi finanziari, quindi la stragrande maggioranza dei dati che vogliamo mostrare ai clienti si riduce a "per sicurezza X, qual è il valore del campo Y?" Il titolo potrebbe essere costituito da azioni di Google o buoni del Tesoro degli Stati Uniti, e il campo potrebbe essere il prezzo odierna o il massimo di 52 settimane o il tasso di interesse breve o quello che hai.

La maggior parte delle volte che richiede un determinato campo attraverso l'interfaccia standard dell'intera azienda si tradurrà in una chiamata ad un servizio che parla con qualche database. Ogni team di programmatori di backend possiede un sottoinsieme di questi campi, insieme ai servizi e ai database che utilizzano per implementarli. Ognuno di questi team può cambiare completamente la loro implementazione senza intaccare gli altri campi, e i frontend come me non si accorgono nemmeno del cambiamento. In effetti, parte della mia nuova formazione per il noleggio stava reimplementando un piccolo gruppo di campi relativamente semplici. Non ho mai contato, ma sono abbastanza sicuro che abbiamo diverse centinaia se non migliaia di tabelle di database per tutti i dati che supportiamo.

Ma abbiamo alcuni dati che semplicemente non si adattano a questo modello e vengono memorizzati e accessibili in modo diverso. Probabilmente è impossibile che un singolo modello di qualcosa si applichi al 100% delle esigenze di un'azienda, ma puoi sicuramente avvicinarti a quell'ideale.

    
risposta data 14.01.2015 - 21:05
fonte
1

My question here is has anyone seen a truly enterprise-wide master data model implemented and consistently used for anything larger than 100 or so tables?

Tipo di.

Ne ho visto uno implementato che ha definito l'elenco principale di prodotti e configurazioni per l'azienda (~ 5k dipendenti). È stato utilizzato per le vendite, la manutenzione, l'ingegneria. L'effettiva implementazione aveva più di 10 anni quando l'ho incontrata, ed è stata costruita da qualcosa di ancora più vecchio (tornando alla memorizzazione non elettronica, da quello che ho capito). Ed è sempre stata la fonte della verità per tutti i dati sui prodotti e sui clienti in tutta l'azienda.

Is an enterprise-wide data model truly feasible?

"Ma".

Il motivo per cui la cosa era 100+ tavoli è perché è cresciuto con l'azienda. Era un disordine irraggiungibile, fragile, spiacevole. Aveva tutto, dai risultati dei test di tolleranza fisica alle immagini dei prodotti archiviati direttamente nel DB. Hanno finito per aver bisogno di processi di esportazione comunque per seminare database più piccoli per esigenze specifiche.

Quindi intendo ... non lo considererei fattibile a lungo termine.

    
risposta data 14.01.2015 - 20:34
fonte

Leggi altre domande sui tag