1. Azure 上的数据工程入门
Azure 上的数据工程简介
在大多数组织中,数据工程师是负责以下工作的主要角色:将各种结构化和非结构化数据系统中的数据集成、转换和合并到适合构建分析解决方案的结构中。
在给定一组特定的业务要求和约束的情况下,Azure 数据工程师还有助于确保数据管道和数据存储是高性能、高效、有组织的和可靠的。
什么是数据工程
数据工程师通常会处理多种类型的数据,使用许多适合其单个组织的脚本或编码语言来执行许多操作。
数据类型
主要涉及到三种类型的数据:
- 结构化:关系型数据库、CSV
- 半结构化:JSON,这些数据可能需要在加载到源系统之前进行平展
- 非结构化:包括存储为不符合标准关系模型的键值对的数据,而其他常用的非结构化数据类型包括可移植数据格式 (PDF)、字处理器文档和图像
数据操作
作为数据工程师,你将在 Azure 中执行的一些主要任务包括数据集成、数据转换和数据合并。
- 数据集成
数据集成需要在操作和分析服务与数据源之间建立链接,以实现在多个系统之间安全可靠地访问数据。
例如,业务流程可能依赖于分布在多个系统的数据,数据工程师需要建立链接,以便可以从所有这些系统中提取所需的数据。 - 数据转换
操作数据通常需要转换为适合的结构和格式以供分析,常属于提取、转换和加载 (ETL) 过程的一部分。
虽然提取、加载和转换 (ELT) 的方式具有越来越多的变化,但该数据可用于将数据快速引入数据湖,然后应用“大数据”处理技术对其进行转换。
无论使用哪种方法,数据都用于支持下游分析需求。 - 数据整合
数据合并是将已从多个数据源提取的数据合并为一个一致结构的过程,通常用于支持分析和报告。
通常,这会从操作系统提取、转换数据并将其加载到分析存储(如数据湖或数据仓库)中。
重要的数据工程概念
- 操作和分析数据
操作数据通常是由应用程序生成和存储的事务数据,通常位于关系数据库或非关系数据库中。 “分析”数据是已针对分析和报告进行优化的数据,通常位于数据仓库中。
数据工程师的核心职责之一是设计、实现和管理解决方案,以集成操作和分析数据源或从多个系统中提取操作数据,将其转换为适当结构进行分析,并将其加载到分析数据存储(通常称为 ETL 解决方案)。 - 流式处理数据
流式处理数据是指实时生成数据值的永久数据源,通常与特定事件相关。 流式处理数据的常见源包括物联网 (IoT) 设备和社交媒体源。
数据工程师通常需要实现可捕获实时数据流并将其引入分析数据系统的解决方案,通常会将实时数据与批量处理的其他应用程序数据合并。 - 数据管道
数据管道用于协调传输和转换数据的活动。
管道是数据工程师实现可重复提取、转换和加载 (ETL) 解决方案的主要方式,这些解决方案可以根据计划或事件响应触发。 - 数据湖 Data Lake
数据湖是一个存储库,能够以原生原始格式保存大量数据。
Data Lake Store 经过优化,可扩展到海量(TB 或 PB)数据。这些数据通常来自多个异类源,可以是结构化的、半结构化的或非结构化的。
Data Lake 的理念是指以原始的非转换状态存储一切内容。此方法不同于传统的数据仓库,后者在引入数据时对数据进行转换和处理。 - 数据仓库
数据仓库是一个集中式存储库,其中保存了一个或多个不同源的集成数据。 数据仓库将当前数据和历史数据存储在关系表中,这些表已整理为可优化分析查询性能的架构。
数据工程师负责设计和实现关系数据仓库,以及管理表中的常规数据加载。 - Apache Spark
Apache Spark 是一种并行处理框架,利用了内存中处理和分布式文件存储。这是一种常见开源软件 (OSS) 工具,适用于大数据场景。
数据工程师需要熟练使用 Spark,使用笔记本和其他代码项目来处理数据湖中的数据,并为建模和分析做好准备。
Azure 中的数据工程
Microsoft Azure 包含许多可用于实现和管理数据工程工作负载的服务。
此图显示典型企业数据分析解决方案的流(从左到右),包括一些可能使用的主要 Azure 服务。操作数据由应用程序和设备生成,并存储在 Azure 数据存储服务中,例如 Azure SQL 数据库、Azure Cosmos DB 和 Microsoft Dataverse。 流式处理数据在事件代理服务(如 Azure 事件中心)中捕获。
必须捕获此操作数据并将其引入和合并到分析存储中;从中可以通过报表和仪表板对其进行建模并进行可视化。 这些任务代表着数据工程师负责的主要领域。
用于实现数据工程工作负载的核心 Azure 技术包括:
- Azure Synapse Analytics
- Azure Data Lake Storage Gen2
- Azure Stream Analytics
- Azure Data Factory
- Azure Databricks
使用由数据工程工作负载生成的数据填充的分析数据存储支持数据建模和可视化,以供报告和分析,并且通常会使用 Microsoft Power BI 等复杂可视化工具。