Accueil Finances personnelles Joindre Tables avec Hive - des nuls

Joindre Tables avec Hive - des nuls

Vidéo: SQL Inner Join Multiple Tables with SUM Tutorial - SQL 2008/2012/2016/2017 2025

Vidéo: SQL Inner Join Multiple Tables with SUM Tutorial - SQL 2008/2012/2016/2017 2025
Anonim

Vous savez probablement déjà que les experts en modélisation et conception de bases de données relationnelles passent beaucoup de temps à concevoir des bases de données normalisées, . La base de données normalisation est une technique qui protège contre la perte de données, la redondance et d'autres anomalies au fur et à mesure que les données sont mises à jour et récupérées. Les experts suivent un certain nombre de règles pour arriver à une base de données normalisée, mais la règle 1 est que vous devez vous retrouver avec un

groupe de tables. (Une grande table stockant toutes vos données n'est pas normale - jeu de mots.) Il existe des exceptions, selon le cas d'utilisation, mais la loi de nombreuses tables est généralement suivie de près, en particulier pour les bases de données. par exemple).

Lorsque vous commencez à interroger et analyser vos données, les tables sont jointes en fonction des relations définies entre elles en utilisant SQL - ce qui signifie que les disques sont finalement occupés sur votre serveur lorsque vous commencez à joindre des tables. les disques occupés entraînent généralement des temps de réponse de l'utilisateur plus lents. Cependant, la bonne nouvelle est que les SGBDR et les EDW sont réglés pour rendre les jointures aussi rapides que possible.

Qu'est-ce que tout cela a à voir avec les jointures dans Hive? Eh bien, rappelez-vous que le système d'exploitation sous-jacent pour Hive est (surprise!) Apache Hadoop: MapReduce est le moteur pour joindre les tables, et le système de fichiers Hadoop (HDFS) est le stockage sous-jacent. C'est une bonne nouvelle pour l'utilisateur qui veut créer, gérer et analyser de grandes tables avec Hive.

Le potentiel de débloquer des informations cachées dans des structures de données massives est excitant. Cependant, les jointures avec Hive ne fonctionnent généralement pas aussi bien que dans le monde RDBMS / EDW, de sorte que les utilisateurs débutants sont souvent surpris par le «pokiness» de la réponse du système.

Rappelez-vous que MapReduce et HDFS sont optimisés pour le débit avec l'analyse Big Data et que, dans ce monde, latences - les temps de réponse des utilisateurs, en d'autres termes - sont généralement élevés. Hive est conçu pour le traitement analytique par lots, et non pour le traitement rapide des transactions en ligne. Les utilisateurs qui veulent les meilleures performances possibles avec SQL sur Apache Hadoop ont des solutions disponibles.

Gardez cette dynamique à l'esprit lorsque vous commencez à joindre des tables avec Hive. Notez également que les architectes Hive dénormalisent généralement leurs bases de données dans une certaine mesure, de sorte qu'il est courant d'avoir moins de grandes tables. C'est pourquoi des types de données complexes tels que STRUCTs et ARRAY sont fournis. Vous pouvez utiliser ces types de données complexes pour emballer beaucoup plus de données dans une seule table.

Comme la table Hive lit et écrit via HDFS implique généralement de très gros blocs de données, plus vous pouvez gérer de données dans une table, meilleures sont les performances globales.

L'accès au disque et au réseau est beaucoup plus lent que l'accès à la mémoire. Minimisez donc les lectures et les écritures HDFS autant que possible.

Avec ces informations de base à l'esprit, vous pouvez vous attaquer à la création de jointures avec Hive. Heureusement, la communauté de développement de Hive était réaliste et comprenait que les utilisateurs voudraient et devraient joindre des tables avec HiveQL. Cette connaissance devient particulièrement importante avec l'augmentation EDW. Les cas d'utilisation tels que les archives "queryable" nécessitent souvent des jointures pour l'analyse des données.

Voici un exemple de jointure Hive utilisant des tables de données de vol. La liste vous montre comment créer et afficher une table myflightinfo2007 et une table myflightinfo2008 à partir des plus grandes tables FlightInfo2007 et FlightInfo2008. Le plan a toujours été d'utiliser les tables myflightinfo2007 et myflightinfo2008 créées par le CTAS pour illustrer comment vous pouvez effectuer des jointures dans Hive.

La figure montre le résultat d'une jointure interne avec les tables myflightinfo2007 et myflightinfo2008 à l'aide du client SQL SQuirreL.

Hive prend en charge

equi-jointures, un type spécifique de jointure qui utilise uniquement des comparaisons d'égalité dans le prédicat de jointure. (ON m8 FlightNum = m7 FlightNum est un exemple d'équi-jointure.) Les autres comparateurs tels que Less Than (<) ne sont pas supportés. Cette restriction est uniquement due à des limitations sur le moteur MapReduce sous-jacent. En outre, vous ne pouvez pas utiliser OR dans la clause ON. La figure illustre l'exemple précédent de la jointure interne et de deux autres types de jointure Hive. Notez que vous pouvez confirmer les résultats d'une jointure interne en examinant le contenu des tables myflight2007 et myflight2008.

