表优化器 API
表优化器 API 介绍了用于启用压缩以提高读取性能的 AWS Glue API。
数据类型
TableOptimizer 的结构
包含有关与表相关的优化器详细信息。
字段
-
type– UTF-8 字符串(有效值:compaction="COMPACTION"|retention="RETENTION"|orphan_file_deletion="ORPHAN_FILE_DELETION")。优化器的类型。有效值为:
-
compaction:用于使用表优化器管理压缩。 -
retention:用于使用表优化器管理快照保留。 -
orphan_file_deletion:用于使用表优化器管理孤立文件删除。
-
-
configuration– 一个 TableOptimizerConfiguration 对象。在创建或更新表优化器时指定的
TableOptimizerConfiguration对象。 -
lastRun– 一个 TableOptimizerRun 对象。表示表优化器的上一次运行的
TableOptimizerRun对象。 -
configurationSource– UTF-8 字符串(有效值:catalog="CATALOG"|table="TABLE")。指定优化器配置源。该参数表明表优化器的配置方式以及配置的发起实体或服务。
TableOptimizerConfiguration 的结构
包含有关表优化器配置的详细信息。您可以在创建或更新表优化器时传递此配置。
字段
-
roleArn– UTF-8 字符串,不少于 20 个字节,不超过 2048 个字节,与 Single-line string pattern 匹配。由调用方传递的角色,将向服务授予代表调用方更新与优化器关联的资源的权限。
-
enabled– 布尔值。是否启用表优化。
-
vpcConfiguration– 一个 TableOptimizerVpcConfiguration 对象。表示表优化器 VPC 配置的
TableOptimizerVpcConfiguration对象。此配置是对客户 VPC 中的表进行优化所必需的。
-
compactionConfiguration– 一个 CompactionConfiguration 对象。压缩优化器的配置。此配置用于定义如何压缩表中的数据文件,以提高查询性能并降低存储成本。
-
retentionConfiguration– 一个 RetentionConfiguration 对象。快照保留优化器的配置。
-
orphanFileDeletionConfiguration– 一个 OrphanFileDeletionConfiguration 对象。孤立文件删除优化器的配置。
TableOptimizerVpcConfiguration 结构
描述表优化器 VPC 配置的对象。
此配置是对客户 VPC 中的表进行优化所必需的。
字段
-
glueConnectionName– UTF-8 字符串,至少 1 个字节。用于表优化器 VPC 的 AWS Glue 连接名称。
CompactionConfiguration 结构
压缩优化器的配置。此配置用于定义如何压缩表中的数据文件,以提高查询性能并降低存储成本。
字段
-
icebergConfiguration– 一个 IcebergCompactionConfiguration 对象。Iceberg 压缩优化器的配置。
IcebergCompactionConfiguration 结构
Iceberg 压缩优化器的配置。该配置旨在定义用于优化 Iceberg 表中数据文件布局的参数。
字段
-
strategy– UTF-8 字符串(有效值:binpack="BINPACK"|sort="SORT"|z-order="ZORDER")。用于压缩的策略。有效值为:
-
binpack:将小文件合并成较大的文件(目标大小通常超过 100MB),同时应用任何待执行的删除。对于大多数使用案例,这是推荐使用的压缩策略。 -
sort:在压缩期间根据指定列整理数据,按层次排序,从而提高筛选出的操作的查询性能。当查询经常会筛选特定列时,建议使用此策略。要使用此策略,必须首先在 Iceberg 表属性中使用sort_order表属性定义排序顺序。 -
z-order:通过将多个属性混合成一个可用于排序的标量值来优化数据的组织,从而实现跨多个维度高效查询。需要同时跨多个维度查询数据时,建议使用此策略。要使用此策略,必须首先在 Iceberg 表属性中使用sort_order表属性定义排序顺序。
如果未提供任何输入,则使用默认值“binpack”。
-
-
minInputFiles– 数字(整数)。压缩操作实际压缩文件之前,分区中必须存在的最小数据文件数量。该参数有助于控制压缩触发时机,避免对文件较少的分区执行不必要的压缩操作。如果未输入任何值,则使用默认值 100。
-
deleteFileThreshold– 数字(整数)。数据文件中必须存在的最小删除记录数量,以使其符合压缩条件。该参数通过关注包含大量删除记录的文件来优化压缩过程,移除已删除记录可提升查询性能。如果未输入任何值,则使用默认值 1。
TableOptimizerRun 的结构
包含表优化器运行的详细信息。
字段
-
eventType– UTF-8 字符串(有效值:starting="STARTING"|completed="COMPLETED"|failed="FAILED"|in_progress="IN_PROGRESS")。一种表示表优化器运行状态的事件类型。
-
startTimestamp– 时间戳。表示在 Lake Formation 中启动压缩作业的 epoch 时间戳。
-
endTimestamp– 时间戳。表示压缩作业结束的 epoch 时间戳。
-
metrics– 一个 RunMetrics 对象。包含有关优化器运行的指标的
RunMetrics对象。该成员已弃用。请参阅有关压缩、保留和孤立文件删除的独立指标成员。
-
error– UTF-8 字符串。优化器运行期间出现的错误。
-
compactionMetrics– 一个 CompactionMetrics 对象。包含有关优化器运行的指标的
CompactionMetrics对象。 -
compactionStrategy– UTF-8 字符串(有效值:binpack="BINPACK"|sort="SORT"|z-order="ZORDER")。用于压缩运行的策略。指示为了确定在压缩过程中应如何选择和合并文件而应用的算法。有效值为:
-
binpack:将小文件合并成较大的文件(目标大小通常超过 100MB),同时应用任何待执行的删除。对于大多数使用案例,这是推荐使用的压缩策略。 -
sort:在压缩期间根据指定列整理数据,按层次排序,从而提高筛选出的操作的查询性能。当查询经常会筛选特定列时,建议使用此策略。要使用此策略,必须首先在 Iceberg 表属性中使用sort_order表属性定义排序顺序。 -
z-order:通过将多个属性混合成一个可用于排序的标量值来优化数据的组织,从而实现跨多个维度高效查询。需要同时跨多个维度查询数据时,建议使用此策略。要使用此策略,必须首先在 Iceberg 表属性中使用sort_order表属性定义排序顺序。
-
-
retentionMetrics– 一个 RetentionMetrics 对象。包含有关优化器运行的指标的
RetentionMetrics对象。 -
orphanFileDeletionMetrics– 一个 OrphanFileDeletionMetrics 对象。包含有关优化器运行指标的
OrphanFileDeletionMetrics对象。
BatchGetTableOptimizerEntry 的结构
表示要在 BatchGetTableOptimizer 操作中检索的表优化器。
字段
-
catalogId– 目录 id 字符串,长度不少于 1 个字节或超过 255 个字节,与 Single-line string pattern 匹配。表的目录 ID。
-
databaseName– UTF-8 字符串,至少 1 个字节。表所在的目录中的数据库的名称。
-
tableName– UTF-8 字符串,至少 1 个字节。表的名称。
-
type– UTF-8 字符串(有效值:compaction="COMPACTION"|retention="RETENTION"|orphan_file_deletion="ORPHAN_FILE_DELETION")。优化器的类型。
BatchTableOptimizer 的结构
包含 BatchGetTableOptimizer 操作返回的表优化器之一的详细信息。
字段
-
catalogId– 目录 id 字符串,长度不少于 1 个字节或超过 255 个字节,与 Single-line string pattern 匹配。表的目录 ID。
-
databaseName– UTF-8 字符串,至少 1 个字节。表所在的目录中的数据库的名称。
-
tableName– UTF-8 字符串,至少 1 个字节。表的名称。
-
tableOptimizer– 一个 TableOptimizer 对象。包含有关表优化器配置和上次运行详细信息的
TableOptimizer对象。
BatchGetTableOptimizerError 的结构
包含 BatchGetTableOptimizer 操作所返回错误列表中的某一个错误的详细信息。
字段
-
error– 一个 ErrorDetail 对象。包含有关错误代码和错误消息详细信息的
ErrorDetail对象。 -
catalogId– 目录 id 字符串,长度不少于 1 个字节或超过 255 个字节,与 Single-line string pattern 匹配。表的目录 ID。
-
databaseName– UTF-8 字符串,至少 1 个字节。表所在的目录中的数据库的名称。
-
tableName– UTF-8 字符串,至少 1 个字节。表的名称。
-
type– UTF-8 字符串(有效值:compaction="COMPACTION"|retention="RETENTION"|orphan_file_deletion="ORPHAN_FILE_DELETION")。优化器的类型。
RetentionConfiguration 结构
快照保留优化器的配置。
字段
-
icebergConfiguration– 一个 IcebergRetentionConfiguration 对象。Iceberg 快照保留优化器的配置。
IcebergRetentionConfiguration 结构
Iceberg 快照保留优化器的配置。
字段
-
snapshotRetentionPeriodInDays– 数字(整数)。Iceberg 快照的保留天数。如果未提供任何输入,则将使用相应的 Iceberg 表配置字段;如果该字段不存在,则使用默认值 5。
-
numberOfSnapshotsToRetain– 数字(整数)。保留期内要保留的 Iceberg 快照数量。如果未提供任何输入,则将使用相应的 Iceberg 表配置字段;如果该字段不存在,则使用默认值 1。
-
cleanExpiredFiles– 布尔值。如果设置为 false,则仅从表元数据中删除快照,而不会删除底层数据和元数据文件。
-
runRateInHours– 数字(整数)。保留作业运行的时间间隔(以小时为单位)。该参数控制保留优化器为清理过期快照而运行的频率。该值必须在 3 到 168 小时(7 天)之间。如果未输入任何值,则使用默认值 24。
OrphanFileDeletionConfiguration 结构
孤立文件删除优化器的配置。
字段
-
icebergConfiguration– 一个 IcebergOrphanFileDeletionConfiguration 对象。Iceberg 孤立文件删除优化器的配置。
IcebergOrphanFileDeletionConfiguration 结构
Iceberg 孤立文件删除优化器的配置。
字段
-
orphanFileRetentionPeriodInDays– 数字(整数)。孤立文件在删除之前应保留的天数。如果未提供任何输入,则使用默认值 3。
-
location– UTF-8 字符串。指定要在其中查找文件的目录(默认为表所在的位置)。您可以选择子目录而不是顶层表的位置。
-
runRateInHours– 数字(整数)。孤立文件删除作业运行的时间间隔(以小时为单位)。该参数控制孤立文件删除优化器为清理孤立文件而运行的频率。该值必须在 3 到 168 小时(7 天)之间。如果未输入任何值,则使用默认值 24。
CompactionMetrics 结构
包含有关优化器运行的压缩指标的结构。
字段
-
IcebergMetrics– 一个 IcebergCompactionMetrics 对象。包含有关优化器运行的 Iceberg 压缩指标的结构。
RetentionMetrics 结构
包含有关优化器运行的保留指标的结构。
字段
-
IcebergMetrics– 一个 IcebergRetentionMetrics 对象。包含有关优化器运行的 Iceberg 保留指标的结构。
OrphanFileDeletionMetrics 结构
包含有关优化器运行的孤立文件删除指标的结构。
字段
-
IcebergMetrics– 一个 IcebergOrphanFileDeletionMetrics 对象。包含有关优化器运行的 Iceberg 孤立文件删除指标的结构。
IcebergCompactionMetrics 结构
有关优化器运行的 Iceberg 压缩指标。
字段
-
DpuHours– 数字(double)。作业使用的 DPU 小时数。
-
NumberOfDpus– 数值(整型)。作业消耗的 DPU 数量,向上舍入到最接近的整数。
-
JobDurationInHour– 数字(double)。作业的持续时间(以小时为单位)。
IcebergRetentionMetrics 结构
有关优化器运行的 Iceberg 快照保留指标。
字段
-
DpuHours– 数字(double)。作业使用的 DPU 小时数。
-
NumberOfDpus– 数值(整型)。作业消耗的 DPU 数量,向上舍入到最接近的整数。
-
JobDurationInHour– 数字(double)。作业的持续时间(以小时为单位)。
IcebergOrphanFileDeletionMetrics 结构
有关优化器运行的 Iceberg 孤立文件删除指标。
字段
-
DpuHours– 数字(double)。作业使用的 DPU 小时数。
-
NumberOfDpus– 数值(整型)。作业消耗的 DPU 数量,向上舍入到最接近的整数。
-
JobDurationInHour– 数字(double)。作业的持续时间(以小时为单位)。
RunMetrics 的结构
有关优化器运行的指标。
此结构已弃用。请参阅有关压缩、保留和孤立文件删除的独立指标成员。
字段
-
NumberOfBytesCompacted– UTF-8 字符串。由压缩作业运行移除的字节数。
-
NumberOfFilesCompacted– UTF-8 字符串。由压缩作业运行移除的文件数。
-
NumberOfDpus– UTF-8 字符串。作业消耗的 DPU 数量,向上舍入到最接近的整数。
-
JobDurationInHour– UTF-8 字符串。作业的持续时间(以小时为单位)。
操作
GetTableOptimizer 操作(Python:get_table_optimizer)
返回与指定表关联的所有优化器的配置。
请求
-
CatalogId–必填项:目录 id 字符串,长度不少于 1 个字节,并且不超过 255 个字节,并且符合 Single-line string pattern。表的目录 ID。
-
DatabaseName– 必填:UTF-8 字符串,长度不少于 1 个字节或超过 255 个字节,与 Single-line string pattern 匹配。表所在的目录中的数据库的名称。
-
TableName– 必填:UTF-8 字符串,长度不少于 1 个字节或超过 255 个字节,与 Single-line string pattern 匹配。表的名称。
-
Type– 必填: UTF-8 字符串(有效值:compaction="COMPACTION"|retention="RETENTION"|orphan_file_deletion="ORPHAN_FILE_DELETION")。优化器的类型。
响应
-
CatalogId– 目录 id 字符串,长度不少于 1 个字节或超过 255 个字节,与 Single-line string pattern 匹配。表的目录 ID。
-
DatabaseName– UTF-8 字符串,长度不少于 1 个字节或超过 255 个字节,与 Single-line string pattern 匹配。表所在的目录中的数据库的名称。
-
TableName– UTF-8 字符串,长度不少于 1 个字节或超过 255 个字节,与 Single-line string pattern 匹配。表的名称。
-
TableOptimizer– 一个 TableOptimizer 对象。与指定表关联的优化器。
错误
EntityNotFoundExceptionInvalidInputExceptionAccessDeniedExceptionInternalServiceExceptionThrottlingException
BatchGetTableOptimizer 操作(Python:batch_get_table_optimizer)
返回指定表优化器的配置。
请求
-
Entries– 必填:BatchGetTableOptimizerEntry 对象的数组。指定要检索的表优化器的
BatchGetTableOptimizerEntry对象列表。
响应
-
TableOptimizers– BatchTableOptimizer 对象的数组。BatchTableOptimizer对象的列表。 -
Failures– BatchGetTableOptimizerError 对象的数组。操作中所出现错误的列表。
错误
EntityNotFoundExceptionInvalidInputExceptionAccessDeniedExceptionInternalServiceExceptionThrottlingException
ListTableOptimizerRuns 操作(Python:list_table_optimizer_runs)
列出特定表的之前优化器运行历史记录。
请求
-
CatalogId–必填项:目录 id 字符串,长度不少于 1 个字节,并且不超过 255 个字节,并且符合 Single-line string pattern。表的目录 ID。
-
DatabaseName– 必填:UTF-8 字符串,长度不少于 1 个字节或超过 255 个字节,与 Single-line string pattern 匹配。表所在的目录中的数据库的名称。
-
TableName– 必填:UTF-8 字符串,长度不少于 1 个字节或超过 255 个字节,与 Single-line string pattern 匹配。表的名称。
-
Type– 必填: UTF-8 字符串(有效值:compaction="COMPACTION"|retention="RETENTION"|orphan_file_deletion="ORPHAN_FILE_DELETION")。优化器的类型。
-
MaxResults– 数字(整数)。每次调用时将返回的最大优化器运行数。
-
NextToken– UTF-8 字符串。延续标记 (如果这是延续调用)。
响应
-
CatalogId– 目录 id 字符串,长度不少于 1 个字节或超过 255 个字节,与 Single-line string pattern 匹配。表的目录 ID。
-
DatabaseName– UTF-8 字符串,长度不少于 1 个字节或超过 255 个字节,与 Single-line string pattern 匹配。表所在的目录中的数据库的名称。
-
TableName– UTF-8 字符串,长度不少于 1 个字节或超过 255 个字节,与 Single-line string pattern 匹配。表的名称。
-
NextToken– UTF-8 字符串。对返回的优化器运行列表进行分页的延续令牌(如果列表的当前段不是最后一段,则返回该令牌)。
-
TableOptimizerRuns– TableOptimizerRun 对象的数组。与表关联的优化器运行的列表。
错误
EntityNotFoundExceptionAccessDeniedExceptionInvalidInputExceptionValidationExceptionInternalServiceExceptionThrottlingException
CreateTableOptimizer 操作(Python:create_table_optimizer)
为特定函数创建新的表优化器。
请求
-
CatalogId–必填项:目录 id 字符串,长度不少于 1 个字节,并且不超过 255 个字节,并且符合 Single-line string pattern。表的目录 ID。
-
DatabaseName– 必填:UTF-8 字符串,长度不少于 1 个字节或超过 255 个字节,与 Single-line string pattern 匹配。表所在的目录中的数据库的名称。
-
TableName– 必填:UTF-8 字符串,长度不少于 1 个字节或超过 255 个字节,与 Single-line string pattern 匹配。表的名称。
-
Type– 必填: UTF-8 字符串(有效值:compaction="COMPACTION"|retention="RETENTION"|orphan_file_deletion="ORPHAN_FILE_DELETION")。优化器的类型。
-
TableOptimizerConfiguration– 必填:一个 TableOptimizerConfiguration 对象。表示表优化器的配置的
TableOptimizerConfiguration对象。
响应
无响应参数。
错误
EntityNotFoundExceptionValidationExceptionInvalidInputExceptionAccessDeniedExceptionAlreadyExistsExceptionInternalServiceExceptionThrottlingException
DeleteTableOptimizer 操作(Python:delete_table_optimizer)
删除一个表的一个优化器以及所有相关元数据。将不再对该表执行优化。
请求
-
CatalogId–必填项:目录 id 字符串,长度不少于 1 个字节,并且不超过 255 个字节,并且符合 Single-line string pattern。表的目录 ID。
-
DatabaseName– 必填:UTF-8 字符串,长度不少于 1 个字节或超过 255 个字节,与 Single-line string pattern 匹配。表所在的目录中的数据库的名称。
-
TableName– 必填:UTF-8 字符串,长度不少于 1 个字节或超过 255 个字节,与 Single-line string pattern 匹配。表的名称。
-
Type– 必填: UTF-8 字符串(有效值:compaction="COMPACTION"|retention="RETENTION"|orphan_file_deletion="ORPHAN_FILE_DELETION")。优化器的类型。
响应
无响应参数。
错误
EntityNotFoundExceptionInvalidInputExceptionAccessDeniedExceptionInternalServiceExceptionThrottlingException
UpdateTableOptimizer 操作(Python:update_table_optimizer
更新现有表优化器的配置。
请求
-
CatalogId–必填项:目录 id 字符串,长度不少于 1 个字节,并且不超过 255 个字节,并且符合 Single-line string pattern。表的目录 ID。
-
DatabaseName– 必填:UTF-8 字符串,长度不少于 1 个字节或超过 255 个字节,与 Single-line string pattern 匹配。表所在的目录中的数据库的名称。
-
TableName– 必填:UTF-8 字符串,长度不少于 1 个字节或超过 255 个字节,与 Single-line string pattern 匹配。表的名称。
-
Type– 必填: UTF-8 字符串(有效值:compaction="COMPACTION"|retention="RETENTION"|orphan_file_deletion="ORPHAN_FILE_DELETION")。优化器的类型。
-
TableOptimizerConfiguration– 必填:一个 TableOptimizerConfiguration 对象。表示表优化器的配置的
TableOptimizerConfiguration对象。
响应
无响应参数。
错误
EntityNotFoundExceptionInvalidInputExceptionAccessDeniedExceptionValidationExceptionInternalServiceExceptionThrottlingExceptionConcurrentModificationException