Vidéo: Formation Big Data avec Apache Spark: Initiation | L’écosystème du Big Data 2024
Hive est une couche de stockage de données orientée par lots, basée sur les éléments de base de Hadoop (HDFS et MapReduce) et est très utile dans les grandes données. Il fournit aux utilisateurs qui connaissent SQL une implémentation SQL-Lite simple appelée HiveQL sans sacrifier l'accès via des mappeurs et des réducteurs. Avec Hive, vous pouvez obtenir le meilleur des deux mondes: un accès de type SQL à des données structurées et une analyse sophistiquée de Big Data avec MapReduce.
Contrairement à la plupart des entrepôts de données, Hive n'est pas conçu pour répondre rapidement aux requêtes. En fait, les requêtes peuvent prendre plusieurs minutes ou même plusieurs heures selon la complexité. En conséquence, Hive est mieux utilisé pour l'exploration de données et des analyses plus approfondies qui ne nécessitent pas de comportements en temps réel. Parce qu'il repose sur la fondation Hadoop, il est très extensible, évolutif et résilient, ce qui n'est pas le cas de l'entrepôt de données moyen.
Hive utilise trois mécanismes pour l'organisation des données:
-
Tables: Les tables Hive sont les mêmes que les tables RDBMS constituées de lignes et de colonnes. Étant donné que Hive est en couches sur Hadoop HDFS, les tables sont mappées aux répertoires du système de fichiers. En outre, Hive prend en charge les tables stockées dans d'autres systèmes de fichiers natifs.
-
Partitions: Une table Hive peut prendre en charge une ou plusieurs partitions. Ces partitions sont mappées aux sous-répertoires du système de fichiers sous-jacent et représentent la distribution des données dans la table. Par exemple, si une table est appelée autos, avec une valeur de clé 12345 et une valeur de fabricant Ford, le chemin de la partition sera / hivewh / autos / kv = 12345 / Ford.
-
Godets: À leur tour, les données peuvent être divisées en godets. Les buckets sont stockés en tant que fichiers dans le répertoire de partition du système de fichiers sous-jacent. Les compartiments sont basés sur le hachage d'une colonne dans la table. Dans l'exemple précédent, vous pourriez avoir un seau appelé Focus, contenant tous les attributs d'une voiture Ford Focus.
Les métadonnées Hive sont stockées en externe dans le métastore. "Le métastore est une base de données relationnelle contenant les descriptions détaillées du schéma Hive, y compris les types de colonnes, les propriétaires, les données de clé et de valeur, les statistiques de table, etc. Le métastore est capable de synchroniser les données de catalogue avec d'autres services de métadonnées de l'écosystème Hadoop.
Hive prend en charge un langage de type SQL appelé HiveQL. HiveQL prend en charge de nombreuses primitives SQL, telles que select, join, aggregate, union all, etc. Il prend également en charge les requêtes et les insertions multitables en partageant les données d'entrée dans une seule instruction HiveQL. HiveQL peut être étendu pour prendre en charge l'agrégation définie par l'utilisateur, la transformation de colonne et les scripts MapReduce incorporés.