Python nei Big Data?

7

Python può essere efficacemente implementato nel campo dei big data? Per essere precisi sto costruendo un'app web che analizza dati veramente grandi nel settore della sanità medica, costituito da anamnesi medica e enormi informazioni personali. Ho bisogno di alcuni consigli su come gestire dati molto grandi in Python in modo efficiente e con alte prestazioni. Sono disponibili anche alcuni pacchetti open source in python che hanno prestazioni e efficienza elevate nella gestione dei big data?

Informazioni su utenti e dati: Ogni utente ha circa 3 GB di dati. Gli utenti sono raggruppati in base alla loro cerchia familiare e amica e i dati vengono quindi analizzati per prevedere importanti informazioni e co-relazioni. Attualmente sto parlando di 10.000 utenti e aumenterò rapidamente il numero di utenti.

    
posta Akshay 06.01.2013 - 14:29
fonte

3 risposte

5

Questa è una domanda molto vaga, non esiste una definizione di canon per ciò che costituisce i big data. Da un punto di vista dello sviluppo, l'unica cosa che cambia veramente il modo in cui è necessario gestire i dati è se si dispone di così tanto che non è possibile inserirli tutti in memoria contemporaneamente.

Quanto di un problema dipende in gran parte da ciò che è necessario fare con i dati, per la maggior parte dei lavori è possibile eseguire uno schema a passaggio singolo in cui si carica un blocco di dati, fare tutto il necessario, scaricarlo e vai al successivo.

A volte i problemi possono essere risolti eseguendo un passaggio di organizzazione, prima esaminando i dati organizzandoli in blocchi di dati che devono essere gestiti insieme, quindi esaminando ogni blocco.

Se questa strategia non si adatta al tuo compito, puoi ancora fare un lungo cammino con lo swapping del disco gestito dal sistema operativo, gestire i dati nei blocchi il più lontano possibile, ma se hai bisogno di un piccolo accesso arbitrario qua e là è ancora in corso lavorare.

E ovviamente una strategia sempre eccellente quando si ha a che fare con un sacco di dati è quella di sminuzzarla con l'hardware. Puoi ottenere 64 GB di memoria in blocchi da 16 GB per $ 500, se stai lavorando con così tanti dati è un investimento facilmente giustificabile. Alcuni buoni SSD sono nobili.

Caso specifico:

Gran parte di questo lavoro è sicuramente la riduzione di questi dati da 3 GB a persona. Spesso è un po 'un'arte a sé stante per scoprire cosa può essere buttato via, ma data la quantità che devo presumere di avere una buona quantità di misurazioni di massa, in generale dovresti prima trovare schemi e aggregazioni per quelli dati e quindi utilizzare tali risultati per confrontare le persone tra loro. La maggior parte dei tuoi dati grezzi è rumore, ripetizione o irrilevante, devi ridurli.

Questo processo di riduzione è facilmente adatto per un cluster, dato che puoi semplicemente dare a ogni processo la propria pila di persone.

L'elaborazione successiva è un po 'più complicata, ciò che è ottimale dipende da molti fattori e probabilmente dovrai fare qualche prova ed errore. Se riesci ad adattarlo al lavoro, prova a caricare i dati selezionati di tutte le persone sullo stesso computer e confrontali, fai lo stesso con altri dati su altri computer. Utilizza questi risultati come nuovi set di dati ecc.

    
risposta data 06.01.2013 - 19:38
fonte
3

Dipende da cosa vuoi dalla gestione dei big data. Questo concetto è relativamente vago. Ad esempio, se stai parlando di lavori MapReduce su diverse fonti di dati, potresti essere interessato a usare Hadoop Streaming con la libreria Dumbo . Se parli di analisi statistiche, NumPy e SciPy (come menzionato da Akira71) sono interessanti, così come panda (un kit di strumenti per l'analisi dei dati). Se vuoi un grafico, guarda matplotlib .

Tuttavia, se stai parlando dello storage e dell'interrogazione di big data, Python non è la soluzione migliore. Vorrà qualcosa come l'ecosistema Hadoop per far sì che questo si comporti bene, magari con gli strati in cima per l'interrogazione e la creazione di set di dati intermedi. Un progetto che mi interessa davvero è Spark ; potresti volerlo anche guardare. Sfortunatamente, questo tipo di framework applicativo non gioca con i punti di forza di Python.

    
risposta data 06.01.2013 - 15:38
fonte
2

Python è ampiamente utilizzato nel campo dei big data. Ci sono un paio di pacchetti che tendono ad essere usati un bel po 'e sono probabilmente la ragione principale per cui Python ha fatto irruzioni così profondamente nei big data:

  • NumPy - Il pacchetto fondamentale per il calcolo scientifico in Python
  • SciPy - Pacchetto di matematica, scienze e ingegneria

Dato che sono entrambi open source e la popolarità e la facilità di apprendimento Python è praticamente stato catapultato in uso in Academia. Ciò a sua volta ha fatto sì che venisse utilizzato sempre più fuori dal mondo accademico e in aziende più grandi o quando gli studenti si trasferiscono in ruoli di lavoro portano con sé questi pacchetti.

Questi sono pacchetti molto buoni e li ho dilettati con alcuni progetti. Non ho usato Python abbastanza nei progetti Big Data per rispondere alla tua domanda aggiuntiva su come gestire i Big Data in modo efficiente con Python.

    
risposta data 06.01.2013 - 15:09
fonte

Leggi altre domande sui tag