Cette rubrique explique comment utiliser Hive sur un cluster E-MapReduce (EMR) pour traiter les données stockées dans OSS-HDFS.
Prérequis
Vous avez créé un cluster EMR V3.42.0 ou version ultérieure, ou EMR V5.8.0 ou version ultérieure, en sélectionnant le service Hive. Pour plus d'informations, consultez la section Créer un cluster.
OSS-HDFS est activé sur un bucket et les autorisations d'accès à OSS-HDFS sont configurées. Pour savoir comment activer OSS-HDFS, consultez la section Activer OSS-HDFS et accorder des autorisations d'accès.
Procédure
-
Exécutez la commande suivante dans le terminal pour vous connecter à Hive.
Pour connaître les autres méthodes de connexion, consultez la section Méthodes de connexion à Hive.
hive -
Exécutez la commande suivante dans le terminal pour vous connecter à Hive.
Pour connaître les autres méthodes de connexion, consultez la section Méthodes de connexion à Hive.
hive -
Ajoutez des partitions à une table existante.
L'ajout de partitions à une table existante permet de stocker ses données dans des unités plus petites. Vous pouvez spécifier des conditions de requête basées sur ces partitions. Ainsi, seules les partitions répondant aux conditions spécifiées sont analysées, ce qui améliore les performances des requêtes.
-
Syntaxe de la commande
ALTER TABLE <table_name> ADD [IF NOT EXISTS] PARTITION <pt_spec> [PARTITION <pt_spec> PARTITION <pt_spec>...] LOCATION 'location';Le tableau suivant décrit les paramètres de la commande ci-dessus.
Paramètre
Obligatoire
Description
table_name
Oui
Nom de la table à laquelle vous souhaitez ajouter des partitions.
IF NOT EXISTS
Non
Ce paramètre permet d'ignorer l'erreur si la table contient déjà une partition portant le même nom. Si le paramètre IF NOT EXISTS n'est pas spécifié et qu'une partition du même nom que celle que vous souhaitez ajouter existe déjà, l'opération échoue et une erreur est renvoyée.
pt_spec
Oui
Partitions à ajouter. La valeur de ce paramètre suit le format
(partition_col1 = partition_col_value1, partition_col2 = partition_col_value2, ...). Dans ce format,partition_colreprésente les noms des colonnes de clé de partition, etpartition_col_valueleurs valeurs. Les noms des colonnes de clé de partition ne sont pas sensibles à la casse, tandis que leurs valeurs le sont.location
Oui
Chemin OSS utilisé pour stocker les données d'une partition.
-
Exemples
L'exemple de code suivant montre comment ajouter une partition à une table nommée sale_detail afin de stocker les enregistrements de vente de la région Chine (Hangzhou) pour le mois de décembre 2021, et spécifier le chemin OSS utilisé pour stocker les données de cette partition :
ALTER TABLE sale_detail ADD IF NOT EXISTS PARTITION (sale_date='202112', region='hangzhou') LOCATION 'oss://examplebucket.cn-hangzhou.oss-dls.aliyuncs.com/path/2021/';
-