【问题标题】:Mysql database to Nosql hbase using java使用java的Mysql数据库到Nosql hbase
【发布时间】:2017-07-12 08:41:49
【问题描述】:

我想将此关系“1 对多”转换为 Nosql hbase 员工可以有 0 个或多个订单

【问题讨论】:

    标签: java mysql sql hbase nosql


    【解决方案1】:

    在 HBase 检索一名员工的所有订单的情况下,您可以具有以下行键结构:

    RowRey = ShardKey + EmployeeID + OrderID
    

    其中ShardKey 是(EmployeeID % 区域数)。这允许在区域服务器之间有效地分发数据以避免热点。您可以有两个列族。在第一列族中,该行的列可以与 Order 表中的相同。第二列将与 Employee 表中的相同。由于这些数据具有不同的更新率,因此建议将它们分开保存。

    列族是 HBase 特有的概念,在其他 RDBMS 应用程序中是找不到的。对于同一个区域,不同的列族会将数据存储到不同的文件中,可以进行不同的配置。具有相同访问模式和相同格式的数据应分组到相同的列族中。作为有关格式的示例,如果除了每个客户的个人资料照片的图像文件之外,您还需要存储客户个人资料的大量文本元数据信息,您可能希望将它们存储到两个不同的列族中:一个是压缩的(其中所有文本信息将被存储),一个未压缩(图像文件将存储在哪里)。以访问模式为例,如果某些信息大部分是读取但几乎从不写入,而有些信息主要是写入但几乎从不读取,您可能希望将它们分成两个不同的列族。如果您要存储的不同列具有相似的格式和访问模式,请将它们重新组合到同一列族中。

    但为了简单起见,您可以使用以下行键将员工数据保存在单独的表中

    RowRey = ShardKey + EmployeeID
    

    Architecting HBase Applications

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-03-19
      • 1970-01-01
      • 2012-10-03
      • 2012-09-15
      相关资源
      最近更新 更多