5 votes

Clés étrangères de ruche ?

Je suis nouveau sur Hive. J'ai essayé de faire des recherches sur différents sites web mais aucun n'a pu me donner une image claire de ce qui suit : A> Clés étrangères : Le concept général de Hive ne mentionne jamais rien au sujet des clés étrangères. Alors, comment faire respecter les contraintes référentielles ? (Je suis au courant de la syntaxe JOIN ON, cela signifie-t-il que les deux tables ont une relation clé primaire:clé étrangère ?) Y a-t-il un objectif plus élevé pour ne pas supporter les clés étrangères ? B> Comparaison de l'égalité des flottants : Il semble y avoir un problème avec ceci. Par exemple, pour vérifier si A=3.5 => "A>3.49 et A<3.51". Est-ce la bonne méthode ?

Existe-t-il des références/matériels qui pourraient aider à la mise en œuvre de HQL ?

J'apprécie toute aide,

Merci -Shiree

6voto

Matt Tucker Points 150

Hive est implémenté comme Schema-on-Read, il n'y a donc pas d'intégrité référentielle inhérente effectuée par Hive sur les ensembles de données. Au lieu de cela, l'intégrité doit être assurée par le système source et, surtout, par toutes les requêtes exécutées dans Hive.

3voto

Ruslan Points 196

Hive ne supporte pas actuellement les contraintes FK/PK.

Mais cela pourrait être le cas à l'avenir. Cela donne à Hive CBO plus d'informations pour faire de meilleures estimations de cardinalité, de meilleures réécritures de requêtes :

https://issues.apache.org/jira/browse/HIVE-13019

https://issues.apache.org/jira/browse/HIVE-6905

En réponse à la réponse de Mo K, contraintes ne signifie pas nécessairement frais généraux. Oracle par exemple a des contraintes "RELY NOVALIDATE" - donc CBO (ou Hive CBO dans ce cas) s'appuie sur cette contrainte pour ses optimisations de requêtes, mais n'a pas à vérifier réellement si cette contrainte est vraie.

Edit 18/02/2016 : J'ai créé https://issues.apache.org/jira/browse/HIVE-13076 Veuillez voter si vous êtes intéressés par cette fonctionnalité.

Edition du 25/07/2016 : https://issues.apache.org/jira/browse/HIVE-13076 est résolu à partir de 06/2016, devrait atterrir dans Hive 2.1. Je ne vois pas encore de mises à jour dans la documentation officielle.

3voto

plain_text Points 1

Le support des contraintes de clés primaires/étrangères est disponible dans Hive 2.1.0. Voir Notes de publication de la version 2.1.0 .

0voto

Mo K Points 1

En général, la meilleure pratique en matière d'entreposage de données consiste à ne pas appliquer l'intégrité référentielle, afin d'éviter les frais généraux. Par conséquent, si le besoin s'en fait sentir, vous pouvez l'appliquer explicitement dans vos requêtes.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X