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 2024

Vidéo: SQL Inner Join Multiple Tables with SUM Tutorial - SQL 2008/2012/2016/2017 2024
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

Utilisant le mode rafale: La photographie d'action des mannequins

Utilisant le mode rafale: La photographie d'action des mannequins

Canon EOS Rebel T1i / 500D nécessite un vitesse d'obturation rapide - et un doigt de déclenchement rapide. Heureusement, le Canon EOS Digital Rebel a un mode Drive (ou Burst), qui enregistre une série continue d'images tant que vous maintenez le bouton de l'obturateur enfoncé. Si vous voulez obtenir de superbes photos d'un sujet en mouvement rapide, le mode Drive ...

En utilisant le mode en direct (détection de visage) sur votre Canon EOS Rebel T6 / 1300

En utilisant le mode en direct (détection de visage) sur votre Canon EOS Rebel T6 / 1300

Lorsque vous activez ce mode, le Rebel T6 recherche les visages dans le cadre. Vous devrez peut-être appuyer brièvement sur le déclencheur pour réactiver l'appareil photo avant que la fonction de détection de visage ne s'enclenche. Si un visage est détecté, l'appareil photo affiche un cadre de mise au point sur le visage, comme indiqué sur ...

En utilisant les modes automatiques sur votre Canon EOS Rebel T3 / 1100D - mannequins

En utilisant les modes automatiques sur votre Canon EOS Rebel T3 / 1100D - mannequins

Pour le plus automatique de la photographie automatique, permettant aux personnes ayant une expérience minimale de capturer de belles images, réglez votre sélecteur de mode Canon EOS Rebel T3 / 1100D sur l'un des deux paramètres suivants: Auto complet: Le nom de ce mode, indiqué dans la figure suivante, indique que le l'appareil photo prend le contrôle total de toutes les expositions, luminosité, flash, ...

Le choix des éditeurs

5 Bons contrôles comptables qui minimisent le vol - les nuls

5 Bons contrôles comptables qui minimisent le vol - les nuls

Voici un résumé de cinq techniques puissantes pour minimiser les problèmes surgissez lorsque vous avez des personnes ayant des niveaux de compétence et de fiabilité différents qui travaillent avec vos données QuickBooks: Comparez régulièrement les inventaires physiques avec les enregistrements de comptabilité d'inventaire. Une des choses que vous pouvez faire, à la fois pour minimiser vos pertes d'inventaire et ...

6 Astuces pour utiliser la stratégie avec QuickBooks - les nuls

6 Astuces pour utiliser la stratégie avec QuickBooks - les nuls

Si vous utilisez QuickBooks pour vous aider à mettre en place une stratégie pratique, il y a quelques choses que vous pourriez vouloir considérer. Assurez-vous de bien comprendre ces points clés: Connaissez les trois stratégies. Habituellement, une entreprise ne peut avoir qu'une stratégie commerciale sur trois: Stratégie basée sur les coûts Stratégie basée sur la différenciation Stratégie axée sur les objectifs Choisissez une stratégie. ...

5 Astuces pour simplifier l'installation de QuickBooks 2014 - les nuls

5 Astuces pour simplifier l'installation de QuickBooks 2014 - les nuls

Si vous êtes une petite entreprise configurant QuickBooks Logiciel de comptabilité 2014, vous apprécierez ces cinq conseils utiles. Minimisez le processus d'installation de QuickBooks avec ces astuces et techniques, et vous obtiendrez une conclusion rapide et réussie. Astuce # 1 de QuickBooks: Convertir en QuickBooks à compter du 1er janvier Convertir en un nouveau système de comptabilité dès le début ...

Le choix des éditeurs

Logique Puzzles pour garder votre esprit net - les mannequins

Logique Puzzles pour garder votre esprit net - les mannequins

Mettent votre casse-tête pour résoudre ces énigmes logiques! Chacun a juste une réponse. Les niveaux sont faciles, délicats, durs et traîtres, «facile» étant (bien sûr) les puzzles les plus faciles, et «traître» étant les plus difficiles. Facile: Combien de fois un mathématicien peut-il soustraire dix de 100? Facile: Déchiffrez cet indice: YYYMEN Tricky: Une femme ...

Maintien de la stabilité de l'humeur dans les troubles bipolaires - mannequins

Maintien de la stabilité de l'humeur dans les troubles bipolaires - mannequins

Plan thérapeutique global qu'une personne atteinte de trouble bipolaire doit suivre et maintenir la stabilité de l'humeur est assez simple. Suivez ce plan de traitement: Prenez vos médicaments tels que prescrits, même lorsque vous vous sentez bien, et consultez votre médecin avant de faire des changements de médicaments. Établir des routines qui assurent un horaire régulier de veille-sommeil. Manque de qualité ...

Faire un pré-accord pour recevoir un traitement pour trouble bipolaire - les variables nominales

Faire un pré-accord pour recevoir un traitement pour trouble bipolaire - les variables nominales

En pleine Manie ou dépression, une personne peut ne pas penser assez clairement pour se faire soigner et peut même refuser le traitement nécessaire. Les êtres chers veulent faire ce qu'il y a de mieux, mais ils hésitent souvent, ne sachant pas quand intervenir et quoi faire. Devraient-ils appeler votre médecin ou votre thérapeute ou vous conduire?