

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

# 最佳实践
<a name="best-practices"></a>

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

## 大数据存储最佳实践
<a name="storage-best-practices"></a>

下表描述了在 Amazon S3 上存储用于大数据处理负载的文件的常见最佳实践。最后一列是您可以设置的生命周期策略的示例。如果启用了 [Amazon S3 Intelligent-Tiering](https://aws.amazon.com/s3/storage-classes/intelligent-tiering/)（可在数据访问模式自动更改时自动节省存储成本），则无需手动设置策略。


|  |  |  | 
| --- |--- |--- |
| **数据层名称** | **描述** | **生命周期策略示例** | 
| Raw | 包含未经处理的原始数据<br />**注意**：对于外部数据源，原始数据层通常是数据的 1:1 副本，但是在数据采集过程中，可以根据 AWS 区域 或日期按密钥对数据进行分区。 AWS  | 一年后，将文件移到 S3 Standard-IA [存储类别](https://docs.aws.amazon.com/AmazonS3/latest/userguide/storage-class-intro.html)。在 S3 Standard-IA 中保存两年后，将文件归档在 [Amazon Simple Storage Service Glacier（Amazon S3 Glacier）](https://docs.aws.amazon.com/amazonglacier/latest/dev/introduction.html)中。<br />从 2025 年 12 月 15 日起，Amazon Glacier（最初基于独立文件库的服务）将不再接受新客户，对现有客户不存在任何影响。<br />Amazon Glacier 是一项独立的服务 APIs ，拥有自己的服务，可将数据存储在文件库中，不同于亚马逊 S3 和 Amazon S3 Glacier 存储类别。在 Amazon Glacier 中，您现有的数据将确保安全，并且可以无限期地访问。无需进行迁移。对于低成本、长期的存档存储， AWS 建议[使用 Amazon S3 Glacier 存储类别，这些存储类别](https://aws.amazon.com/s3/storage-classes/glacier/)基于S3存储桶 APIs、完全 AWS 区域 可用性、更低的成本和 AWS 服务集成，可提供卓越的客户体验。如果您想要增强功能，可以考虑使用我们的[AWS 解决方案指南迁移到 Amazon S3 Glacier 存储类，将数据从 Amazon S3 保管库传输到 Amazon S3 Glacier 存储类](https://aws.amazon.com/solutions/guidance/data-transfer-from-amazon-s3-glacier-vaults-to-amazon-s3/)。 | 
| 舞台 | 包含针对消费进行了优化的中间处理数据<br />**示例**：CSV 到 Apache Parquet 转换的原始文件或数据转换 | 您可以在定义的时间段后或根据组织的要求删除数据。<br />您可以在较短的时间后（例如，90 天后）从数据湖中删除一些数据衍生（例如，原始 JSON 格式的 Apache Avro 转换）。 | 
| 分析 | 包含针对您的特定使用案例的聚合数据，并以立即可用的格式呈现<br />**示例**：Apache Parquet | 您可以在将数据移到 S3 Standard-IA，然后在定义的时间段后或根据组织的要求删除数据。 | 

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

![分区策略图](http://docs.aws.amazon.com/zh_cn/prescriptive-guidance/latest/modern-data-centric-use-cases/images/partitioning_strategy.png)


## 技术最佳实践
<a name="technical-best-practices"></a>

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


|  |  | 
| --- |--- |
| **领域** | **最佳实践** | 
| SQL | 通过投影数据属性，来减少必须查询的数据量。您可以使用数据投影来扫描并仅返回表中某些必需列，而不是解析整个表。<br />如果可能，请避免大型联接，因为多个表之间的联接会因资源密集型需求而对性能造成极大的影响。 | 
| Apache Spark | 通过工作负载分区@@ [优化 Spark 应用程序](https://aws.amazon.com/blogs/big-data/optimizing-spark-applications-with-workload-partitioning-in-aws-glue/) AWS Glue （AWS 大数据博客）。<br />在 AWS Glue （AWS 大数据博客）中@@ [优化内存管理](https://aws.amazon.com/blogs/big-data/optimize-memory-management-in-aws-glue/)。 | 
| 数据库设计 | 遵循[数据库架构最佳实践](https://aws.amazon.com/architecture/databases/?cards-all.sort-by=item.additionalFields.sortDate&cards-all.sort-order=desc&awsf.content-type=*all&awsf.methodology=*all)（AWS 架构中心）。 | 
| 数据修剪 | 使用 `catalogPartitionPredicate` 进行[服务器端分区修剪](https://docs.aws.amazon.com/glue/latest/dg/partition-indexes.html)。 | 
| 扩展 | 了解并实施[水平扩缩](https://wa.aws.amazon.com/wellarchitected/2020-07-02T19-33-23/wat.concept.horizontal-scaling.en.html)。 | 