栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

HBase实战:从MYSQL表迁移至Hbase中带来的主键问题

HBase实战:从MYSQL表迁移至Hbase中带来的主键问题

简介

        我们这次性能改造主要是针对mysql数据库中一张存在瓶颈问题的表进行迁移至Hbase,希望通过Hbase来解决当前的瓶颈性问题,在前期个方面调研后我们觉得这件事是大有可为的。改造完成后服务的吞吐能力也将带来成倍的提升。

        业务场景:业务通过调用我们基础服务后会将记录保存到一张log表中,后续关于所有的动作和结果也会根据这条log记录ID进行更改(通过回调的方式)。因为我们现在服务能力有限每天只会产生200-300w条数据,后期如果全量接入后每天的数据量预估是5000w条左右。

      bigint可以精确地表示从-2^63到2^63-1,即从-9,223,372,036,854,775,808到 9,223,372,036,854,775,807之间的整数都可以由bigint表示,它占用了八个字节的存储空间。

      每天5千万数据多少年可以触发范围异常呢?

      9,223,372,036,854,775,807/50000000/365   = 505390248(年) 

行键方案1: MYSQL 表自增主键作为Hbase行键 操作说明:

        在数据库中创建一张表,主键ID类型为bigint 长度为20,自增。每次10分钟清理一次数据。基础服务创建log前往该表插入一条数据获得id,作为hbase行键id。

优点:

完全不用考虑因为id带来的逻辑问题和分布式id问题

行键方案2: 日期-行键-zk/redis   由zk和redis生成行键的ID 操作说明:

         在创建记录前,先通过zk/redis生成id,然后标注通过zk/redis标示由谁生成,如果只是用zk或redis其一负责id生成可以忽略最后表示

优点:

可以直接使用zk和redis相关接口进行创建,比较灵活。

行键方案3:  uuid 或者 分布式ID生成器 操作说明:

使用相关工具类即可,分布式ID生成器可能需要引入外部第三方jar包

优点:

        简单

缺点:

        1.长字符串存储比较占空间,同时要选择比较稳定的分布式ID生成器,避免出现相同ID出现导致问题

        2.无法根据行键进行范围比较(数字范围)

总结

        因为我们是提供基础服务的,考虑到数据回调场景,我们选择了第一种通过MYSQL 表来管理Hbase的行键。这样可以降低我们的改造风险。

     

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/584549.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号