Mise à jour, option SET dans Hive
Je sais il n'y a pas de mise à jour de fichier dans Hadoop, mais dans la Ruche, il est possible avec du sucre syntaxique pour fusionner les nouvelles valeurs avec les anciennes données dans la table, puis de réécrire la table de la fusion de sortie, mais si j'ai des nouvelles valeurs dans une autre table, alors je peut obtenir le même effet en utilisant une jointure externe gauche.
Le problème dans mon cas est que je dois mettre à jour la table par la définition d'une valeur à une colonne avec un certain where
condition. Il est connu que SET
n'est pas pris en charge.
Par exemple, considérons le dessous de la normale requête:
UPDATE temp1
SET location=florida
WHERE id=206;
J'ai essayé de convertir la même dans la Ruche, mais j'ai été coincé dans le lieu de SET
. Si quelqu'un faites le moi savoir, alors il serait d'une grande aide pour moi.
source d'informationauteur Jothi
Vous devez vous connecter pour publier un commentaire.
Vous pouvez avoir plusieurs partitions répertoriées en les séparant par des virgules.
... PARTITION (_partitionColumn_= _partitionValue1_, _partitionColumn_= _partitionValue2_, ...)
. Je n'ai pas fait cela avec plusieurs partitions, un seul à la fois, donc je voudrais vérifier les résultats sur un test/dev env avant de faire toutes les partitions à la fois. J'ai eu d'autres raisons de la limitation de chaqueOVERWRITE
à une seule partition.Cette page https://cwiki.apache.org/confluence/display/Hive/LanguageManual+DML a un peu plus sur elle.
Ce site https://cwiki.apache.org/confluence/display/Hive/LanguageManual, en général, est votre meilleur ami lorsque vous travaillez avec des HiveSQL.
J'ai développé quelque chose d'identique à ce à la migration de certaines données et cela a fonctionné. Je n'ai pas essayé contre les grands ensembles de données, à seulement quelques GO et il a fonctionné parfaitement.
À Noter que Ce sera REMPLACER la partition. Il fera des fichiers précédents aller bye-bye. Créer des copies de sauvegarde et de restauration des scripts et des procédures.
Le
[other Things]
et[other Other Things]
sont le reste des colonnes de la table. Ils ont besoin d'être dans le bon ordre. C'est très important sinon vos données seront corrompues.Espère que cette aide. 🙂
Cela peut être hacky mais il a travaillé pour des choses que j'ai eu à faire au travail.
Comme vous vous en doutez cela casse de vos données dans les partitions, mais si la répartition de la valeur que vous souhaitez régler est proportionnelle à "bon segment de données de tailles" (ce est à vous de la conception), puis vos requêtes sur les données seront mieux optimisés
@Jothi: Pourriez-vous s'il vous plaît poster la requête que vous avez utilisé?