读数据工程之道:设计和构建健壮的数据系统33未来
1. 未来
1.1. 运营的优先级和最佳实践与技术可能会改变,但生命周期的主要阶段会在许多年内保持不变
1.2. 随着组织以新的方式利用数据,将需要新的基础、系统和工作流来满足这些需求
1.3. 如果工具变得更容易使用,数据工程师就会向价值链上游移动,专注于更高级别的工作
1.4. 数据工程生命周期不会很快消失
1.5. 简化的、易用的工具继续降低着数据工程师的准入门槛
1.6. 大数据相关技术总会青出于蓝
-
1.6.1. 谷歌BigQuery是GFS和MapReduce的后裔,可以查询PB级的数据
-
1.6.2. 云的出现导致开源工具的使用产生重大转折
-
1.6.3. 云托管的开源工具与云专有的服务一样容易使用
-
1.6.3.1. 有高度专业化需求的公司也可以部署云托管的开源,然后如果它们需要定制底层代码,再转向到自管理的开源工具
1.7. 现成的数据连接器越来越受欢迎
- 1.7.1. 新一代的托管连接器是非常引人注目的,即使对专精于此的工程师来说也是如此,因为他们开始认识到这种工具可以节省时间和精力
1.8. 技术趋势不仅是由那些造轮子的人决定的,也是由那些用好轮子的人决定的
-
1.8.1. 有效地使用工具与创造工具同样重要
-
1.8.2. 下一步可以找机会应用实时技术、改善用户体验、创造价值,并定义全新的应用程序类型
2. 云数据操作系统及其高互通性
2.1. 类似操作系统服务,但规模要更大,在许多机器上运行而不是单一的服务器
2.2. 云数据操作系统这一概念的进化的下一个前沿将在更高层级发展
2.3. 新一代文件格式(如Parquet和Avro)已经开始用于云数据交换,大大改善了CSV互操作性和原生JSON的性能
2.4. 数据API生态系统的另一个关键部分是包括了模式和数据层级的元数据目录,目前普遍使用的是传统的Hive Metastore
- 2.4.1. 元数据将在数据互操作性方面发挥关键作用,包括跨应用程序和系统以及跨云和网络,并推动自动化和简化
2.5. 管理云数据服务的脚手架也会有重大改进
-
2.5.1. Apache Airflow已经成为第一个真正面向云的数据任务编排平台
-
2.5.2. 下一代的数据编排平台将以增强数据集成和数据可感知性为特征
-
2.5.2.1. 任务编排平台将与数据目录和数据血缘集成,数据可感知性因此会极大增强
2.6. 流管道和数据库能够获取和查询流数据
- 2.6.1. Apache Pulsar这样的工具为指明了未来,即流式DAG可以用相对简单的代码来部署复杂的转换
2.7. 更复杂的移动操作系统沙盘框架并没有淘汰移动应用程序开发人员
- 2.7.1. 移动应用程序开发人员现在可以专注于构建质量更好、更复杂的应用程序
2.8. 云数据操作系统范式提高了各种应用程序和系统的互操作性和简易性
3. “企业级”数据工程
3.1. 数据工具的日益简化和最佳实践的流传意味着数据工程将变得更加“企业级”
3.2. 曾经只给巨型组织使用的技术和实践正在向下游渗透
3.3. 大数据和流数据曾经的困难部分现在已经被抽象化,重点转移到了易用性、互操作性和其他改进上
4. 数据工程师的头衔和职责将发生的变化
4.1. 许多数据科学家是通过一个有机的过程转变为数据工程师的
4.2. 这类跨角色但专注于机器学习的新工程师将了解算法、机器学习技术、模型优化、模型监控和数据监控
4.3. 主要任务将是创建或利用自动训练模型的系统、监控性能,并将众所周知的模型类型变为整套可运作的机器学习流程
4.4. 可能改变的职位发生在软件工程和数据工程的交叉点上
- 4.4.1. 软件工程师将需要对数据工程有更深入的了解,学习如流处理、数据管道、数据建模和数据质量等方面的专业知识
5. 迈向实时数据栈
5.1. 现代数据栈(Modern Data Stack,MDS)并不那么现代
-
5.1.1. MDS基本上是现代云和SaaS技术对旧数据仓库实践的重新包装
-
5.1.2. MDS是围绕云数据仓库范式建立的,因此它与下一代实时数据应用程序的潜力相比有一些严重的限制
-
5.1.3. 现实的需求正在超越基于数据仓库的内部分析和数据科学,需要用下一代实时数据库为整个企业和应用程序提供实时支持
-
5.1.4. MDS将自己限制在视数据为有界的批处理技术上
5.2. 目前大多数看板和报表在回答“是什么”和“什么时间”
-
5.2.1. 如果直接知道怎么做了,为什么还要再看报表呢?
-
5.2.1.1. “做什么”就可以自动化了
5.3. 真正的实时数据应用程序,在点击按钮时提供所需要的行动,同时在幕后进行极其复杂但快速的数据处理和机器学习
- 5.3.1. ELT、云数据仓库和SaaS数据管道的抽象无疑改变了许多公司的游戏规则,为BI、分析和数据科学开辟了新的力量
5.4. 实时技术的民主化将引导我们走向MDS的续集:实时数据栈的上市和普及
-
5.4.1. 将通过流技术将实时分析和机器学习融合到应用程序中,涵盖从应用程序源系统到数据处理再到机器学习的整个数据生命周期,循环往复
-
5.4.2. 将企业内部的数据仓库和管道技术带给大众一样,实时数据栈将精英科技公司使用的实时数据应用程序技术作为易于使用的云产品提供给各种规模的公司
5.5. 实时数据应用程序将数据视为无界的、连续的流
-
5.5.1. 流式管道和实时分析数据库作为两个核心技术,将促进MDS到实时数据栈的转变
-
5.5.2. 流数据将用其更多业务用途证明这种预期
-
5.5.3. 流式传输将从根本上改变组织技术和业务流程
5.6. 实时分析数据库可以实现对这些数据的快速获取和亚秒级的查询
-
5.6.1. 数据可以被扩充或与历史数据集相结合
-
5.6.2. 当与流式管道和自动化相结合时,或者与实时分析的仪表板结合时,一个全新的可能性就出现了
-
5.6.2.1. 将不再受制于运行缓慢的ELT流程、间隔15分钟的更新,或其他要等待的环节,数据变成了连续流动的
5.7. 随着流式获取变得越来越普遍,批量获取将越来越少
-
5.7.1. 将从ELT(也就是数据库内转换)转变为更像ETL的东西
-
5.7.2. 在流的语境下数据抽取是一个持续的、连续的过程
-
5.7.3. 批量转换不会完全消失
-
5.7.3.1. 批处理对于模型训练、季度报表等仍将非常有用
-
5.7.4. 流式转换将成为常态
5.8. 数据仓库和数据湖对于容纳大量的数据和执行点对点查询是很好的,但它们对于低延迟的数据获取或对快速传输的数据的查询却没有那么好的优化
5.9. 实时数据栈将由专门为流而设计的OLAP数据库驱动
- 5.9.1. 像Druid、ClickHouse、Rockset和Firebolt这样的数据库在为下一代数据应用的后端赋能方面处于领先地位
5.10. ⑩数据与应用程序的融合
-
5.10.1. 应用程序栈将成为数据栈,反之亦然
-
5.10.2. 应用程序将集成实时自动化和决策,由流式管道和机器学习驱动
-
5.10.3. 数据工程生命周期不一定会改变,但生命周期各阶段之间的时间将大幅缩短
5.11. ⑾应用程序和机器学习之间的紧密反馈循环
-
5.11.1. 应用程序和机器学习的融合
-
5.11.2. 当下,应用程序和机器学习是不相干的系统,就像应用程序和分析那样是分离开的
-
5.11.2.1. 软件工程师、数据科学家和机器学习工程师相互独立工作
-
5.11.3. 机器学习非常适用于那些数据生成的速度和数量惊人到无法手动处理的场景
-
5.11.4. 随着数据规模和速度的增长,机器学习会变得适用于所有场景
-
5.11.5. 大量快速移动的数据,加上复杂的工作流和步骤,能让机器学习一展身手
-
5.11.6. 随着数据反馈回路的缩短,我们预计大多数应用程序都能集成机器学习
-
5.11.6.1. 随着数据的快速移动,应用程序和机器学习之间的反馈循环将变得紧密
-
5.11.6.2. 实时数据栈中的应用程序应当是智能的,并能够实时适应数据的变化
5.12. ⑿电子表格
-
5.12.1. 电子表格的用户群在7亿~20亿人之间
-
5.12.2. 电子表格是数据世界的“暗物质”
-
5.12.3. 大量的数据分析都是在电子表格中运行的,从不属于我们在本书中描述的复杂的数据系统
-
5.12.4. 电子表格是一种支持复杂分析的交互式数据应用程序
-
5.12.5. 与pandas(Python数据分析库)等纯粹的基于代码的工具不同,电子表格可以被各种用户使用,从那些只知道如何打开文件和看报表的用户到可以编写复杂的程序性数据处理的高级用户