Rolling Window Analysis - Referencing Data

0

Ho un progetto che utilizza una finestra mobile per contare gli eventi dei file XML in entrata e le regole basate sui valori della finestra. Ad esempio se 10 eventi di X si verificano in un'ora - attiva un avviso.

Ora sono emersi ulteriori requisiti in cui è necessario individuare i dati che hanno causato l'attivazione dell'allarme, ad es. Quali 10 documenti / record XML hanno causato l'avviso.

Quale sarebbe il modo più efficace per:

  1. Archivia i documenti XML in un DB (Oracle XML era troppo lento). Essi è necessario essere in un DB in modo da poter eseguire query generali sul DB.
  2. Documenti XML di riferimento rispetto a finestre specifiche (ad es. XML documento 1 finestra aggiornata

Ho tentato di archiviare il dump XML in una tabella con una chiave primaria e un'altra tabella che ha una relazione molti-molti tra l'XML e le finestre scorrevoli che cambia.

Penso che forse una soluzione HADOOP sarebbe più scalabile e più veloce? Quali sono le altre opzioni? In termini di requisiti che sto cercando:

  1. semplicità di design
  2. accessibilità tale che gli utenti possono interrogare i documenti XML senza bisogno di un allarme. Gli utenti potrebbero voler trovare tutti i file XML che contengono l'evento X
  3. scalabilità
posta M.Alnashmi 24.10.2016 - 08:25
fonte

1 risposta

1

Estrai i dati primari necessari per la ricerca / query nella propria tabella.

Ad esempio, se gli utenti desiderano effettuare ricerche per tipo di evento e data / ora, inserire tali informazioni in una semplice tabella che sarà veloce da interrogare. Ogni volta che arriva un nuovo file XML, lo elabora e aggiungi righe a questa tabella.

Una volta che hai una semplice tabella di eventi e timestamp, sarà banale calcolare la tua finestra mobile.

È anche possibile scaricare i file XML grezzi nel database nel caso siano necessarie informazioni più dettagliate. La tua semplice tabella può includere un riferimento al file XML originale. Ma se puoi restringere la ricerca prima con una semplice tabella di database ordinaria, sarà molto più efficiente.

I dati XML non elaborati saranno sempre lenti a interrogare. Le query di un gran numero di file XML sono qualcosa che dovrebbe essere evitato se possibile.

Se è necessario essere in grado di eseguire query arbitrarie di dati XML complessi e la struttura e il contenuto delle query non possono essere previsti in anticipo, qualcosa come Hadoop è una buona soluzione. Ciò consente di lanciare un sacco di potenza di elaborazione grezza al problema dell'elaborazione XML e di superare in tal modo la sua inefficienza intrinseca. Ma dalla tua domanda sembra che tu voglia veramente interrogare alcuni dati relativamente semplici; se fosse vero, andrei con una soluzione di database più tradizionale.

    
risposta data 24.10.2016 - 08:44
fonte

Leggi altre domande sui tag