数据工程之道:设计和构建健壮的数据系统_【美】乔·里斯;马特·豪斯利_AZW3_MOBI_EPUB_PDF_电子书(无页码)_【美】乔·里斯;马特·豪斯利
内容节选
第5章源系统中的数据生成 欢迎来到数据工程生命周期的第一阶段:源系统中的数据生成。正如我们之前所描述的,数据工程师的工作是从源系统获取数据,对其进行处理,使其有助于为下游用例提供服务。但在获取原始数据之前,你必须了解数据存在于何处、如何生成以及其特征和特性。 本章涵盖一些流行的操作型源系统模式和重要的源系统类型。现在有许多数据生成的源系统,我们无法详尽列举所有这些系统。我们重点关注数据生成的源系统以及你在使用源系统时应该考虑的事项。我们还将讨论数据工程的底层设计,以及如何将其应用于数据工程生命周期的第一阶段(如图5-1所示)。 图5-1:源系统为数据工程生命周期的其余部分生成数据 随着数据的激增,尤其是共享数据(接下来讨论)的兴起,我们预计数据工程师的角色将在很大程度上转向理解数据源和目的地之间的相互作用。数据工程的最基本的数据管道任务——将数据从A移动到B——将大大简化。另外,了解在源系统中生成的数据的特性仍至关重要。 5.1 数据源:数据是如何生成的? 即使你已经了解生成数据系统的各种底层操作模式,了解数据的生成方式仍然至关重要。数据是无组织的、缺乏内容描述的事实和数据特征的集合。它可以通过多种方式生成,包括模拟的或数字的。 模拟数据是在现实世界中生成的,例如语音、手语、纸上书写或演奏乐器。这种模拟数据通常是瞬态的,如通常的口头对话,在对话结束后声音数据也就消失了。 数字数据要么是通过将模拟数据转换为数字形式生成的,要么是数字系统直接生成的。模拟到数字的一个示例是将模拟语音转换为数字文本的移动短信应用程序。数字系统生成数据的一个例子是电子商务平台上的信用卡交易信息。客户下订单,交易记入他们的信用卡,交易信息保存到各种数据库中。 我们将在本章中使用一些常见例子,例如在与网站或移动应用程序交互时创建的数据。但事实上,数据在我们周围的世界无处不在。物联网设备、信用卡终端、望远镜传感器、股票交易等都在生成数据。 熟悉你的源系统及其生成数据的方式。阅读更多的源系统文档并理解其模式和特性。如果你的源系统是RDBMS,则需要了解它是如何操作的(写入、提交、查询等),对源系统的了解程度会影响你从中获取数据的能力。 5.2 源系统:主要观点 源系统以各种方式生成数据。本节将讨论你在使用源系统时经常遇到的主要观点。 5.2.1 文件和非结构化数据 文件是字节序列,通常存储在磁盘上。应用程序经常将数据写入文件。文件可以存储本地参数、事件、日志、图像和音频。 此外,文件是一种通用的数据交换媒介。尽管数据工程师希望能够以编程方式获取数据,但世界上很多地方仍在发送和接收文件。例如,如果你从政府机构获取数据,则很有可能将数据下载为Excel、CSV文件,或通过电子邮件接收文件。 作为数据工程师,你将遇到的主要源文件格式类型(手动生成或源系统输出的文件)有Excel、CSV、TXT、JSON和XML。这些文件各有特点,可以是结构化的(Excel、CSV)、半结构化的(JSON、XML、CSV)或非结构化的(TXT、CSV)。作为数据工程师,你会大量使用某些格式(例如Parquet、ORC和Avro),我们稍后会介绍这些格式,并将重点放在源系统文件上。第6章将介绍文件的技术细节。 5.2.2 API 应用程序接口是系统间交换数据的标准方式。理论上,API简化了数据工程师的数据获取任务。在实践中,许多API仍然存在许多针对数据的复杂性,需要工程师管理。即使随着各种服务和框架以及自动化API数据获取服务的兴起,数据工程师也必须投入大量资金和相当多的精力用于维护自定义的API连接。我们将在本章后面更详细地讨论API。 5.2.3 应用程序数据库(OLTP系统) 应用程序数据库存储应用程序的状态。一个标准示例是存储银行账户余额的数据库。随着客户交易和付款的发生,应用程序会更新银行账户余额。 通常,应用程序数据库是联机事务处理系统——以高速率读取和写入单个数据记录的数据库。OLTP系统通常被称为事务数据库,但这并不一定意味着所讨论的系统支持原子事务。 更确切来说,OLTP数据库支持低延迟和高并发。RDBMS数据库可以在不到一毫秒的时间内选取或更新一行(不考虑网络延迟)并且每秒处理数千次读取和写入。文档数据库集群可以通过降低一致性来获取更高的文档提交率。一些图数据库还可以处理事务用例。 从根本上说,当成千上万甚至数百万用户可能同时与应用程序交互、同时更新和写入数据时,OLTP数据库可以很好地作为应用程序后端。OLTP系统不太适合由大规模分析驱动的用例,由于其单个查询也必须扫描大量数据。 ACID 对原子事务的支持是数据库关键特征之一,统称为ACID(你可能还记得第3章我们所提,这代表原子性、一致性、隔离性、持久性)。一致性意味着数据库的任何读取检索都将返回最后写入版本......
- 信息
- O'Reilly Media, Inc.介绍
- 本书赞誉
- 译者序
- 前言
- 第一部分 基础和构建块
- 第1章 数据工程概述
- 第2章 数据工程生命周期
- 第3章 设计好的数据架构
- 第4章 根据数据生命周期选择技术
- 第二部分 深入数据工程生命周期
- 第5章 源系统中的数据生成
- 第6章 存储
- 第7章 获取
- 第8章 查询、建模和转换
- 第9章 为分析、机器学习和反向ETL提供数据服务
- 第三部分 安全、隐私和数据工程的未来
- 第10章 安全和隐私
- 第11章 数据工程的未来
- 附录A 序列化和压缩技术的细节
- 附录B 云网络
- 关于作者
- 关于封面