Job Scheduling, stored procedure

5

Sto lavorando a un progetto di app Web poliglotta con funzionalità che possono essere separate, ma che si basano l'una sull'altra. Non ho familiarità con quanto segue (quali parole chiave per cercare, quali concetti sono in gioco):

Ho alcune fonti diverse di dati disparati che vengono creati / inglobati separatamente in un archivio dati. i dati necessari per supportare l'effettiva app Web richiedono la pulizia e la cura dei diversi tipi di dati.

Come esempio concreto, forse hai un grande archivio di libri / articoli e un archivio dati utente. Si desidera curare e inviare dati da entrambi in un archivio grafico a fini di raccomandazione e una versione abbinata del book store per servire effettivamente l'app Web e la funzionalità di ricerca.

Di solito come andate su questo? Non sono i dati che cambiano velocemente, quindi non penserei che sia necessario un sistema reattivo completo basato sugli eventi. Il concetto di pianificare in qualche modo i lavori in un determinato periodo?

    
posta Ar415 24.12.2015 - 11:51
fonte

2 risposte

4

Un concetto / termine di ricerca chiave potrebbe essere ETL (Estrai, trasforma, carica) . Questa è una formalizzazione del processo che descrivi: raccogli i dati da tutto il luogo, puliscili e consegnali. Sei fortunato, ci sono sia un numero di strumenti esistenti che potresti essere in grado di utilizzare, sia molti scritti sull'argomento.

Sono più familiare con Pentaho (Kettle, in realtà). Non prendere questo come una raccomandazione, ma più come un esempio di ciò che può essere fatto ...

Con Kettle, estraggo molti dati da molte fonti: file, database e persino servizi web. Se la tua origine dati non è supportata immediatamente, è probabile che tu trovi un plug-in che funziona. Quindi, trasformo i dati in una forma appropriata, li pulisco e li rilascia da qualche altra parte. Di nuovo, se la tua destinazione non è supportata immediatamente, è probabile che tu possa trovare un plugin per aiutarti. (In realtà, scrivere il proprio plugin non è insormontabile.) Meglio di tutto, posso programmare tutti questi processi in qualsiasi modo idiosincratico che ritengo appropriato.

Assicurati di valutare una serie di strumenti per decidere cosa funziona meglio per il tuo team.

Per quanto riguarda le migliori pratiche, c'è molto scritto, ma la maggior parte è specifica per la tecnologia. I database dei grandi fornitori hanno il loro approccio. Gli strumenti open source hanno il loro approccio. Non menzioni la tecnologia che stai utilizzando, ma probabilmente troverai maggiori dettagli cercando l'ETL come correlato a quella tecnologia. Generalmente, i consigli sulle migliori pratiche tendono ad essere una sorta di ovvio: conosci le tue esigenze, la registrazione, quel genere di cose. Forse domande post secondarie mentre scopri i dettagli.

    
risposta data 24.12.2015 - 16:18
fonte
1

Per rispondere alla mia stessa domanda su quello che ho finito con, e al mio giudizio l'approccio migliore: Streams! Sebbene si tratti di un caso d'uso molto meno discusso (di solito si sente solo di consumare dati veloci), i framework steam sono un ottimo modo per ragionare e un modo semplice per costruire pipeline ETL. Costruisco nell'ecosistema Scala / Java. Akka Streams (per un take di basso livello) e Apache Flink sono ottimi strumenti per questo.

    
risposta data 13.08.2016 - 01:27
fonte