Devo progettare un'applicazione in cui ci sono circa 5K file di testo strutturati di base (file.txt) con dati e formato come di seguito: La chiave primaria è OrgId + ItemId
OgId|^|ItemId|^|segmentId|^|Sequence|^|Action|!|
4295877341|^|136|^|4|^|1|^|I|!|
4295877346|^|136|^|4|^|1|^|I|!|
4295877341|^|138|^|2|^|1|^|I|!|
4295877341|^|141|^|4|^|1|^|I|!|
4295877341|^|143|^|2|^|1|^|I|!|
4295877341|^|145|^|14|^|1|^|I|!|
Ho l'aggiornamento incrementale file1.txt che avrà le stesse informazioni sulla chiave primaria con la colonna aggiornata (il numero di colonne potrebbe differire dal formato del file di base), se le informazioni sulla chiave primaria non vengono trovate nel file di base, vengono trattate come nuove voci .
e.g - La chiave primaria è OrgId + ItemId
Formato 1 per Inserisci -
OgId|^|ItemId|^|segmentId|
5295877341|^|136|^|4|^|1|^|I|!|
5295877341|^|141|^|2|^|1|^|I|!|
Formato 2 per l'aggiornamento -
OgId|^|ItemId|^|segmentId|^|Sequence|
4295877341|^|136|^|5|^|2|
OgId|^|ItemId|^|segmentId
4295877346|^|136|^|2|
Formato 3 per Elimina-
OgId|^|ItemId|^|segmentId|^|Sequence
4295877341|^|145|^|14|^|1|
L'output finale è come questo.
OgId|^|ItemId|^|segmentId|^|Sequence|^|Action|!|
5295877341|^|136|^|4|^|1|^|I|!|
5295877341|^|141|^|2|^|1|^|I|!|
4295877341|^|136|^|5|^|2|^|I|!|
4295877346|^|136|^|2|^|1|^|I|!|
4295877341|^|138|^|2|^|1|^|I|!|
4295877341|^|141|^|4|^|1|^|I|!|
4295877341|^|143|^|2|^|1|^|I|!|
4295877341|^|145|^||^||^|I|!|
Voglio usare AWS o HADOOP / bigdata ma non posso usare Hbase.
Le dimensioni del file di base variano da 5 KB a 50 GB e le dimensioni del file incrementale variano da 10 MB a 2 GB.
C'è un problema, in cui l'inserimento / aggiornamento / eliminazione incrementale dei file deve essere elaborato nello stesso ordine in cui arriva.