本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
最佳实践
我们建议您遵循存储和技术最佳实践。这些最佳实践可以帮助您充分利用以数据为中心的架构。
大数据存储最佳实践
下表描述了在 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 Glue(AWS 大数据博客)中@@ 优化内存管理 |
数据库设计 | 遵循数据库架构最佳实践 |
数据修剪 | 使用服务器端分区修剪。 |
扩展 | 了解并实现水平扩展 |