BDS支持Cassandra进行极速数据迁移-阿里云开发者社区

开发者社区> 阿里云数据库> 正文

BDS支持Cassandra进行极速数据迁移

简介: 阿里云BDS服务是一款专门服务NoSQL迁移的服务,本文主要介绍BDS如何支持Cassandra数据库迁移。

背景

Apache Cassandra 做数据迁移一直是一件比较难的事情,特别是要做到无缝、不停机的迁移更是难上加难。现在社区在Cassandra之间迁移数据有推荐使用COPY 命令,sstableloader等方式,但是上述方式都不具备高效的迁移的能力,且各有各自的弊病,COPY 是在cqlsh 端启动多线程的范围scan,把数据读出来成为CSV格式文本,然后批量写入Cassandra,数据量大的时候满足不了需求;sstableloader则会出现源端一份数据在目标端多副本keyspace下多重迁移,浪费迁移时间和空间。
BDS 是阿里云NoSQL 团队内部孵化的一款NoSQL 数据迁移的服务,经过阿里巴巴集团内部多年打磨,并在阿里云上为公有云用户提供服务,最近BDS 支持了Cassandra数据迁移,通过BDS的服务可以满足用户对海量Cassandra数据迁移、高性能迁移、极低业务中断的迁移成本等各方面的诉求。

实现原理

稳定、高性能、低迁移时间、低业务影响是BDS迁移的首要宗旨,通过分析发现要想达到最快的迁移时间,最好的方式就是进行文件级别的copy,Cassandra集群每一个节点是预先分配好相关的数据范围,如果我们可以做到源端每个范围的数据直接对等迁移,在目标端回放,就可以做到最大速度迁移。1.jpg

图1
如图1所示,左边源集群由4个节点(W/X/Y/Z)组成,每个节点会预先分配好对应的关联数据范围,这里我们简单让每个节点具备一个token分配具体数据范围就是(10-40]加上(40-max]以及加上(min-40]。
BDS迁移前需要对应有一个关联的目标集群比如这里是图1右边的4个节点集群,使用BDS进行迁移的时候,BDS会按照如下步骤进行迁移:

  • 1.目标集群回放源集群的拓扑状态,例子中就是:w'负责10,X'负责20,Y'负责30,Z'负责40,那么最终目标集群负责的范围也是一一映射的为(10-40]加上(40-max]以及加上(min-40];
  • 2.BDS把源集群各个节点的sstable文件对等的拷贝到目标集群的对等节点,例子中就是:W->W',X->X',Y->Y',Z->Z';
  • 3.对于新增的数据BDS也是拷贝文件,但是主要是源集群Cassandra的incremental backup开启后的会在backups目录下新生成的各个增量文件,进行对等的copy;
  • 4.对于所有copy的文件,在目标端直接refresh下,在目标集群内存中load下sstable文件元信息;

通过上述方式,会保证全量以及增量数据可以被完整以及快速的被迁移。 通过测试以及分析,BDS 该种迁移方案的迁移速度,几乎就是集群节点间远程拷贝文件的速度,非常快,举个例子:3个节点,每个节点1T数据的集群,集群总数据3T,在迁移带宽150MB/s的网络环境下,2个小时可以完成迁移远高于其他迁移方案。

方案对比

方案 详情 优点 缺点 迁移复杂度
COPY FROM & COPY TO cqlsh 并发scan数据转存csv文件,然后写入Cassandra cqlsh支持的命令 数据量大后支撑不了,迁移需要停机离线迁移 中,cqlsh直接使用命令行导入导出文件即可
sstableloader 使用该命令,对sstable文件进行操作在目标端进行stream传输 比COPY FROM/TO 快 表3副本情况下,会造成迁移速度太慢,以及目标集群可能是9份数据冗余 高,人工执行sstable文件的load
BDS for cassandra BDS迁移直接copy文件,进行load 快,稳定,极少停机,业务影响少 需要购买BDS服务 简单,购买以后,配置双方地址,页面点击即可

操作流程

  • 1.在https://cn.aliyun.com/product/hbase 页面购买BDS服务
  • 2.购买云Cassandra服务或者自建好Cassandra服务
  • 3.源集群开启sftp服务,具体操作可以谷歌,如果需要增量迁移需要用户源集群开启incremental backup。
  • 4.BDS里面配置源集群和目标集群的endpoint地址;
  • 5.点击迁移服务;

附言

为了营造一个开放的 Cassandra 技术交流环境,社区建立了微信群公众号和钉钉群,为广大用户提供专业的技术分享及问答,定期开展专家技术直播,欢迎大家加入。
另外阿里云提供商业化Cassandra使用,中国站和国际站都支持:https://www.aliyun.com/product/cds
阿里云近期推出云原生多模数据库Lindorm,欢迎大家使用:https://www.aliyun.com/product/apsaradb/lindorm


47fe6c9c326148a8828ab044ad3c6840.jpg





版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:
阿里云数据库
使用钉钉扫一扫加入圈子
+ 订阅

帮用户承担一切数据库风险,给您何止是安心!

官方博客
链接
http://www.vxiaotou.com