使用 Amazon S3 和 Lake Formation 构建数据湖 - 设计模式与治理
介绍以 S3 为存储基础、借助 Lake Formation 实现细粒度访问控制的数据湖设计模式。还讲解 ETL 管道与成本优化。
数据湖的设计模式
数据湖以具有 99.999999999%(11 个 9)持久性的 S3 为存储基础,分阶段管理从原始数据的导入到转换为可分析状态的全过程。着陆区(Raw)按原样保存导入的原始数据,暂存区(Processed)使用 Glue 作业进行类型转换和清洗。整理区(Curated)以 Parquet 格式存放应用了业务逻辑的分析用数据。在 S3 的前缀设计中采用 year/month/day 的分区结构后,Athena 查询会通过分区裁剪减少扫描量。
借助 Lake Formation 的治理
Lake Formation 是集中管理数据湖访问控制的服务。过去需要分别设置 S3 存储桶策略、IAM 策略和 Glue 目录策略。使用 Lake Formation 后,可以在数据库 / 表 / 列 / 行的各个级别进行基于 GRANT/REVOKE 的权限管理。使用基于标签的访问控制(LF-TBAC),可以为数据添加分类标签,并根据标签自动应用访问权限。通过跨账户共享,可以按表为 Organizations 内的其他账户授予访问权限,这也有助于数据网格的构成。
ETL 管道的设计
数据湖的 ETL 管道使用 Glue 作业构建。使用 Glue 爬网程序检测着陆区原始数据的架构,并注册到数据目录。使用 Glue 作业执行类型转换、缺失值处理和去重,并以 Parquet 格式输出到整理区。设置分区键(日期、区域),优化 Athena 的查询性能。使用 Glue 工作流定义多个作业之间的依赖关系,控制爬网程序 → ETL 作业 → 数据质量检查的顺序。使用 EventBridge 以数据到达 S3 为触发自动启动 ETL 管道,在数据到达后不间断地推进更新。
数据湖的成本优化
利用 S3 的存储类别来优化数据湖的成本。将着陆区的原始数据存放在 S3 Standard 中,并设置在 30 天后迁移到 S3 Intelligent-Tiering 的生命周期规则。整理后的数据因查询频繁而保留在 Standard 中,归档区的数据则迁移到 Glacier Instant Retrieval。Athena 的查询成本可以通过 Parquet 格式和适当的分区设计来降低,与 CSV 相比,有时扫描量会减少。适当设置 Glue 作业的 DPU 数量,避免过度分配资源。使用 S3 Storage Lens 可视化每个存储桶的成本明细,定期删除不需要的数据并重新审视存储类别。
分层设计
数据湖常用的设计方法是根据数据的加工阶段划分层级。例如分为存放导入后原样的原始数据的层、经过清洗和整形的层、汇总 / 加工为便于分析的形式的层等阶段。保留原始数据后,日后可以为不同目的重新加工,也可以从头重做加工。明确分离各层后,数据的来历更容易追溯,质量也更容易管理。用户根据目的参考适当层级的数据。分阶段的层级构成是灵活且可复用性高的数据湖的基础。
文件格式与分区
数据湖的性能和成本在很大程度上取决于文件的保存格式和数据的划分方式。以列式格式保存后,分析查询可以只读取所需的列,因此扫描量减少,查询变快,费用也更容易控制。如果事先按日期或属性对数据进行分区,查询时可以只读取所需的范围。另一方面,大量的小文件会降低查询性能,因此需要设法将它们合并为适当的大小。适当设计保存格式 / 分区 / 文件大小,是高效分析大规模数据的重要因素。
元数据与目录管理
数据湖中会积累多种多样的数据,因此需要管理什么数据在哪里的机制。将表定义注册到数据目录中,集中管理数据的结构和位置。可以使用爬网程序自动读取数据的结构,使目录保持最新。导入的数据的结构会随时间变化,因此预先采用能够适应架构演进的设计。有了完善的目录,用户更容易找到所需的数据,并可以从多个分析工具一致地访问。元数据的管理左右着数据湖的易用性。
从数据湖到湖仓
传统的数据湖虽然可以低成本地保管大量数据,但不擅长管理更新和一致性。弥补这一点的,是利用能在数据湖之上进行更新 / 删除和一致性操作的新表格式。使用开放表格式,可以在保持数据湖成本效率的同时,获得像数据仓库那样可靠的数据操作以及参考过去某个时间点数据的功能。可以从多个分析引擎一致地处理同一张表。这种整合了存储与仓库优势的方法,正在拓宽数据平台的选择范围。
总结
结合 S3 和 Lake Formation 的数据湖,是通过 3 层结构的区划设计分阶段整理数据、并借助 Lake Formation 的细粒度访问控制实施治理的构成。通过 Glue 爬网程序的架构自动检测和列式格式的采用,可以在减少运维工作量的同时提高查询性能。
参考资料(AWS 官方)
本页的第一手信息来源是 AWS 官方网站及官方文档。最新的规格与价格请以下列官方页面为准。
如本页内容与官方文档不一致,请以官方文档为准。