5 votes

HBase : stockage des "relations" entre plusieurs personnes

Je réfléchis à la meilleure façon de mettre en place un système de "un à plusieurs". relation dans HBase.

Disons qu'un COMPTE a plusieurs TRANSACTIONS. Est-il préférable de

a) Ajouter des colonnes à une famille de colonnes transactions : sur la table ACCOUNT, c'est-à-dire transactions:1:montant, transactions:2:montant

b) Stocker uniquement la ou les clés de chaque TRANSACTION relative à un compte dans la famille de colonnes transactions : de ACCOUNT, et effectuer une recherche de chaque transaction trouvée dans une table TRANSACTION séparée ?

5voto

codingFoo Points 876

En général, l'option a est la meilleure approche.

Cela vous permet de demander facilement toutes les transactions d'un compte en une seule fois. Aucune recherche supplémentaire n'est nécessaire, pour chaque transaction.

Il existe des cas d'utilisation où l'option b peut être appropriée, comme l'exécution fréquente de requêtes sur toutes les transactions.

0voto

Bhasker Points 1

Je suppose que l'option (a) serait acceptable si le seul élément de données qui doit être suivi pour le compte est le montant. Cependant, si vous avez besoin de capturer de nombreux autres éléments de données, je pense que nous devrons choisir l'option (b), même si elle est moins efficace que (a).

0voto

uvgoyal Points 10

Que diriez-vous d'avoir une seule colonne de valeur et d'utiliser un séparateur comme $ et #. Voici un exemple de données :

Column Family: Transactions
Column Value: $ transactionID:1#amount:100 $ transactionID:2#amount:200 $ transactionID:3#amount:300

Vous pouvez maintenant utiliser les séparateurs $ et # pour récupérer les valeurs et utiliser des tableaux de chaînes pour traiter les données.

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