桔妹导读:滴滴自成立以来,有海量的数据存储在离线平台,离线数据虽然存储便宜,压缩比高,但不适用于线上使用。为此,我们提供了一键式DTS平台——FastLoad,帮助业务往在线存储系统搬运离线数据,目前主要针对滴滴自研分布式存储Fusion,Fusion以RocksDB为存储引擎,服务线上集群500+,承载业务数据1600TB+,总QPS峰值1200W+,是一个成熟稳定的分布式NoSQL/NewSQL解决方案。
0.
目录
1. 业务背景:雄关漫道真如铁
2. 技术探讨:工欲善其事必先利其器
Ingest SST
Map/Reduce产出全局有序文件
3. 系统架构:千磨万击还坚劲
4. 总结展望:直挂云帆济沧海
基于FastLoad的数据传输给业务带来的收益
发展规划
1.
业务背景:雄关漫道真如铁
定时更新
快速更新
稳定性
多表隔离
2.
技术探讨:雄关漫道真如铁
▍Ingest SST
检查需要导入的SST是否合法,包括文件之间Key值是否有重叠,文件是否为空,ColumnFamilyID是否合法等等。
阻塞DB实例的写入操作,对可能与Ingest文件有重叠的MemTable进行刷盘操作。阻止RocksDB执行新的Compact任务导致LSM结构更新。
确定Ingest的文件应该在磁盘LSM结构中的哪一层,RocksDB会尽可能地将文件放在Key值不重叠的最底层。如上图所示,Key值范围为[E, F]的SST文件将Ingest导入到了L1层;随后,根据当前存在的快照、LSM组织形式等设置SST文件的元信息。
将之前设置的阻塞标记全部删除。
▍TMap/Reduce产出全局有序文件
3.
系统架构:千磨万击还坚劲
控制台服务:对外提供控制台表单和OpenAPI方式接入,提供创建任务、Schema转换规则等服务。
大数据调度模块:依赖Hadoop的计算资源,将Hive数据导出为我们需要的中间文件,在经过Map/Reduce的构建,生成全局有序的SST文件。
文件下载模块:根据分布式存储的路由表,将SST文件下载到不同的存储节点。
文件导入和DB切换:依赖上文提及的Ingest SST的方式,将文件一次性导入DB实例。为了避免上述提及的堵塞,我们提供往新DB实例导数据的选项,这样就可以避免因线上写而导致的堵塞,空数据也可以避免Compact。假如选择了新DB导入的选项,最后还会有一次DB新旧实例的切换,相当于一次链接映射。
4.
总结展望:直挂云帆济沧海
▍基于FastLoad的数据传输给业务带来的收益
大大缩短业务导数据耗时,1TB数据平均导入时间为1小时;
线上服务业务300+,每天运行次数1000+,每天导数据量30TB+;
服务稳定性达到99.99%,上线运行2年无任何重大事故;
高频运维操作一键自助完成,90% 的问题,5 分钟完成定位;
▍发展规划
架构优化,整体架构目前依赖Hadoop,可以考虑迁移到Spark,提升运行效率;
管控优化,提供更细致更全面的FastLoad监控和报表;
多产品应用,目前FastLoad主要针对NoSQL和NewSQL两种场景,同比可以应用在ES、MQ等场景;
新场景支持,离线数据的实时读取不仅对OLTP场景提供了更好的支持,也为接下来大热的HTAP场景提供了无限的可能。
转载:https://blog.csdn.net/DiDi_Tech/article/details/101094669