18
Sto tentando di rinominare una tabella in HBase ma l'aiuto nella shell non ha un comando rename
. move
, mv
e altri colpevoli comuni non sembrano esserlo.Come si rinomina una tabella in HBase?
Sto tentando di rinominare una tabella in HBase ma l'aiuto nella shell non ha un comando rename
. move
, mv
e altri colpevoli comuni non sembrano esserlo.Come si rinomina una tabella in HBase?
Per rinominare una tabella in HBase, apparentemente è necessario utilizzare le istantanee. Quindi, fai un'istantanea del tavolo e poi clonalo come un nome diverso.
Nella shell HBase:
disable 'tableName'
snapshot 'tableName', 'tableSnapshot'
clone_snapshot 'tableSnapshot', 'newTableName'
delete_snapshot 'tableSnapshot'
drop 'tableName'
SOURCE
Posso cadere la tabella di origine dopo l'assunzione di snapshot e prima di clonare snapshot per nuova tabella? Sembra funzionare. O i loro rischi sono collegati ad esso? –
Nessun rischio che io conosca. L'istantanea e la tabella sono solo indicatori dei dati, motivo per cui l'istantanea è quasi istantanea. Inoltre, si dovrebbe notare che se si desidera che i dati vengano riorganizzati sul disco (HBase per eseguire il più buono possibile), è necessario eliminare l'istantanea quando si è fatto con esso. – WattsInABox
Questo metodo funziona bene. Sei curioso di sapere se hai mai provato questo metodo su un tavolo molto grande? Dovrò rinominare una grande tabella HBase e non voglio che il tempo di 'disable' sia molto lungo per la vecchia tabella poiché la nostra pipeline di produzione continuerà a leggere la vecchia tabella prima di passare completamente al nuovo nome della tabella. Grazie! – yuan0122