La documentation Hbase indique clairement que vous devez regrouper des colonnes similaires dans des familles de colonnes, car le stockage physique est effectué par famille de colonnes.Hadoop Hbase: Répartition des familles de colonnes entre les tables
Mais qu'est-ce que cela signifie de mettre deux familles de colonnes dans la même table, par opposition à avoir des tables séparées par groupe de colonnes? Existe-t-il des cas spécifiques où le "partitionnement" des tables est plus logique et où une table "large" fonctionne mieux?
Des tables séparées devraient aboutir à des "régions de ligne" séparées, ce qui pourrait être bénéfique lorsque certaines familles de colonnes (dans leur ensemble) sont très éparses. Inversement, quand serait-il avantageux d'avoir des familles de colonnes regroupées?
Vous dites "Rejoindre est cher". Cela semble impliquer qu'une «jointure» entre des groupes de colonnes dans la même table est moins coûteuse qu'une jointure de groupes de colonnes à travers des tables. Est-ce le cas? Les docs HBase ne le font pas clairement, je pense. – Thilo
Je pense qu'il est beaucoup moins cher de faire une 'jointure' entre les colonnes dans la même table, car c'est juste une opération 'get' avec les deux colonnes nommées et est une primitive dans le langage de requête. 'Join', cependant, n'est pas une primitive et vous devez l'implémenter vous-même (ce qui nécessite plus d'opérations). –