2010-10-05 10 views
5

C'è un modo per far ritirare i valori a una fase precedente a livello cellulare (livello di riga potrebbe funzionare anche)c'è un modo per far ritirare HBase

ho importato un file con dati errati e ho solo bisogno di tornare a fase precedente.

risposta

2

Mentre non v'è alcun rollback, se sono state apportate altre modifiche al momento e sta memorizzando più di una versione che si potrebbe:

  • Eseguire una scansione sopra la tabella utilizzando setTimeRange (basta specificare un intervallo che i tuoi dati errati si riducono in)

  • Utilizzare i dati dalla scansione per creare timestamp limitato Elimina per tutti i dati non validi.

Naturalmente, se si sta solo la memorizzazione di una versione, sei fuori di fortuna:/

2

Non ci sono modi per ripristinare un Put in HBase. Tuttavia, HBase può memorizzare più versioni di qualsiasi cella, a seconda della configurazione di una famiglia di colonne. Di default memorizza le 3 versioni più recenti di ogni cella. Quando viene effettuato un nuovo Put, puoi specificare il timestamp in cui è scritto, altrimenti usa l'ora del server corrente.

Quindi, se si stanno utilizzando i valori predefiniti e non si è eseguito più di 1 o 2 posizionamenti su ogni cella, si dovrebbe essere in grado di leggere i dati precedenti eseguendo un Scan.setTimeStamp (timestampBeforeYouImportedBadData).

Problemi correlati