Qu'est-ce qu'une ruche?

Apache Hive est un système d'entrepôt de données conçu au-dessus de la plate-forme Hadoop open source et est utilisé pour le résumé des données, l'interrogation de grandes données, l'analyse des données, etc.

La ruche a été développée par Facebook et à une date ultérieure, elle a été reprise par Apache Software Foundation qui l'a ensuite développée en open source sous le nom d'Apache Hive.

Définition:

Ce n'est pas une base de données relationnelle et c'est pourquoi elle ne convient pas au traitement des transactions en ligne et aux requêtes en temps réel avec des mises à jour au niveau des lignes. Hive est conçu pour le traitement analytique en ligne ou OLAP. Il fournit également un langage de requête appelé HiveQL. Il est évolutif, rapide et extensible. Il convertit les requêtes ressemblant presque à SQL en tâches MapReduce pour une exécution et un traitement faciles d'une grande quantité de données. Apache hive est l'un des composants Hadoop qui sont normalement utilisés par les analystes de données tandis qu'apache pig est également utilisé pour la même tâche, mais il est davantage utilisé par les chercheurs et les programmeurs. Apache hive étant un système d'entreposage de données open source est utilisé pour interroger et analyser d'énormes ensembles de données stockés dans le stockage Hadoop. Hive est mieux adapté aux travaux par lots et non aux types de travail de traitement transactionnel en ligne. Il ne prend pas non plus en charge les requêtes en temps réel. Hive utilise SQL comme le langage de requête et est principalement utilisé pour créer des rapports. Hive est généralement déployé côté serveur et prend en charge les données structurées. Hive prend également en charge l'intégration avec les outils JDBC et BI.

Comprendre Hive:

Voici les principaux composants de la ruche:

Meta Store:

Le référentiel qui stocke les métadonnées est appelé le méta-magasin de la ruche. Les métadonnées se composent des différentes données sur les tables comme son emplacement, son schéma, des informations sur les partitions, ce qui permet de surveiller la progression des données réparties de manière variée dans le cluster. Il garde également une trace des données et reproduit les données qui fournit une sauvegarde en cas d'urgence comme la perte de données. Les informations de métadonnées sont présentes dans les bases de données relationnelles et non dans le système de fichiers Hadoop.

Chauffeur:

Lors de l'exécution de l'instruction du langage de requête Hive, le pilote reçoit l'instruction et la contrôle pour le cycle d'exécution complet. Parallèlement à l'exécution de l'instruction, le pilote stocke également les métadonnées générées à partir de l'exécution. Il crée également des sessions pour surveiller la progression et le cycle de vie des différentes exécutions. Après la fin de l'opération de réduction par le travail MapReduce, le pilote collecte toutes les données et les résultats de la requête

Compilateur:

Il est utilisé pour traduire le langage de requête Hive en entrée MapReduce. Il appelle une méthode qui exécute les étapes et les tâches nécessaires pour lire la sortie HiveQL comme requis par MapReduce.

Optimiseur:

La tâche principale de l'optimiseur est d'améliorer l'efficacité et l'évolutivité en créant une tâche tout en transformant les données avant l'opération de réduction. Il effectue également des transformations telles que l'agrégation, la conversion de pipeline par une seule jointure pour plusieurs jointures.

Exécuteur:

Après l'étape de compilation et d'optimisation, la tâche principale de l'exécuteur est d'exécuter les tâches. La tâche principale de l'exécuteur est d'interagir avec le traqueur de travaux Hadoop pour la planification des tâches prêtes à être exécutées.

UI, Thrift server et CLI:

Le serveur Thrift est utilisé par d'autres clients pour interagir avec le moteur Hive. L'interface utilisateur et l'interface de ligne de commande permettent de soumettre les requêtes ainsi que la surveillance des processus et les instructions afin que les utilisateurs externes puissent interagir avec la ruche.

Voici les étapes montrant l'interaction de la ruche avec le framework Hadoop:

Exécution de la requête:

