Che cos'è una buona struttura dati per archiviare i risultati intermedi della pipeline di riduzione delle mappe?

0

Penso anche a questa domanda riguardo alla memorizzazione di un gruppo di simmetria. Un rapido promemoria di ciò che è il gruppo di simmetria: un insieme di "cose" (ad esempio, rotazioni di triangolo) e un'operazione binaria (diciamo composizione sequenziale), tale che applicando l'operazione a due "cose" si produce un'altra "cosa" dello stesso tipo (appartenente allo stesso gruppo).

Ad esempio, quando eseguiamo una tipica operazione di riduzione della mappa di contare le parole in un flusso continuo di dati di testo: abbiamo "finestre", all'interno delle quali sommiamo, quindi aggregiamo (riduciamo) le finestre. Pensa ai modelli Apache Spark / Beam.

Sono interessato a memoizzare i risultati intermedi di questo oleodotto. Voglio non solo conoscere il conteggio per tutto il tempo, ma anche all'interno di ogni ora scorrevole e ogni intervallo di 5 minuti scorrevole.

In definitiva, ho bisogno di mantenere questi dati e interrogarli in modo efficiente.

Visualizzo questo come una condivisione multi-albero lascia e termina con la stessa radice, ma con rami "paralleli" (corrispondenti alle finestre "scorrevoli"):

Lamiamiglioreideaèdimantenereunelencoseparatoperognicombinazionedilivello/turnoordinatainbaseallaposizionedellafinestra.Lamialogicasarebbe:

  • trovaillivellopiùaltoincuiladimensionediunafinestraèinferioreall'intervallodiaggregazionedesiderato;
  • inognielencoassociatoaquestolivello,faiquerydiintervalloperraccoglieredatiaggregatiinprecedenza;
  • scegliilrisultatopiùadatto;
  • senullacorrisponde,passaaglielenchidiquerydilivelloinferioreediintervallodalì.

CiòsiassocerebbebenealmodellodidatidiCassandra,perchéhobisognodiridimensionarlo:D

Ilmioproblemaconquestoapproccio:èdifficiledamantenere.Voglioanche"raccogliere dati" vecchi dati ad alta risoluzione.

Stavo pensando di mantenere tutti gli aggregati nella stessa lista ordinata ed eliminare i dati ad alta risoluzione che sono stati aggregati prima: in modo che ci sia un doppio conteggio - ma voglio che la capacità di guardare ad alta risoluzione e dati a bassa risoluzione allo stesso tempo.

    
posta Dimitry 28.03.2018 - 00:21
fonte

0 risposte

Leggi altre domande sui tag