5.1 路线图
本节讨论数据科学家在数据迁移中的不同场景。
5.1.1 跨数据源聚合数据
传统上,来自事务型数据库的数据被聚合到数据仓库中用于数据分析。今天,数据源的种类显著增加,有结构化数据、半结构化数据和非结构化数据,包括事务型关系数据库、行为数据、地理空间数据、服务器日志、物联网传感器数据等。对数据用户来说,从这些数据源聚合数据难度较大。
更复杂的是,随着应用程序设计的微服务范式(https://oreil.ly/2kHMq)的出现,数据源变得越来越孤立。在微服务范式中,开发人员可以选择最适合其微服务的不同底层数据存储和数据模型。在现实世界中,一个典型的数据用户需要应对不同的数据孤岛,并且通常需要跨团队进行协调,管理产品交易数据、行为点击流数据、营销活动、账单活动、客户支持票据、销售记录等。在这种情况下,数据迁移服务的作用是在数据湖中自动聚合数据。
5.1.2 将原始数据迁移到专门的查询引擎
越来越多的查询处理引擎针对不同类型的查询和数据工作负载进行了优化。例如,对于时间序列数据集的切片分析,数据被复制到专门的分析解决方案,如Druid(https://oreil.ly/hmCP4)和Pinot(https://oreil.ly/_hu7N)。简化数据迁移可以为分析作业选择更合适的分析工具。在基于云的架构中,查询引擎越来越多地直接运行在数据湖上,减少了迁移数据的需求。
5.1.3 将处理过的数据迁移到服务存储
考虑这样一个场景,数据被处理后存储为键-值对,需要由应用程序向数百万个终端用户提供服务。为了确保足够的性能和可扩展性,需要根据数据模型和一致性需求选择合适的NoSQL存储作为服务存储。
5.1.4 跨数据源进行探索性分析
在模型构建的初始阶段,数据用户需要探索大量的数据属性。这些属性在数据湖中可能并不都是可用的。探索阶段不需要完整的表,而是需要快速原型设计的数据样本。鉴于原型设计工作的迭代性,非常有必要将数据迁移自动化为页面点击可实现的功能。此场景是决定需要定期在数据湖中聚合哪些数据集的准备步骤。