mysql数据库到nosqlhbase的java实现

yptwkmov  于 2021-06-08  发布在  Hbase
关注(0)|答案(1)|浏览(211)

我想将这种关系“1到多”员工可以有0个或多个订单转换为nosql hbase

holgip5t

holgip5t1#

在hbase检索一个员工的所有订单的情况下,行键的结构如下:

RowRey = ShardKey + EmployeeID + OrderID

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

RowRey = ShardKey + EmployeeID

构建hbase应用程序

相关问题