2013-06-12 17 views

risposta

2

Questo perché il DB utilizza chiavi primarie in cluster in modo che la query esegua la ricerca individualmente su ciascuna riga della chiave, riga per agonizzante riga, non da un indice.

  • Corsa optimize table. Ciò garantirà che le pagine di dati siano fisicamente archiviate in ordine. Ciò potrebbe teoricamente accelerare una scansione dell'intervallo su una chiave primaria con cluster.

  • creare un ulteriore indice non primario solo sulla colonna change_event_id . Questo memorizzerà una copia di quella colonna nelle pagine indice che sarà molto più veloce da scansionare. Dopo la creazione di esso, controllare il piano di spiegare a assicurarsi che sta usando il nuovo indice

+1

Qualcosa mi dice che AlexHenderson_v1.00 stava rispondendo alla domanda sbagliata. –

+0

No. Il commento deve essere stato modificato dopo la mia risposta. Qualcosa mi dice che hai sbagliato il mio nome. –

11
select * from table 

Può essere una mappa solo lavoro ma

Select Count(*) from table 

Può essere una mappa e ridurre i posti di lavoro

Spero che questo aiuti.

+1

Ok grazie, puoi spiegarmi come funziona il suo codice? È un modo per ottenere il tempo di esecuzione? Cosa significa MY JOB? – Haris

3

Esistono tre tipi di operazioni che una query hive può eseguire.

In ordine di più economico e veloce a più costoso e più lento qui sono.

Una query hive può essere una richiesta solo per metadati.

Mostra tabelle, descrizione tabella sono esempi. In queste query il processo hive esegue una ricerca nel server metadati. Il server di metadati è un database SQL, probabilmente MySQL, ma il DB attuale è configurabile.

Una richiesta di hive può essere richiesta da hdfs. Selezionare * dalla tabella, sarebbe un esempio. In questo caso l'hive può restituire i risultati eseguendo un'operazione hdfs. hadoop fs -get, più o meno.

Una query hive può essere un lavoro di riduzione mappa.

Hive deve spedire il jar a hdf, il jobtracker mette in coda le attività, il tasktracker esegue le attività, i dati finali vengono inseriti in hdf o spediti al client.

Il processo di riduzione della mappa ha anche diverse possibilità.

Può essere un lavoro solo mappa. Selezionare * dalla tabella dove id> 100, ad esempio tutta la logica può essere applicata sul mapper.

Può essere un lavoro Mappa e Riduci, Selezionare min (id) dalla tabella; Seleziona * dall'ordine di tabella per id;

Può anche portare a più mappe Ridurre passaggi, ma penso che quanto sopra riassume alcuni comportamenti.

Problemi correlati