2015-08-19 3 views
0

Je suis confronté à un problème étrange avec la ruche, J'ai une table, partitionnée sur la base de dept_key (son entier eg.3212) table est créé comme suitHive supprime toutes les partitions si le nom de la colonne de partition est incorrect

create external table dept_details (dept_key,dept_name,dept_location) PARTITIONED BY (dept_key_partition INT) ROW FORMAT DELIMITED FIELDS TERMINATED BY '~' LOCATION '/dept_details/dept/'; 

maintenant, j'ai quelques partitions déjà ajouté par exemple: 1204,1203,1204 Quand j'ai essayé laisser tomber la partition par erreur tapé uniquement dept_key et non "dept_key_partition" à son tour abandonné toute ma partition requête drop alter table dept_details drop partition (dept_key=12), C'est un problème très étrange auquel je suis confronté. S'il vous plaît laissez-moi savoir ce qui peut être le problème probable. Merci.

+0

Veuillez afficher l'intégralité de l'instruction drop partition que vous avez utilisée. – mattinbits

Répondre

0

De Hive LanguageManual DDL ...

Au Ruche 0,14 (HIVE-8411), les utilisateurs sont en mesure de fournir une spécification de partition partielle pour certains modifier ci-dessus énoncés de colonne, similaire à partitionnement dynamique (...) vous pouvez changer de nombreuses partitions existantes à la fois en utilisant une seule instruction ALTER (...) similaires à partitionnement dynamique, hive.exec.dynamic.partition doit être défini sur true

On dirait que la caractéristique de spécification partielle a été portée sur d'autres commandes comme DROP, TRUNCATE même si elle n'est pas explicite dans la documentation.

En résumé: ce n'est pas un bug, c'est une fonctionnalité.

+0

Mais si vous spécifiez un autre nom de colonne, il ne doit pas supprimer toute la partition, corrigez-moi si je me trompe. J'ai mis la requête de baisse dans la question maintenant. – Mayank

+0

Oui, en effet, si vous n'avez qu'une seule clé de partition et que vous avez spécifié une valeur spécifique pour cette clé, Hive aurait dû supprimer cette partition uniquement. Je n'ai aucune idée de ce qui s'est passé dans votre cas. –