美文网首页
数据分片一些想法和方案

数据分片一些想法和方案

作者: pcgreat | 来源:发表于2019-05-16 09:53 被阅读0次

要拆用户,用户代理表 ,这让我陷入了一些思考 。不仅仅数据分片 以及查询
方案1 适用 shardingjdbc ,mycat 这类的 水平拆分 ,根据站点拆分,最终有可能会变成多租户数据隔离的情况
优点 :1 shardingjdbc 可以有效减少开发人员的路由代码 ,不需要去关心路由表单情况
2 水平拆分后 业务其实更加清晰了
3 开发人员能够很快上手 ,技术难度低
缺点 :
1 全局的查找 性能还是很差 比如 全局查找limit 10000 5 , 其实是 每个分片的10005条数据 聚合 排序
2 shardingjdbc 不是完全兼容sql 规范 ,不合规范的需要开发同学改sql
3 分片后数据增长后 性能还是 变差 ,比如每个站点用户的量超过200w 时 继续分片会近一步加大开发难度

方案2 这个方案类似我之前公司的解决方案 ,将用户变更数据通过kafka (其他队列也行 性能够好就ok)聚合倒入es ,什么是聚合 ,比如说 用户添加代理了的事件 通过kafka 到了消费者 ,消费者搜索出查询数据 放入 es 中 。近一步 可以 Canal 或者otter 监听binlog 将事件 丢到kafka ,开发人员不需要管事件的投递过程 但是 运维难度会增加 。
优点 :
1 多字段 查询 完全难不倒es ,es 本身具有横向扩展能力 ,基本不需要担心数据量的问题
2 动态查询 简单
3 无全局 查找 limit 问题
缺点
1 需要熟悉kafka和es 技术 对开发人员要求更高
2 es 性能 也是和 查询语句的性能 , 分片数量 ,索引的配置,实际硬件情况 相关的
3 对于运维的要求 显然 比shardingjdbc 更高
4 有一定延时性

方案3 基于内存数据库 ignite , 内存数据库 本身是 可以持久化的 。不过内存中会有全部数据 (ignite 还有很多其他能力 ,服务网格,内存网格等等 )
优点 :
1 相当优秀的 并发读写能力 , 写能力很强 ,具有流式写的能力
2 集群很容易
3 还有很多其他诱人的能力

缺点 :
1 缺点非常明显 sql 兼容性 比 shardingjdbc 更差 ,适用范围比较小
2 数据全在内存中 ,你觉得 数据 贵不贵
3 需要学习 ignite运维

方案4 数据量进一步扩大 到tb 甚至pb 级别 这种级别查询 只能借助于 离线查询和在线查询的方案来做 , 比如 kafka flink kudu , kafka flink druid
优点
1 巨量数据量查询解决方案
2 olap 需求 可以达到亚秒级别
缺点
1 运维 和开发 要求高

还有 hbase cassandra 列式存储 我就不说了

相关文章

  • 数据分片一些想法和方案

    要拆用户,用户代理表 ,这让我陷入了一些思考 。不仅仅数据分片 以及查询方案1 适用 shardingjdbc ,...

  • 区块链没成规模,至少现在没有,但还有希望(五)

    建议的解决方案# 4:分片 区块链世界中的分片类似于传统软件系统中的数据库分片。对于传统数据库,分片是数据库中数据...

  • Sharding-JDBC 数据源分片:Java 配置实现基于原

    本文介绍 Sharding-JDBC 数据源分片之使用 Java 配置实现基于原生 JDBC 的范围分片方案。 注...

  • 日知录1-数据分片模型和路由算法

    分片模型: 先将数据映射到分片;再将分片映射到机器;都是多对一的关系。 分片策略:哈希分片和范围分片。 哈希分片通...

  • 关于Elastic Search的5种分片查询

    分片查询方式 Es查询的时候,默认是随机从一些分片中查询数据,可以通过配置让es从某些分片中查询数据: _prim...

  • Redis Cluster(集群)

    Redis Cluster是Redis分布式解决方案,集群通过分片(sharing)来对数据共享,并提供复制和故障...

  • Redis的cluster模式

    Redis集群是Redis提供的分布式数据库方案,集群通过分片(Sharding)来进行数据共享,并提供复制和故障...

  • 论文阅读之Spinnaker

    原文地址 简介 传统数据库已无法满足大规模数据的需求。传统的解决方案是分片,事务只能局限在一个分片节点。且通常需要...

  • Sharding-JDBC-Java配置

    JAVA配置 配置示例 数据分片 读写分离 数据分片 + 读写分离 数据分片 + 数据脱敏 治理 配置项说明 数据...

  • 分库分表

    1.纵向分片(垂直分片) 和微服务的思想一样,根据业务场景将不同的数据存入不同的数据库2.横向分片(水平分片) ...

网友评论

      本文标题:数据分片一些想法和方案

      本文链接:https://www.haomeiwen.com/subject/wzcbaqtx.html