就像软件工程将工程严密性引入软件开发一样,数据工程旨在以可靠的方式处理数据,为数据工作带来同样的严密性。本书讲述了在实际生产系统中实现大数据平台的各个方面:数据摄取、运行数据分析和机器学习(ML),以及数据分发等。本书的重点是运维方面,如DevOps、监控、规模和合规性。本书将使用Azure 服务实现具体示例。
本书读者对象
本书主要面向有几年经验的数据科学家、软件工程师或架构师,读者应该已是一名数据工程师,目前希望构建和扩展生产数据平台。读者应该具备基本的云知识和一些处理数据的经验。
本书内容
本书分为三个部分,每部分从不同的角度看待数据平台。第1 章介绍了数据平台的总体架构,概述了我们将在示例中使用的Azure 服务,并定义了一些关键术语(例如数据工程和基础设施即代码等),以奠定一些共同的基础。第Ⅰ部分涵盖了数据平台的核心基础设施。
● 第2 章介绍了存储基础设施,这是大数据平台的核心。
● 第3 章介绍了DevOps,DevOps 将软件工程的严密性引入数据领域。
● 第4 章介绍了编排,即如何在数据平台上安排和执行数据的移动和处理。
第Ⅱ部分涵盖了数据平台支持的主要工作任务。
● 第5 章介绍了数据处理,即对原始数据进行处理和转换以更好地适应不同的分析需求和场景。
● 第6 章介绍了运行数据分析,即在进行重复的报告和分析任务时,采用一系列良好的工程方法和技巧来提高效率和准确性。
● 第7 章提供了一套完整的解决方案,以支持从数据准备和特征工程到模型训练和部署的整个机器学习工作流程(又称为MLOps)。
第Ⅲ部分涵盖了数据治理的各个方面。
● 第8 章讲述了元数据(关于数据的数据)以及如何理解大数据平台中的所有资产。
● 第9 章讲述了数据质量以及对数据集进行不同类型的测试可以帮助我们评估数据质量并发现潜在的问题。
● 第10 章讲述了一个重要主题——合规,包括我们如何对不同类型的数据进行分类和处理。
● 第11 章讲述了数据分发以及与其他下游团队共享数据的各种方式。
这些章节可以按任意顺序阅读,因为它们涉及数据工程的不同方面。然而,如果你想运行代码示例,则必须阅读第Ⅰ部分。如果你不打算运行代码示例,可以随意跳过第Ⅰ部分,直接阅读你最感兴趣的章节。
本书代码
本书包含许多源代码示例,既有编号的列表形式,也有与普通文本一起排列的行内形式。在这两种情况下,源代码都以等宽字体格式化,从而与普通文本分隔开来。
此外,在许多情况下,我们对原始源代码重新格式化;我们添加了换行符并重新调整了缩进,以适应书本印刷的页面宽度。在某些情况下,我们还使用了行连续标记(➥)。
我们在很多代码清单中添加了代码注释,以突出显示重要概念。