2015-02-17 8 views
18

Ho un bucket su S3 in cui ho una grande quantità di file di testo.Come si fa a cercare nel testo completo un bucket amazon s3?

Voglio cercare del testo all'interno di un file di testo. Contiene solo dati grezzi. E ogni file di testo ha un nome diverso.

Per l'esempio, ho un nome secchio:

abc/myfolder/abac.txt

xyx/myfolder1/axc.txt

& voglio cercare di testo come "I am human" nei file di testo sopra.

Come raggiungere questo obiettivo? È possibile?

+2

Dovresti richiedere tutti i file uno per uno; dopotutto non è un database relazionale. –

+0

se ho 10 file mancanti. allora la mia ricerca sarà abbastanza lenta? –

+0

Sì, la ricerca di un milione di file richiederà del tempo; probabilmente è meglio riconsiderare le tue opzioni. –

risposta

14

L'unico modo per farlo sarà tramite CloudSearch, che può utilizzare S3 come origine. Funziona utilizzando il recupero rapido per costruire un indice. Questo dovrebbe funzionare molto bene, ma controlla attentamente il modello di prezzo per assicurarti che questo non sia troppo costoso per te.

L'alternativa è come ha detto Jack - altrimenti dovresti trasferire i file da S3 a un EC2 e creare un'applicazione di ricerca lì.

12

Dal october 1st, 2015 Amazon offre un altro servizio di ricerca con Elastic Search, più o meno la stessa vena di ricerca cloud è possibile stream data from Amazon S3 buckets.

Funzionerà con una funzione lambda per assicurarsi che tutti i nuovi dati inviati a un bucket S3 attivino una notifica di eventi su questo Lambda e aggiornino l'indice ES.

Tutti i passaggi sono dettagliati in amazon doc con esempio Java e Javascript.

Ad alto livello, l'impostazione per lo streaming di dati ad Amazon ES richiede i seguenti passaggi:

  • Creazione di un secchio di Amazon S3 e un dominio di Amazon ES
  • Creazione di un pacchetto di distribuzione Lambda.
  • Configurazione di una funzione Lambda.
  • Concessione dell'autorizzazione per lo streaming di dati su Amazon ES.
Problemi correlati