La figure suivante illustre le fonctionnement d'une jointure interne à l'aide d'un diagramme de Venn, au cas où vous ne maîtriseriez pas la technique. L'idée de base ici est qu'une jointure interne renvoie les enregistrements qui correspondent entre deux tables. Donc une jointure interne est un outil d'analyse parfait pour déterminer quels vols sont les mêmes de JFK (New York) à ORD (Chicago) en juillet 2007 et juillet 2008.

Optimiser les jointures de Hive est un sujet brûlant dans la communauté Hive. Pour plus d'informations sur les techniques d'optimisation actuelles, consultez la page Join Optimization sur le wiki Hive.

Joindre Tables avec Hive - des nuls

Le choix des éditeurs

Conventions de dénomination pour Ruby on Rails - mannequins

Conventions de dénomination pour Ruby on Rails - mannequins

Vous utilisez Ruby on Rails pour créer un site Web application ou application de base de données Web, ce qui est très intelligent de votre part. En fonction de ce que vous utilisez (une application, une relation un-à-plusieurs ou une relation plusieurs-à-plusieurs), vous utilisez différentes variantes des protocoles d'attribution de noms Rails, qui sont expliquées dans les sections suivantes. Ruby Naming for ...

En orbite, panoramique et zoom dans la vue 3D de Blender - mannequins

En orbite, panoramique et zoom dans la vue 3D de Blender - mannequins

En essayant de naviguer dans un espace en trois dimensions à travers un écran bidimensionnel comme un écran d'ordinateur, vous ne pouvez pas interagir avec cet espace 3D virtuel exactement comme vous le feriez dans le monde réel, ou espace de vie. La meilleure façon de visualiser le travail en 3D à travers un programme comme Blender est d'imaginer la vue 3D comme vos yeux ...

Déplacement de clips sur la timeline dans Final Cut Pro HD - Ficelles

Déplacement de clips sur la timeline dans Final Cut Pro HD - Ficelles

Final Cut Pro HD Timeline vous permet d'organiser tous vos clips vidéo et audio afin qu'ils racontent l'histoire que vous voulez raconter. Pour comprendre le fonctionnement de la Timeline, imaginez-la comme une page de partitions, mais plutôt que de placer des notes de musique de différentes durées (noires, demi-notes, ...

Le choix des éditeurs

Contrôle et modification de l'associativité des dimensions dans AutoCAD - Dummies

Contrôle et modification de l'associativité des dimensions dans AutoCAD - Dummies

Lorsque vous ajoutez des dimensions en sélectionnant des objets ou en utilisant l'accrochage aux objets Pour sélectionner des points sur les objets, AutoCAD crée normalement des dimensions associatives, qui sont connectées aux objets et se déplacent avec eux. C'est le cas dans les nouveaux dessins créés à l'origine dans toute version d'AutoCAD à partir de 2002. Si vous ...

Copie de styles de cote existants dans AutoCAD 2008 - mannequins

Copie de styles de cote existants dans AutoCAD 2008 - mannequins

Si vous avez la chance de travailler dans un bureau Quelqu'un a mis en place des styles de cotes qui conviennent à votre secteur d'activité et à votre projet. Vous pouvez le copier et ainsi éviter de devoir créer vos propres styles de cote. (Un style de cote - ou dimstyle pour faire court - est une collection de paramètres de dessin appelée dimension ...

En choisissant un style d'édition AutoCAD -

En choisissant un style d'édition AutoCAD -

Dans AutoCAD vous passez généralement plus de temps à éditer que dessiner des objets. C'est en partie parce que le processus de conception et de rédaction est, par nature, sujet à des changements, et aussi parce que AutoCAD vous permet de modifier facilement les objets proprement. AutoCAD propose trois styles d'édition: Commande-première Sélection-première Objet-direct (poignée) AutoCAD fait référence à l'édition de commandes comme verbe-nom ...

Le choix des éditeurs

Praxis Examen d'éducation élémentaire - Présentations orales - mannequins

Praxis Examen d'éducation élémentaire - Présentations orales - mannequins

Parce que les élèves doivent généralement donner des présentations orales en classe , vous rencontrerez probablement une question sur ce sujet dans l'examen Praxis Elementary Education. Plus formelles que les discussions de groupe, les présentations orales ont leurs propres règles pour le conférencier. Lorsque vous donnez une présentation en classe, il y a plusieurs ...

Praxis Examen d'éducation élémentaire - Littérature et texte d'information - mannequins

Praxis Examen d'éducation élémentaire - Littérature et texte d'information - mannequins

L'examen Praxis Elementary Education sur la littérature et le texte d'information, c'est-à-dire la fiction et la non-fiction. Vous devrez donc vous familiariser avec les différents genres d'écriture. La compréhension du texte est un processus qui se produit au fil du temps.

Praxis Examen d'éducation élémentaire - Connaissance phonologique - mannequins

Praxis Examen d'éducation élémentaire - Connaissance phonologique - mannequins

Vous rencontrerez probablement une ou deux questions qui impliquent des questions phonologiques sensibilisation à l'examen Praxis Elementary Education. La conscience phonologique est une compétence large impliquant la reconnaissance de son. Les lecteurs débutants commencent par apprendre les sons individuels, ou phonèmes, dans des mots parlés. Par exemple, le mot chat a trois phonèmes: / c / / a / / t /. Un lecteur débutant apprend ...