AccueilđŸ‡«đŸ‡·Chercher

Apache Hive

Apache Hive est une infrastructure d’entrepĂŽt de donnĂ©es intĂ©grĂ©e sur Hadoop permettant l'analyse, le requĂȘtage via un langage proche syntaxiquement de SQL ainsi que la synthĂšse de donnĂ©es[3]. Bien que initialement dĂ©veloppĂ©e par Facebook, Apache Hive est maintenant utilisĂ©e et dĂ©veloppĂ©e par d'autres sociĂ©tĂ©s comme Netflix[4] - [5]. Amazon maintient un fork d'Apache Hive qui inclut Amazon Elastic MapReduce dans Amazon Web Services[6].

Apache Hive
Description de l'image Apache Hive logo.svg.

Fonctionnalité

Apache Hive prend en charge l'analyse des grands ensembles de donnĂ©es stockĂ©es dans Hadoop HDFS ou des systĂšmes de fichiers compatibles tels que Amazon S3. Il fournit un langage similaire Ă  SQL appelĂ©e HiveQL[7] avec le schĂ©ma lors de la lecture et de maniĂšre transparente convertit les requĂȘtes en map/reduce, Apache Tez[8] et jobs Spark. Tous les trois moteurs d'exĂ©cution peuvent fonctionner sur Hadoop YARN. Pour accĂ©lĂ©rer les requĂȘtes, il fournit des index, y compris bitmap indexes[9].

Par dĂ©faut, Hive stocke les mĂ©tadonnĂ©es dans une base de donnĂ©es embarquĂ©e Apache Derby, et d'autres bases de donnĂ©es client / serveur comme MySQL peuvent Ă©ventuellement ĂȘtre utilisĂ©es[10].

Actuellement, il y a quatre formats de fichiers pris en charge par Hive: TEXTFILE[11], SEQUENCEFILE, ORC[12] et RCFile[13] - [14] - [15]. Les fichiers Apache Parquet peuvent ĂȘtre lus via plugin dans les versions ultĂ©rieures Ă  0.10 et nativement Ă  partir de 0.13[16] - [17].

Autres caractéristiques de Hive :

  • Indexation pour fournir une accĂ©lĂ©ration, type d'index dont le compactage et l'indice de Bitmap que de 0,10, plusieurs types d'index sont prĂ©vus ;
  • types de stockage diffĂ©rents tels que texte brut, RCFile, HBase, ORC et d'autres ;
  • stockage des mĂ©tadonnĂ©es d'un SGBD relationnel, rĂ©duisant considĂ©rablement le temps d'effectuer certaines vĂ©rifications durant l'exĂ©cution de la requĂȘte ;
  • fonctionnement sur des donnĂ©es compressĂ©es stockĂ©es dans l'Ă©cosystĂšme de Hadoop Ă  l'aide d'algorithmes tels que DEFLATE, BWT, snappy, etc ;
  • fonctions intĂ©grĂ©es dĂ©finies par l'utilisateur (UDF) pour manipuler des dates, chaĂźnes et autres outils d'exploration de donnĂ©es. Hive supporte l'extension d'UDF pour traiter des cas d'utilisation non soutenus par des fonctions intĂ©grĂ©es ;
  • requĂȘtes de type SQL (HiveQL) qui sont implicitement converties en sĂ©quence d'instructions MapReduce ou Tez, ou des jobs Spark.

Architecture

Hive est composé des éléments suivants :

  • metastore : est chargĂ© du stockage des mĂ©tadonnĂ©es pour chaque table c'est-Ă -dire qu'il enregistre par exemple les schĂ©mas ainsi que les localisations. Il inclut aussi des mĂ©tadonnĂ©es de partitionnement afin d'aider le driver Ă  suivre la distribution des bases de donnĂ©es au sein du cluster. En pratique, les donnĂ©es sont stockĂ©es Ă  la maniĂšre d'un SGBD relationnel traditionnel ;
  • driver : joue le rĂŽle du contrĂŽleur de processus recevant les instances HiveQL. Il lance l'exĂ©cution des instructions par l'intermĂ©diaire de la crĂ©ation de sessions et il contrĂŽle la progression de l'exĂ©cution ainsi que le cycle de vie des processus. Il conserve les mĂ©tadonnĂ©es nĂ©cessaires gĂ©nĂ©rĂ©es durant l'exĂ©cution des requĂȘtes HiveQL. Le driver joue aussi le rĂŽle de collecteur de donnĂ©es rĂ©sultant des Ă©tapes Reduce ;
  • compiler : rĂ©alise la compilation des requĂȘtes HiveQL ;
  • optimizer : rĂ©alise diffĂ©rentes transformations sur le plan d'exĂ©cution pour obtenir un DAG optimisĂ© ;
  • executor : aprĂšs les phases de compilation et de d'optimisation, il exĂ©cute les tĂąches fournies par le DAG ;
  • cLI, UI et Thrift Server : permettent Ă  un utilisateur externe d’interagir avec Hive en soumettant des requĂȘtes.

HiveQL

Bien que basĂ© sur SQL, HiveQL ne suit pas Ă  la lettre la norme SQL. HiveQL fournit des extensions hors SQL, par exemple des insertions multi-tables, et seulement une offre basique pour l'indexation. Aussi, HiveQL manque de support pour les transactions et les vues matĂ©rialisĂ©es, et seul soutien de sous-requĂȘte limitĂ©e[18] - [19]. Le support pour insert, update et delete avec la fonctionnalitĂ© complĂšte d'ACID a Ă©tĂ© mis Ă  disposition avec la sortie de la version 0.14[20].

En interne, le compilateur traduit les instructions HiveQL en graphe orienté acyclique de MapReduce ou Tez, ou job Spark, qui sont ensuite soumis à Hadoop pour exécution[21].

Notes et références

(en) Cet article est partiellement ou en totalitĂ© issu de l’article de WikipĂ©dia en anglais intitulĂ© « Apache Hive » (voir la liste des auteurs).

Annexes

Voir aussi

Liens externes

Cet article est issu de wikipedia. Text licence: CC BY-SA 4.0, Des conditions supplĂ©mentaires peuvent s’appliquer aux fichiers multimĂ©dias.