我想将这种关系“1到多”员工可以有0个或多个订单转换为nosql hbase
holgip5t1#
在hbase检索一个员工的所有订单的情况下,行键的结构如下:
RowRey = ShardKey + EmployeeID + OrderID
哪里 ShardKey 是(employeeid%地区数)。这允许在服务器之间高效地分布数据,以避免热点。你可以有两列家庭。在第一列中,行的族列可以与顺序表中的列相同。第二列中的值与employee表中的值相同。由于这些数据的更新率不同,建议将它们分开保存。列族是特定于hbase的概念,在其他rdbms应用程序中找不到。对于同一区域,不同的列族将数据存储到不同的文件中,并且可以进行不同的配置。具有相同访问模式和格式的数据应分组到同一列族中。作为关于格式的一个示例,如果除了每个客户的个人资料照片的图像文件之外,还需要存储客户个人资料的大量文本元数据信息,则可能需要将它们存储到两个不同的列族中:一个是压缩的(所有文本信息都将存储在其中),一个未压缩(图像文件将存储在其中)。作为访问模式的一个例子,如果一些信息大部分是读的,几乎从不写,而一些信息大部分是写的,几乎从不读,那么您可能需要将它们分为两个不同的列族。如果要存储的不同列具有相似的格式和访问模式,请将它们重新组合到同一列族中。但为了简单起见,您可以使用下面的行键将雇员数据保存在单独的表中
ShardKey
RowRey = ShardKey + EmployeeID
构建hbase应用程序
1条答案
按热度按时间holgip5t1#
在hbase检索一个员工的所有订单的情况下,行键的结构如下:
哪里
ShardKey
是(employeeid%地区数)。这允许在服务器之间高效地分布数据,以避免热点。你可以有两列家庭。在第一列中,行的族列可以与顺序表中的列相同。第二列中的值与employee表中的值相同。由于这些数据的更新率不同,建议将它们分开保存。列族是特定于hbase的概念,在其他rdbms应用程序中找不到。对于同一区域,不同的列族将数据存储到不同的文件中,并且可以进行不同的配置。具有相同访问模式和格式的数据应分组到同一列族中。作为关于格式的一个示例,如果除了每个客户的个人资料照片的图像文件之外,还需要存储客户个人资料的大量文本元数据信息,则可能需要将它们存储到两个不同的列族中:一个是压缩的(所有文本信息都将存储在其中),一个未压缩(图像文件将存储在其中)。作为访问模式的一个例子,如果一些信息大部分是读的,几乎从不写,而一些信息大部分是写的,几乎从不读,那么您可能需要将它们分为两个不同的列族。如果要存储的不同列具有相似的格式和访问模式,请将它们重新组合到同一列族中。
但为了简单起见,您可以使用下面的行键将雇员数据保存在单独的表中
构建hbase应用程序