

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 数据工程
<a name="data-eng"></a>

**自动化和编排组织中的数据流。**

使用元数据自动化用于处理原始数据并生成优化输出的[管线](https://aws.amazon.com/glue/)。利用 AWS CAF 平台架构和平台工程能力及运营视角中定义的现有架构护栏和安全控制。与平台工程支持团队合作，为简化管线部署的常见模式开发可重复使用的[蓝图](https://aws.amazon.com/blogs/big-data/simplify-data-integration-pipeline-development-using-aws-glue-custom-blueprints/)。 

## 启动
<a name="data-eng-start"></a>

### 部署数据湖
<a name="data-eng-datalake"></a>

通过为结构化和非结构化数据使用合适的存储解决方案，建立基础数据存储能力。这使您能够收集和存储来自各种来源的数据，并使这些数据可供进一步处理和分析。数据存储是数据工程策略的关键组成部分。精心设计的数据存储架构使组织能够经济高效地存储、管理和访问数据。AWS 提供各种数据存储服务，来满足特定的业务需求。

例如，您可以使用 [Amazon Simple Storage Service（Amazon S3）](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html)用于对象存储、使用 [Amazon Relational Database Service（Amazon RDS）](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Welcome.html)用于关系数据库及使用 [Amazon Redshift](https://docs.aws.amazon.com/redshift/latest/dg/welcome.html) 用于数据仓库，从而建立基础数据存储能力。这些服务可帮助您安全、经济高效地存储数据，并使数据易于访问以供进一步处理和分析。我们建议您同时实施数据存储最佳实践（例如数据分区和压缩），以提高性能并降低成本。

### 开发数据摄取模式
<a name="data-eng-ingestion"></a>

要自动化和编排数据流，请建立数据摄取流程，以从各种来源（包括数据库、文件和 API）收集数据。您的数据摄取流程应支持业务敏捷性，并将治理控制考虑在内。

编排工具应该能够运行基于云的服务，并提供自动调度机制。它应该为任务之间的条件链接和依赖关系提供选项，以及轮询和错误处理功能。此外，它还应与提醒和监控系统无缝集成，以确保管线平稳运行。

一些热门的编排机制包括：
+ *基于时间的编排*以递归间隔和定义的频率启动工作流程。
+ *基于事件的编排*会根据发生的事件（例如创建文件或 API 请求）启动工作流程。
+ *轮询*实现了一种机制，在这种机制中，任务或工作流程调用服务（例如，通过 API）并等待定义的响应，然后再继续下一步。

现代架构设计强调利用托管服务来简化云中的基础设施管理，并减轻开发者和基础设施团队的负担。此方法也适用于数据工程。我们建议您在适用的情况下使用托管服务来构建数据摄取管线，以加快数据工程流程。这些类型的服务的两个示例是 Amazon Managed Workflows for Apache Airflow（Amazon MWAA）和 AWS Step Functions：
+ **Apache Airflow** 是一款热门编排工具，用于以编程方式创作、安排和监控工作流程。AWS 将 [Amazon Managed Workflows for Apache Airflow（Amazon MWAA）](https://docs.aws.amazon.com/mwaa/latest/userguide/what-is-mwaa.html)作为托管服务提供，使开发者能够专注于构建而不是管理编排工具的基础设施。借助 Amazon MWAA，您可以使用 Python 脚本轻松创作工作流程。有向无环图（DAG）以显示每个任务的关系和依赖关系的方式将工作流程表示为任务的集合。您可以随心所欲地拥有任意数量的 DAG，Apache Airflow 将根据每个任务的关系和依赖关系来运行它们。
+ [AWS Step Functions](https://docs.aws.amazon.com/step-functions/latest/dg/welcome.html) 可帮助开发者构建低代码的可视化工作流程，用于自动化 IT 和业务流程。您使用 Step Functions 构建的工作流程称为*状态机*，工作流程的每个步骤都称为*状态*。您可以使用 Step Functions 为内置错误处理、参数传递、建议的安全设置及状态管理创建工作流程。这减少了需要编写和维护的代码数量。任务通过与您在本地或云环境中托管的其他 AWS 服务或应用程序进行协调来执行工作。

### 加速数据处理
<a name="data-eng--processing"></a>

数据处理是理解现代组织收集的大量数据的关键一步。为开始进行数据处理，AWS 提供 [AWS Glue](https://docs.aws.amazon.com/glue/latest/dg/what-is-glue.html) 等托管服务，这些服务提供强大的提取、转换、加载（ETL）功能。各组织可以使用这些服务开始处理和转换原始数据，包括清理、标准化和聚合数据，为分析做好准备。

数据处理从聚合和筛选等简单技术开始，以执行初始数据转换。随着数据处理需求的发展，您可以实施更高级的 ETL 流程，使您能够从各种来源提取数据，对其进行转换以满足您的特定需求，然后将其加载到集中式数据仓库或数据库中进行统一分析。此方法可确保数据准确、完整，且可以及时进行分析。

通过使用 AWS 托管服务进行数据处理，组织可以从更高级别的自动化、可扩展性和成本效益中受益。这些服务可自动执行许多常规数据处理任务（例如架构发现、数据剖析和数据转换），并释放宝贵的资源用于更具战略意义的活动。此外，这些服务会自动扩展以支持不断增长的数据量。

### 提供数据可视化服务
<a name="data-eng-visualization"></a>

想办法向使用数据可视化来有意义、快速地解释数据的决策者提供数据。通过可视化，您可以解释模式并提高不同利益相关者的参与度，无论他们的技术技能如何。一个好的平台使数据工程团队能够预调配资源，从而快速提供数据可视化，而且开销很少。您还可以使用无需工程专业知识即可轻松查询数据存储的工具，从而提供自助服务功能。考虑使用内置工具，该工具可以通过数据可视化和交互式控制面板提供无服务器商业智能，并且可以使用自然语言查询后端数据。 

## 推进
<a name="data-eng-advance"></a>

### 实现近乎实时的数据处理
<a name="data-eng-realtime"></a>

数据处理是任何数据工程管线的重要组成部分，它使组织能够将原始数据转化为有意义的洞察。除了传统批处理之外，在当今快节奏的业务环境中，实时数据处理也变得越来越重要。实时数据处理使组织能够在事件发生时做出响应，并提升决策能力和运营效率。

### 验证数据质量
<a name="data-eng-quality"></a>

数据质量直接影响从数据中得出的洞察和决策的准确性和可靠性。实施数据验证和清洗流程对于确保使用高质量和可信的数据进行分析至关重要。

数据验证包括根据预定义规则和标准检查数据，从而验证数据的准确性、完整性和一致性。这有助于识别数据中的任何差异或错误，并确保其符合用途。数据清洗涉及识别和更正数据中的任何不准确、不一致或重复之处。

通过实施数据质量流程和工具，组织可以提高从数据中获得的洞察的准确性和可靠性，从而改善决策和运营效率。这不仅可以提高组织的绩效，还可以提高利益相关者对所产生的数据和分析的信心和信任。

### 证明数据转换服务
<a name="data-eng-transform"></a>

数据转换为高级分析和机器学习模型准备数据。它涉及使用诸如数据标准化、充实和重复数据删除之类的技术，来确保数据干净、一致且随时可供分析。
+ *数据标准化*涉及将数据组织成标准格式，消除冗余，并确保不同来源的数据保持一致。这使得分析和比较来自多个来源的数据变得更加容易，并使组织能够更全面地了解运营。
+ *数据扩充*涉及使用来自外部来源的额外信息（例如人口统计数据或市场趋势），来增强现有数据。这为客户行为或行业趋势提供了宝贵的洞察，这些洞察仅从内部数据来源中可能看不出来。
+ *重复数据删除*包括识别和删除重复的数据条目，并确保数据准确无误。在处理大型数据集时，这一点尤其重要，因为即使只有很小比例的重复数据也可能导致分析结果出现偏差。

通过使用先进的数据转换技术，组织可以确保其数据质量高、准确，且可以进行更复杂的分析。这有助于做出更好的决策，提高运营效率，并在市场中获得竞争优势。

### 启用数据民主化
<a name="data-eng-democratization"></a>

通过让所有员工都能访问、理解和使用数据，促进数据民主化文化。数据民主化可帮助员工做出数据驱动型决策，并为组织的数据驱动型文化做出贡献。这意味着打破信息孤岛，营造一种文化，让所有员工共享和使用数据来推动决策。

总体而言，数据民主化就是要创造一种文化，在这种文化中，组织中的每个人都重视数据、访问和理解数据。通过实现数据民主化，组织可以培养一种数据驱动型文化，这种文化可以推动创新，改善决策，并最终导致业务成功。

## Excel
<a name="data-eng-excel"></a>

### 提供基于用户界面的编排
<a name="data-eng-ui"></a>

要构建敏捷且使用有效方法的组织，重要的是要规划一个现代化的编排平台，供各业务部门的开发和运营资源使用。目标是在不依赖单一团队、技术或支持模式的情况下开发、部署和共享数据管线和工作流程。这是通过基于用户界面的编排等功能实现的。诸如拖放交互之类的功能使几乎没有技术专业知识的用户能够构建 DAG 和状态机数据流。然后，这些组件可以生成编排数据管线的可执行代码。 

DataOps 有助于克服数据管理的复杂性，并确保组织间的数据无缝流动。元数据驱动型方法可确保数据质量和合规性符合贵组织的规定。对微服务、容器化和无服务器功能等工具集的投资可提高可扩展性和敏捷性。

依靠数据工程团队从数据中创造价值，将日常基础设施任务交给自动化，这使组织能够在自动化和编排方面实现卓越的目标。对数据流管理任务的近乎实时的监控和日志记录支持即时修复措施，并提高数据流管线的性能和安全性。这些原则有助于实现可扩展性和性能，同时确保数据共享模型的安全性，并为组织未来的成功做好准备。

### 集成 DataOps
<a name="data-eng-dataops"></a>

DataOps 是一种现代的数据工程方法，它强调开发和运营流程的集成，以简化数据管线的创建、测试和部署。为了实施 DataOps 最佳实践，组织使用基础设施即代码（IaC）及持续集成和持续交付（CI/CD）工具。这些工具支持自动化管线创建、测试和部署，可显著提高效率并减少错误。DataOps 团队与平台工程支持团队合作构建这些自动化，因此每个团队都可以专注于自己最擅长的事情。 

实施 DataOps 方法有助于为数据工程师、数据科学家和业务用户营造协作环境，并实现数据管线和分析解决方案的快速开发、部署及监控。此方法提供了更顺畅的跨团队沟通和协作，从而加快了创新速度并取得了更好的成果。

要充分利用 DataOps 的优势，简化数据工程流程非常重要。这是通过使用平台工程团队的最佳实践来实现的，包括代码审查、持续集成及自动测试。通过实施这些实践，组织可以确保数据管线可靠、可扩展和安全，并满足业务和技术利益相关者的需求。