La requête est envoyée au pilote à partir d'interfaces de ruche telles que la ligne de commande ou l'interface utilisateur Web. Un pilote peut être n'importe quel pilote de base de données comme JDB ou ODBC, etc.

Obtenir le plan:

La syntaxe de l'exigence de la requête ou du plan de requête peut être vérifiée à l'aide d'un compilateur de requêtes qui traverse la requête et est invoqué par le pilote.

Obtention des métadonnées:

Le méta-magasin peut résider dans n'importe quelle base de données et le compilateur fait une demande d'accès aux métadonnées.

Envoi des métadonnées:

À la demande du compilateur, le méta-magasin envoie les métadonnées.

Envoi du plan:

Le compilateur envoie le plan au pilote lors de la vérification des exigences envoyées par le compilateur. Cette étape termine l'analyse et la compilation d'une requête.

Exécution du plan:

Le plan d'exécution est envoyé au moteur d'exécution par le pilote.

Exécution du travail:

Une exécution du travail est un travail MapReduce qui s'exécute dans le backend. Ensuite, il suit la convention normale du cadre Hadoop - le moteur d'exécution enverra un travail au traqueur de travaux qui réside sur le nœud de nom et le nœud de nom, à son tour, attribuera le travail au traqueur de tâches qui se trouve dans la note de données. Le travail MapReduce est exécuté ici.

Opérations sur les métadonnées:

Pendant l'exécution du travail, le moteur d'exécution peut exécuter des opérations de métadonnées avec le méta-magasin.

Récupération du résultat:

Les nœuds de données après la fin du traitement transmettent le résultat au moteur d'exécution.

Envoi du résultat

Le pilote reçoit le résultat du moteur d'exécution.

Envoi des résultats:

Enfin, les interfaces Hive reçoivent le résultat du pilote.

Ainsi, par l'exécution des étapes ci-dessus, une exécution de requête complète dans Hive a lieu.

Comment la ruche facilite-t-elle le travail?

Hive est un cadre d'entreposage de données construit au-dessus de Hadoop qui aide l'utilisateur à effectuer l'analyse des données, l'interrogation des données et la synthèse des données sur de grands volumes d'ensembles de données. HiveQL est une fonctionnalité unique qui ressemble aux données SQL stockées dans la base de données et effectue une analyse approfondie. J'étais capable de lire des données à une vitesse très élevée et d'écrire les données dans les entrepôts de données ainsi que de gérer de grands ensembles de données répartis sur plusieurs sites. Parallèlement à cette ruche, elle fournit également une structure aux données stockées dans la base de données et les utilisateurs peuvent se connecter à la ruche à l'aide de l'outil de ligne de commande ou du pilote JDBC.

Meilleures entreprises:

Les grandes organisations travaillant avec le Big Data ont utilisé la ruche - comme Facebook, Amazon, Walmart et bien d'autres.

Que pouvez-vous faire avec Hive?

Il y a beaucoup de fonctionnalités de la ruche comme la requête de données, le résumé des données et l'analyse des données. Hive prend en charge un langage de requête appelé HiveQL ou Hive Query Language. Les requêtes du langage de requête Hive sont traduites en travail MapReduce qui est traité sur le cluster Hadoop. En dehors de cela, Hiveql réduit également le script qui peut être ajouté aux requêtes. De cette façon, HiveQL augmente la flexibilité de conception de schéma qui prend également en charge la désérialisation et la sérialisation des données.

Travailler avec Hive:

Voici quelques détails opérationnels dans Hive. Les types de données Hive sont généralement classés en quatre types, comme indiqué ci-dessous:

  • Types de colonnes
  • Littéraux
  • Valeurs nulles
  • Types complexes

1. Types de colonnes:

