Design pattern / nomi per il consolidamento dei dati

1

Sono nuovo nella codifica e non so come si chiama ciò che sto cercando di fare, e voglio scoprirlo in modo da poter fare più ricerche e non reinventare la ruota. Ho cercato cose come data consolidation/combine input ma i risultati sono troppo vaghi o se aggiungo il nome di una lingua ottengo librerie irrilevanti (ad esempio javascript: questo o questo )

Quello che sto cercando di fare è consolidare i dati da fonti diverse:  - Ho diverse fonti di dati di cose (diciamo organizzazioni)
 - Sto cercando di consolidare quelle fonti in modo da avere 1 rappresentazione unica di ciascuna cosa  - Le origini potrebbero avere valori diversi per ogni cosa (ad es. sourceA potrebbe avere il nome dell'organizzazione come "My Funny App" e sourceB potrebbe avere "MyFunny")
 - Quindi ho bisogno di un po 'di logica per consolidare i dati (cioè quale fonte mantenere?)

Non sto chiedendo le regole di consolidamento poiché capisco che questo è veramente caso d'uso specifico e parte di esso può essere fatto attraverso normalization (i valori normalizzati hanno maggiori probabilità di combaciare, meno conflitti tuttavia, penso che chiunque svolga questo tipo di lavoro dovrebbe eseguire alcune attività comuni :

ASSEGNAZIONE DEI VALORI:
 - aggiungi valori mancanti
 - per valori in conflitto / esistenti, provare a risolvere
 - risolvere in base ad alcuni criteri che definiscono un punteggio per ciascun valore
 - scegli il valore con il punteggio più alto

Debug:
 - Tieni traccia di tutti i valori (originale / normalizzato) e le loro fonti / punteggi
 - avere log che mostra come ogni cosa viene modificata mentre passa attraverso ciascuna fonte

Ciò che sto cercando di fare ha un nome specifico? I loro modelli di progettazione sono in grado di farlo in modo più efficiente?

    
posta Panda Coder 29.05.2018 - 14:46
fonte

2 risposte

1

Il consolidamento dei dati descritto nella domanda può essere gestito su larga scala utilizzando i dati semantici web / collegati e la relativa tecnologia degli archivi RDF.

L'idea principale è di aggiungere dati originali con tutti i metadati desiderati da tutte le fonti a un grafico RDF (o più grafici) " dati lago ". Successivamente, i dati distillati ("output") possono essere materializzati nello stesso grafico utilizzando il motore di regole e / o il motore di inferenza, ontologie fornite per le origini dati e i dati di output desiderati (ciò è necessario in ogni caso in un modo o nell'altro se le fonti sono disparate). In alternativa, può essere calcolato al volo dai dati originali, tramite query (dipende da un caso più specifico).

Tutti i casi citati (valori mancanti, valori in conflitto, traccia di tutti i valori, ecc.) sono trattati in questo modo per eseguire ETL (estrazione, trasferimento, caricamento).

Una virtù della tecnologia semantica è che utilizza l'ipotesi dell'Open World e "chiunque può dire qualcosa su qualsiasi cosa" (principio AAA). Ciò significa che la tecnologia può essere molto flessibile nel risolvere i conflitti utilizzando le informazioni sulla provenienza o alcuni punteggi e regole menzionati nella domanda.

Alcune brevi spiegazioni possono essere trovate ad esempio in queste diapositive di David Booth, Ph.D.

Un altro termine (oltre a Data Consolidation ed ETL) per ciò che cerchi (tecnologicamente) è Enterprise Information Integration: ha sfide simili.

La domanda non specifica cosa significa "efficientemente". Che si tratti della velocità del processo o dell'efficienza nell'allineare le origini dati. La tecnologia semantica può essere migliore dal lato dell'allineamento, sebbene i moderni archivi RDF e database di grafici siano abbastanza efficienti e capaci.

Si prega di notare che questa è solo una possibile tecnologia. La scelta della tecnologia può essere influenzata da molte sfumature, non l'ultima delle quali è ciò a cui il team di sviluppo ha più familiarità.

    
risposta data 29.05.2018 - 16:06
fonte
-1

Finora ho capito, hai bisogno di un livello di astrazione .

Questa astrazione è una rappresentazione unica di ogni cosa .

Quindi per ogni fonte , avrai bisogno di una concretizzazione di questa astrazione.

In questo modo sarai in grado di raggruppare diversi dati con lo stesso comportamento e trattarli tutti nello stesso modo.

Se hai bisogno di una risposta più concreta, ti preghiamo di fornire più contesto per il tuo problema.

    
risposta data 29.05.2018 - 17:39
fonte

Leggi altre domande sui tag