受管表的存储优化 - Amazon Lake Formation
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

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

受管表的存储优化

默认情况下,创建受管控表时所有存储优化功能均处于启用状态。其中包括数据压缩和垃圾收集。

压缩数据

受管表的一个重要用例是流式传输数据或其他应用程序,在这些应用程序中,小块数据会持续进入 Amazon S3 数据湖。一个表可能会增长到数千个 Amazon S3 对象。每个受管控的表都保留一个表现它标识表中包含的所有 Amazon S3 对象。该清单经过版本控制和自动更新,以确保您始终看到一致的表视图。

注意

数据压缩优化器会持续监控您的表分区,并在超过文件数量和文件大小的阈值时启动。Lake Formation 在不干扰并发查询的情况下进行压缩。目前,仅对 Parquet 格式的分区表支持压缩。

垃圾回收

受管表的另一项存储优化功能通过删除不再属于受管表的 Amazon S3 对象来帮助降低存储成本。如果在将对象添加到受管表的清单时取消事务,则不会自动清理这些对象。这是为了允许在无需重新生成数据的情况下重试交易。在某些情况下,最好从已取消的事务中移除对象。

要使用此功能DeleteObjectsOnCancel在调用 S3 之前PutObject. 这告诉 Lake Formation 异步删除这些文件以帮助节省成本。调用DeleteObjectsOnCancel提供在 Amazon S3 中止时从 Amazon S3 中删除对象的授权。此功能无法手动禁用。有关中止事务和移除不需要的对象的更多信息,请参阅回滚Amazon S3 写入.

注意

数据压缩仅适用于 Parquet 分区表。

使用存储优化的先决条件

必须先完成中所述的设置说明,然后才能使用数据压缩为使用受管控表的自动数据压缩做好准备.

为受管控的表禁用和重新启用数据压缩

为了提高 ETL 任务和分析服务的性能,Lake Formation 会自动将受管表中的小型 Amazon S3 数据元压缩为更大的对象。默认情况下,对受管控的表启用数据压缩。您可以对单个受管控的表禁用压缩,稍后再重新启用压缩。

可以使用 Lake Formation 控制台或 Lake Formation 控制台启用和禁用数据压缩Amazon CLI.

Console

为受管控的表禁用或重新启用数据压缩

  1. 通过 https://console.aws.amazon.com/lakeformation/ 中打开 Lake Formation 控制台。

    以数据湖管理员、表创建者或被授予以下权限的用户身份登录glue:UpdateTable许可和Lake FormationALTER桌上的权限。

  2. 在导航窗格中,选择

  3. 选择表名旁边的选项按钮操作菜单中编辑.

    注意

    确保选择受管控的表。受管表的第一个版本Enabled (已启用)中的治理column.

  4. 在存储库的编辑表页面上,执行以下操作之一

    • UNDER数据管理和安全,请选择或清除自动压缩选项。

  5. 选择Save(保存)。

Amazon CLI

例如,要禁用压缩功能Amazon CLI命令。

aws update-table-storage-optimizer --database-name database-name --table-name table-name --storage-optimizer-config '{"compaction" :{"is_enabled": "false"}}')

要为表重新启用数据压缩,请使用相似的代码,但将值设置为is_enabledtrue.

检查受管理的表压缩状态

对于受管控的表,您可以查看已取消事务优化器的数据压缩状态和删除对象,方法是在控制台中查看该表,或者运行Amazon CLI命令。

Console

检查受管表的压缩状态

  1. 通过 https://console.aws.amazon.com/lakeformation/ 中打开 Lake Formation 控制台。

    以数据湖管理员、表创建者或被授予以下权限的用户身份登录glue:GetTable许可和桌面上的任何 Lake Formation 许可。

  2. 在导航窗格中,选择

  3. 在存储库的页面上。

  4. UNDER表详细信息,向下滚动到治理和加速详细信息部分。

    
                    治理和加速详细信息部分有两列。左栏包含以下信息:压缩、(状态)成功、(灰显)显示警告消息和结果 “状态=已完成”, RunTime=1005715, StartTime=2021-09-22T 18:12:47 .740Z, CompactedFiles=3982 CompactedBytes=1119504421。右列包含以下信息:垃圾收集、(状态)成功、(灰显)显示警告消息和结果 “status=已完成, RunTime=20258 StartTime=2021-09-21T 00:03:13 .246Z, FilesReceived=100 FilesRemoved=100 FilesUnableToRemove=0。
Amazon CLI

使用与以下类似的命令查看与特定表关联的所有加速的配置和上次运行状态。

aws list-table-storage-optimizers --database-name database-name --table-name table-name

以下是此命令的响应示例。

[ { StorageOptimizerType: "compaction", config: { "state": "enabled" }, errorMessage: "", lastRunDetails: "lastRunTime: December 14, 2021. Compacted 1000 objects" }, { StorageOptimizerType: "garbage_collection", config: { "state": "disabled" }, errorMessage: "IAM role is missing DeleteObject permissions", lastRunDetails: "lastRunTime: December 14, 2021. Collected 1000 objects" } ]