有人请帮助我了解 Hbase 在内部是如何工作的。
列的值可以引用另一个表的键吗?
例如:
假设我有一个 Student 表,其中 subjectId 作为外键,而 Subject 表有 id 作为主键,那么表示形式会如何?我们如何将学生和主题映射在一起?
有人请帮助我了解 Hbase 在内部是如何工作的。
列的值可以引用另一个表的键吗?
例如:
假设我有一个 Student 表,其中 subjectId 作为外键,而 Subject 表有 id 作为主键,那么表示形式会如何?我们如何将学生和主题映射在一起?
有人请帮助我了解 HBase 在内部是如何工作的。
这是一件非常大的事情,在这里无法完全解释。请参阅此链接以获取更多详细信息。
列的值可以引用另一个表的键吗?
一列绝对可以将另一行的键存储在同一张或另一张表中。您必须从第一个表中读取此值,然后转到第二个表才能获取该行(如果两行都在不同的表中)。
例如:假设我有一个 Student 表,其中 subjectId 作为外键,而 Subject 表有 id 作为主键,那么表示形式会如何?我们如何将学生和主题映射在一起?
看起来你误解了 HBase。它不像传统的 RDBMS 那样工作。使用 HBase 时,没有主键、复合键或外键的概念。不过,您可以将行键视为主键。行根据这些行键按字典顺序排序。
回到你的问题。您的表中可以有 2 个列族,1 个用于学生,另一个用于主题。通过这种方式,您可以访问任何内容,而无需从一张桌子移动到另一张桌子。
高温高压
回应您的评论:
您可以拥有一个只有 1 个列族的表,该表将包含所有列。像这样的东西:
或者,如果您想区分这两种数据,您可以有 1 个包含 2 个列族的表,1 个用于学生相关数据,1 个用于学科相关数据,如下所示:
使用studentID作为行键,因为它对每个学生都是唯一的。现在,如果您想获取:
1.获取所有报考数据科学学科的学生: 使用columnvalue过滤器来实现。
1. 列出特定学生的所有科目:这很简单。就在那个特定的行上。
继续为学生申请的每个科目添加列。