Le framework open-source de la principale plateforme du Big Data, Hadoop, se révèle idéal pour le stockage et le traitement de quantités massives de données. Cependant, pour l’extraction de données, cette plateforme se révèle souvent complexe, chronophage et coûteuse. C’est pourquoi, la fondation Apache a développé une nouvelle alternative. Il s’agit de Apache Hive.
Pour rappel, en programmation informatique, un framework désigne un ensemble cohérent de composants logiciels structurels qui sert à créer les fondations ainsi que l’architecture d’un logiciel.
Apache Hive – de quoi s’agit-il ?
Apache Hive est un datawarehouse (entrepôt de données) open source pour Hadoop. Un entrepôt de données fonctionne comme un dépôt central où l’information provient d’une ou de plusieurs sources de données. Il recueille ainsi des données de sources variées et hétérogènes dans le but principal de soutenir l’analyse, le requêtage avec un langage proche syntaxiquement de SQL et faciliter le processus de prise de décision.
Comment fonctionne Apache Hive ?
Apache Hive traduit les programmes rédigés en langage HiveQL (proche de SQL) en une ou plusieurs tâches Java MapReduce, Apache Tez, ou Apache Spark. Il s’agit de trois moteurs d’exécution pouvant être lancés sur Hadoop. Ensuite, Apache Hive organise les données en tableau pour le fichier HDFS (Hadoop Distributed Filed System) afin d’exécuter les tâches sur un cluster pour produire une réponse.
Les tableaux Apache Hive sont similaires à ceux d’une base de données relationnelle, et les unités de données sont organisées de l’unité la plus large à la plus granulaire. Les bases de données sont constituées de tableauxcomposés de partitions, pouvant à nouveau être décomposées en « buckets» .
Les données sont accessibles via HiveQL. Au sein de chaque base de données, les données sont numérotées et chaque tableau correspond à un répertoire HDFS.
Au sein de l’architecture d’Apache Hive, de multiples interfaces sont disponibles comme notamment interface web, CLI, ou encore celles des clients externes. En effet, le serveur « Apache Hive Thrift » permet aux clients distants de soumettre des commandes et des requêtes à Apache Hive en utilisant divers langages de programmation. Le répertoire central d’Apache Hive est un « metastore » contenant toutes les informations.
Le moteur permettant le fonctionnement de Hive est appelé « le pilote ». Il regroupe un compilateur et un optimisateur pour déterminer le meilleur plan d’exécution, ainsi qu’un exécuteur.
Enfin, la sécurité est assurée par Hadoop. Elle repose donc sur Kerberos pour l’authentification mutuelle entre le client et le serveur. Les permissions pour les fichiers nouvellement créés dans Apache Hive sont dictées par HDFS, qui permet l’autorisation par utilisateur, groupe ou autre
Quels sont les intérêts d’utiliser Apache Hive ?
Apache Hive est une solution idéale pour les requêtes et les analyses de données. Elle permet donc d’obtenir des informations qualitatives (« insights ») procurant un avantage compétitif et facilitant la réactivité face à la demande du marché.
Parmi les principaux avantages de Apache Hive, on peut citer la simplicité d’utilisation liée à son langage « SQL-friendly » . En outre, ce logiciel accélère l’insertion initiale de données puisque les données n’ont pas besoin d’être lues ni numérotées sur un disque dans le format interne de la base de données.
Sachant que les données sont stockées dans le HDFS, il est possible de stocker de larges datasets pouvant aller jusqu’à des centaines de petabytes de données sur Apache Hive. De fait, cette solution est bien plus scalable qu’une base de données traditionnelle. Sachant qu’il s’agit d’un service Cloud, Apache Hive permet aux utilisateurs de lancer rapidement des serveurs virtuels en fonction des fluctuations de workloads (soit, des tâches).
La sécurité est également au rendez-vous, avec la possibilité de répliquer les workloads critiques pour la restauration en cas de problème. Enfin, la capacité de travail est hors pair puisqu’il est possible d’effectuer jusqu’à 100 000 requêtes par heure.