Ce sont les types de données de colonne de la ruche. Ceux-ci sont classés comme ci-dessous:

  • Types intégraux : les données entières sont représentées à l'aide du type de données intégré. Le symbole est INT. Toutes les données dépassant la limite supérieure d'INT doivent être affectées au type de données BIGINT. De la même manière, toutes les données inférieures à la limite inférieure de INT doivent être affectées SMALLINT. Il existe un autre type de données appelé TINYINT qui est encore plus petit que SMALLINT.
  • Types de chaîne: le type de données de chaîne est représenté dans la ruche par un guillemet simple (') ou des guillemets doubles (“). Il peut être de deux types - VARCHAR ou CHAR.
  • Horodatage: L' horodatage de la ruche prend en charge le format java.sql.Timestamp "aaaa-mm-jj hh: mm: ss.ffffffffff" et le format "AAAA-MM-JJ HH: MM: SS.fffffffff".
  • Date: La date est représentée dans la ruche au format AAAA-MM-JJ représentant l'année-mois-jour.
  • Décimales : les décimales dans une ruche sont représentées au format décimal Java grand et sont utilisées pour représenter une précision arbitraire immuable. Il est représenté au format Decimal (précision, échelle).
  • Types d'union: l' union est utilisée dans la ruche pour créer une collection d'un type de données hétérogène. Il peut être créé en utilisant create a union.

Voici un exemple:

UNIONTYPE
(0:1)
(1:2.0)
(2:("three", "four"))
(3:("a":5, "b":"five"))
(2:("six", "seven"))
(3:("a":8, "b":"eight"))
(0:9)
(1:10.0)
UNIONTYPE
(0:1)
(1:2.0)
(2:("three", "four"))
(3:("a":5, "b":"five"))
(2:("six", "seven"))
(3:("a":8, "b":"eight"))
(0:9)
(1:10.0)

2. Littéraux:

Il y a peu de littéraux utilisés dans la ruche. Ils sont comme ci-dessous:

  • Type à virgule flottante : Ils sont représentés sous forme de nombres avec un point décimal. Ce sont assez similaires au type de données double.
  • Type décimal : ce type de données contient uniquement des données de type décimal mais avec une plage de valeurs à virgule flottante plus élevée que le type de données double. La plage de type décimal est approximative de -10-308 à 10 308.

3. Valeur nulle:

La valeur spéciale NULL représente les valeurs manquantes dans la ruche.

4. Types complexes:

Voici les différents types complexes trouvés dans la ruche:

  • Tableaux : les tableaux sont représentés dans une ruche sous la même forme que java. La syntaxe est comme ARRAY.
  • Cartes : les cartes sont représentées dans la ruche sous la même forme que java. La syntaxe est comme MAP
  • .
  • Structures : les structures de la ruche sont représentées comme des données complexes avec des commentaires. La syntaxe est comme STRUCT.

Outre tout cela, nous pouvons créer des bases de données, des tables, les partitionner et de nombreuses autres fonctions.

  • Bases de données: Ce sont les espaces de noms contenant une collection de tables. Voici la syntaxe pour créer une base de données dans une ruche.

CREATE DATABASE (IF NOT EXISTS) sampled;

Les bases de données peuvent également être supprimées si elles ne sont plus nécessaires. Voici la syntaxe pour supprimer une base de données.

DROP DATABASE (IF EXISTS) sampled;

  • Tables: elles peuvent également être créées dans la ruche pour stocker des données. Vous trouverez ci-dessous la syntaxe de création d'une table.

CREATE (TEMPORARY) (EXTERNAL) TABLE (IF NOT EXISTS) (db_name.) table_nam
((col_name data_type (COMMENT col_comment), …)) (COMMENT table_comment
(ROW FORMAT row_format) (STORED AS file_format)

Une table peut également être supprimée si elle n'est plus nécessaire. Vous trouverez ci-dessous la syntaxe pour supprimer un tableau.

DROP TABLE (IF EXISTS) table_name;

Les avantages

Le principal avantage d'Apache Hive est l'interrogation, la synthèse et l'analyse des données. Hive est conçu pour une meilleure productivité du développeur et s'accompagne également du coût de l'augmentation de la latence et de la diminution de l'efficacité. Apache Hive fournit une large gamme de fonctions définies par l'utilisateur qui peuvent être liées à d'autres packages Hadoop comme RHipe, Apache Mahout, etc. Il aide les développeurs dans une large mesure lorsqu'ils travaillent avec un traitement analytique complexe et plusieurs formats de données. Il est principalement utilisé pour l'entreposage de données, ce qui signifie un système utilisé pour les rapports et l'analyse des données.

Elle implique le nettoyage, la transformation et la modélisation des données pour fournir des informations utiles sur divers aspects commerciaux qui aideront à produire un avantage pour une organisation. L'analyse des données comprend de nombreux aspects et approches différents qui englobent diverses techniques avec une variété de noms dans différents modèles commerciaux, domaines des sciences sociales, etc. Hive est très convivial et permet aux utilisateurs d'accéder simultanément aux données en augmentant le temps de réponse. Comparé à l'autre type de requêtes sur d'énormes ensembles de données, le temps de réponse de la ruche est beaucoup plus rapide que les autres. Il est également très flexible en termes de performances lors de l'ajout de données et en augmentant le nombre de nœuds dans le cluster.

Pourquoi devrions-nous utiliser la ruche?

Avec l'analyse des données, la ruche offre un large éventail d'options pour stocker les données dans HDFS. Hive prend en charge différents systèmes de fichiers comme un fichier plat ou un fichier texte, un fichier de séquence composé de paires clé-valeur binaires, des fichiers RC qui stockent la colonne d'une table dans une base de données en colonnes. De nos jours, le fichier qui convient le mieux à Hive est connu sous le nom de fichiers ORC ou fichiers de colonnes optimisées.

Pourquoi avons-nous besoin de Hive?

Dans le monde d'aujourd'hui, Hadoop est associé aux technologies les plus répandues utilisées pour le traitement des mégadonnées. La très riche collection d'outils et de technologies utilisés pour l'analyse des données et d'autres traitements de Big Data.

Quelle est la bonne audience pour apprendre les technologies Hive?

La plupart des personnes ayant une expérience en tant que développeurs, analystes Hadoop, administrateurs système, entrepôt de données, SQL professionnel et administration Hadoop peuvent maîtriser la ruche.

Comment cette technologie vous aidera-t-elle à progresser dans votre carrière?

Hive est l'une des compétences les plus en vogue sur le marché de nos jours et c'est l'un des meilleurs outils d'analyse de données dans le monde Hadoop du Big Data. Les grandes entreprises qui effectuent des analyses sur des ensembles de données volumineux sont toujours à la recherche de personnes disposant de droits de compétences, elles peuvent donc gérer et interroger d'énormes volumes de données. Hive est l'un des meilleurs outils disponibles sur le marché des technologies de Big Data ces derniers jours qui peut aider une organisation du monde entier à analyser ses données.

Conclusion:

Outre les fonctions ci-dessus, la ruche a des capacités beaucoup plus avancées. La puissance de hive pour traiter un grand nombre d'ensembles de données avec une grande précision fait de hive l'un des meilleurs outils utilisés pour l'analyse dans la plate-forme Big Data. En outre, il a également un grand potentiel pour devenir l'un des principaux outils d'analyse du Big Data dans les prochains jours en raison de l'amélioration périodique et de la facilité d'utilisation pour l'utilisateur final.

Articles recommandés

Ceci a été un guide sur What is Hive. Ici, nous avons discuté du travail, des compétences, de la croissance de carrière, des avantages de Hive et des meilleures entreprises qui mettent en œuvre cette technologie. Vous pouvez également consulter nos autres articles suggérés pour en savoir plus -

  1. Commandes Hive
  2. Questions d'entretiens chez Hive
  3. Qu'est-ce qu'Azure?
  4. Qu'est-ce que la technologie Big Data?
  5. Architecture de la ruche | Définition
  6. Utilisation de la fonction ORDER BY dans Hive

Catégorie: