数据科学中的数据工程与软件工程
1. 数据工程概述
数据工程是数据分析的推动者,它要求具备深厚的工程技能,以应对各种原始数据格式、通信协议、数据存储系统、探索性可视化技术和数据转换。在处理常见数据源时,通常有标准化的解决方案,例如使用Python Database API来统一处理不同的关系型数据库管理系统。而对于不常见的数据源,如低级设备,则需要发挥创造力和警惕性,可借助像PyVISA这样的优秀库来控制各种测量设备。
数据工程还涉及数据安全问题,敏感数据在进行进一步处理(尤其是公开发布前)必须进行匿名化处理,并在静止和传输时进行加密,同时要确保数据的一致性和完整性。此外,数据作为商品的概念正在兴起,如Data Rivers系统可进行数据收集、清理和验证,而数据科学即服务的概念也将数据科学操作化,为企业提供必要的基础设施。
2. 软件工程在数据科学中的重要性
在数据科学中,对大型数据集进行高效计算是不可或缺的一部分。随着问题规模和复杂性的增加,软件解决方案也变得更大、更复杂,因此软件的可维护性成为一个重要的质量属性。有效的沟通和协作在软件工程和数据科学中都极为重要,一个团队开发的软件必须能被其他团队理解,以促进使用、重用和发展。
3. 大型软件系统的特点
大型软件系统与小型软件系统的最大区别在于软件的生命周期模型。大型软件系统通常不能由小型团队实现,是复杂的社会技术软件密集型系统的一部分,其退役会对业务产生巨大影响。软件维护和演化通常是大型软件系统生命周期中最长的阶段,有些安全关键型软件系统的维护阶段可能会持续数十年。
可以用锦标赛象棋游戏来类比软件生命周期模型,象棋游戏前有初始准备和规划阶段