最佳实践 - AWS 规范性指导

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

最佳实践

我们建议您遵循存储和技术最佳实践。这些最佳实践可以帮助您充分利用以数据为中心的架构。

大数据存储最佳实践

下表描述了在 Amazon S3 上存储用于大数据处理负载的文件的常见最佳实践。最后一列是您可以设置的生命周期策略的示例。如果启用了 Amazon S3 智能分层(可在数据访问模式自动更改时自动节省存储成本),则无需手动设置策略。

数据层名称

描述

生命周期策略策略示例

Raw

包含未经处理的原始数据

注意:对于外部数据源,原始数据层通常是数据的 1:1 副本,但在 AWS 上,可以根据 AWS 地区或摄取过程中的日期按密钥对数据进行分区。

一年后,将文件移至 S3 标准 — IA 存储类别。在 S3 Standard-IA 工作两年后,将文件存档到亚马逊简单存储服务 Glacier(亚马逊 S3 Glacier)中。

舞台

包含针对消费进行了优化的中间处理数据

示例:CSV 到 Apache Parquet 转换的原始文件或数据转换

您可以在定义的时间段后删除数据,也可以根据组织的要求删除数据。

您可以在较短的时间后(例如,90 天后)从数据湖中移除一些数据衍生物(例如,原始 JSON 格式的 Apache Avro 转换)。

Analytics

包含您的特定用例的汇总数据,采用可供消费的格式

示例:阿帕奇实木复合地板

您可以将数据移至 S3 Standard-IA,然后在规定的时间段后或根据组织的要求删除数据。

下图显示了可以在所有数据层中使用的分区策略(对应于一个 S3 文件夹/前缀)的示例。我们建议您根据下游的数据使用方式选择分区策略。例如,如果报告基于您的数据构建(报告中最常见的查询会根据区域和日期筛选结果),则请确保将区域和日期作为分区包括在内,以提高查询性能和运行时间。

分区策略图

最佳技术实践

最佳技术实践取决于您在设计以数据为中心的架构时使用的特定 AWS 服务和处理技术。但是,我们建议您记住以下最佳实践。这些最佳实践适用于典型的数据处理用例。

领域

最佳实践

SQL

通过在数据上投影属性来减少必须查询的数据量。您可以使用数据投影来扫描并仅返回表中某些必需的列,而不是解析整个表。

如果可能,请避免大型联接,因为多个表之间的联接会因资源密集型需求而显著影响性能。

Apache Spark

使用 AWS Glue 中的工作负载分区@@ 优化 Spark 应用程序(AWS 大数据博客)。

在 AWS Glue(AWS 大数据博客)中@@ 优化内存管理

数据库设计

遵循数据库架构最佳实践(AWS 架构中心)。

数据修剪

使用服务器端分区修剪。 catalogPartitionPredicate

扩展

了解并实现水平扩展