2016-05-26 1 views
1

Comment récupérer des partitions facilement. Voici le scénario:Hive Partition recovery

  1. Have 'n' partitions sur la table externe existante 't'
  2. Table Lâché 't'
  3. Table Recréé 't' // Remarque: même table, mais avec l'exclusion de certaines colonnes
  4. Comment faire pour récupérer les 'n' partitions qui existaient pour la table 't' à l'étape 1?

Je peux modifier manuellement table pour ajouter 'n' partition en écrivant un script. Mais c'est très ennuyeux. Y at-il quelque chose de intégré pour récupérer ces partitions?

Répondre

1

Lorsque les partitions répertoires existent encore dans HDFS, il suffit de lancer cette commande:

MSCK REPAIR TABLE table_name; 

Il ajoute les définitions des partitions au Metastore en fonction de ce qui existe dans le répertoire de la table.

+0

Est-ce que cela fonctionne si nous avons personnalisé Serde? au lieu de natif .. –

+0

Je n'ai pas essayé avec Serde personnalisé, mais je pense que Serdes n'affecte pas cette commande, cela devrait fonctionner correctement! – 54l3d

+0

Oui, vous avez raison, The Serde ne devrait pas avoir de problèmes. Mais d'après ce que mentionne la documentation, les partitions peuvent être récupérées si seulement le format de la partition est 'aaaa-mm-jj'. Vous ne savez pas comment utiliser pour le format de partition personnalisée? Dans mon cas, j'ai quelque chose comme yyyymmdd. –