Expedia Group迁移至ScyllaDB的背景与动机
Expedia Group是一家全球领先的旅游技术公司,管理着超过70 TB的数据。为了提升数据一致性和降低操作复杂性,Expedia Group决定将其Cassandra集群迁移至ScyllaDB。迁移的主要动机是利用ScyllaDB内置的变更数据捕获(CDC)功能,以替代现有的Cassandra CDC与Debezium结合的架构,从而减少系统不稳定性。
迁移的关键目标
此次迁移面临的主要挑战包括:
- 零停机时间
- 保持持续的TLS连接
- 确保数据一致性
- 支持对延迟敏感的应用程序
迁移过程
1. 迁移工具选择
Expedia Group评估了两种迁移工具:SSTable Loader和Scylla Migrator。最终选择了Scylla Migrator,原因在于其具备检查点功能、并行迁移支持以及内置验证器,提供了比SSTable Loader更可靠的迁移方案。
2. 技术准备与调整
- Spark集群调优:为了平衡性能,团队调整了Spark和Scylla Migrator的内存分配和Worker实例。
- TLS连接问题:由于Scylla Migrator不支持自签名证书,团队在迁移期间暂时禁用了TLS,并在迁移完成后在ScyllaDB中配置了新的数据中心以重新启用TLS。
- 处理空键和大表问题:团队在迁移过程中发现某些表的主键包含空值,导致ScyllaDB无法接受。为此,团队清理了问题数据并重新运行迁移任务。对于大表,团队临时扩展了ScyllaDB集群以处理更高的写入负载。
3. 数据验证
迁移完成后,团队进行了数据验证,重点关注值的一致性而非时间戳。由于延迟考虑,验证任务在资源较少的情况下运行。Scylla验证器报告确认了数据一致性,并通过双写验证了集群的完整性。
迁移的成果与洞察
- 效率提升:Scylla Migrator在单独的CDC实例上运行,减少了对生产流量的影响。
- 数据类型的挑战:某些数据类型需要保留原始时间戳,但由于CQL协议的限制,团队需要额外处理。
- 成本降低:迁移至ScyllaDB后,Expedia Group减少了AWS节点的使用,从而降低了成本,同时保持了高可用性。
其他公司的迁移案例
- Cobli:巴西的一家物流公司,通过从Cassandra迁移至ScyllaDB,实现了10倍的性能提升和50%的基础设施成本降低。
- mParticle:一家客户数据平台,迁移至ScyllaDB后,查询性能提升了10倍,延迟减少了50%。
结论
Expedia Group成功迁移至ScyllaDB,显著提升了效率、稳定性和成本效益,满足了其对数据可用性和低延迟的严格要求,同时简化了CDC解决方案。此次迁移为其他企业提供了宝贵的经验和参考。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用。你还可以使用@来通知其他用户。