AWS Glue Glue Table Optimizer API
The Glue Table Optimizer API from AWS Glue — 5 operation(s) for glue table optimizer.
The Glue Table Optimizer API from AWS Glue — 5 operation(s) for glue table optimizer.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/aws-glue:aws-glue-table-optimizer-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: AWS Glue Table Optimizer API
version: '2017-03-31'
description: Generated from AWS's published Smithy model for AWS Glue. 5 operation(s).
contact:
name: Amazon Web Services
url: https://aws.amazon.com/contact-us/
license:
name: Apache 2.0
identifier: Apache-2.0
url: https://github.com/aws/api-models-aws/blob/main/LICENSE
servers:
- url: https://glue.{region}.amazonaws.com
variables:
region:
default: us-east-1
security:
- sigv4: []
tags:
- name: Table Optimizer
paths:
/#BatchGetTableOptimizer:
post:
operationId: BatchGetTableOptimizer
summary: Batch Get Table Optimizer
description: Returns the configuration for the specified table optimizers.
responses:
'200':
description: Success
content:
application/x-amz-json-1.1:
schema:
$ref: '#/components/schemas/BatchGetTableOptimizerResponse'
'400':
description: AccessDeniedException; EntityNotFoundException; InvalidInputException; ThrottlingException
content:
application/x-amz-json-1.1:
schema:
$ref: '#/components/schemas/AccessDeniedException'
'500':
description: InternalServiceException
content:
application/x-amz-json-1.1:
schema:
$ref: '#/components/schemas/InternalServiceException'
parameters:
- name: X-Amz-Target
in: header
required: true
schema:
type: string
enum:
- AWSGlue.BatchGetTableOptimizer
requestBody:
required: true
content:
application/x-amz-json-1.1:
schema:
$ref: '#/components/schemas/BatchGetTableOptimizerRequest'
tags:
- Table Optimizer
/#CreateTableOptimizer:
post:
operationId: CreateTableOptimizer
summary: Create Table Optimizer
description: Creates a new table optimizer for a specific function.
responses:
'200':
description: Success
content:
application/x-amz-json-1.1:
schema:
$ref: '#/components/schemas/CreateTableOptimizerResponse'
'400':
description: AccessDeniedException; AlreadyExistsException; EntityNotFoundException; InvalidInputException; ThrottlingException; ValidationException
content:
application/x-amz-json-1.1:
schema:
$ref: '#/components/schemas/AccessDeniedException'
'500':
description: InternalServiceException
content:
application/x-amz-json-1.1:
schema:
$ref: '#/components/schemas/InternalServiceException'
parameters:
- name: X-Amz-Target
in: header
required: true
schema:
type: string
enum:
- AWSGlue.CreateTableOptimizer
requestBody:
required: true
content:
application/x-amz-json-1.1:
schema:
$ref: '#/components/schemas/CreateTableOptimizerRequest'
tags:
- Table Optimizer
/#DeleteTableOptimizer:
post:
operationId: DeleteTableOptimizer
summary: Delete Table Optimizer
description: Deletes an optimizer and all associated metadata for a table. The optimization will no longer be performed on the table.
responses:
'200':
description: Success
content:
application/x-amz-json-1.1:
schema:
$ref: '#/components/schemas/DeleteTableOptimizerResponse'
'400':
description: AccessDeniedException; EntityNotFoundException; InvalidInputException; ThrottlingException
content:
application/x-amz-json-1.1:
schema:
$ref: '#/components/schemas/AccessDeniedException'
'500':
description: InternalServiceException
content:
application/x-amz-json-1.1:
schema:
$ref: '#/components/schemas/InternalServiceException'
parameters:
- name: X-Amz-Target
in: header
required: true
schema:
type: string
enum:
- AWSGlue.DeleteTableOptimizer
requestBody:
required: true
content:
application/x-amz-json-1.1:
schema:
$ref: '#/components/schemas/DeleteTableOptimizerRequest'
tags:
- Table Optimizer
/#GetTableOptimizer:
post:
operationId: GetTableOptimizer
summary: Get Table Optimizer
description: Returns the configuration of all optimizers associated with a specified table.
responses:
'200':
description: Success
content:
application/x-amz-json-1.1:
schema:
$ref: '#/components/schemas/GetTableOptimizerResponse'
'400':
description: AccessDeniedException; EntityNotFoundException; InvalidInputException; ThrottlingException
content:
application/x-amz-json-1.1:
schema:
$ref: '#/components/schemas/AccessDeniedException'
'500':
description: InternalServiceException
content:
application/x-amz-json-1.1:
schema:
$ref: '#/components/schemas/InternalServiceException'
parameters:
- name: X-Amz-Target
in: header
required: true
schema:
type: string
enum:
- AWSGlue.GetTableOptimizer
requestBody:
required: true
content:
application/x-amz-json-1.1:
schema:
$ref: '#/components/schemas/GetTableOptimizerRequest'
tags:
- Table Optimizer
/#UpdateTableOptimizer:
post:
operationId: UpdateTableOptimizer
summary: Update Table Optimizer
description: Updates the configuration for an existing table optimizer.
responses:
'200':
description: Success
content:
application/x-amz-json-1.1:
schema:
$ref: '#/components/schemas/UpdateTableOptimizerResponse'
'400':
description: AccessDeniedException; ConcurrentModificationException; EntityNotFoundException; InvalidInputException; ThrottlingException; ValidationException
content:
application/x-amz-json-1.1:
schema:
$ref: '#/components/schemas/AccessDeniedException'
'500':
description: InternalServiceException
content:
application/x-amz-json-1.1:
schema:
$ref: '#/components/schemas/InternalServiceException'
parameters:
- name: X-Amz-Target
in: header
required: true
schema:
type: string
enum:
- AWSGlue.UpdateTableOptimizer
requestBody:
required: true
content:
application/x-amz-json-1.1:
schema:
$ref: '#/components/schemas/UpdateTableOptimizerRequest'
tags:
- Table Optimizer
components:
schemas:
TableOptimizerRun:
type: object
properties:
eventType:
type: string
enum:
- starting
- completed
- failed
- in_progress
description: An event type representing the status of the table optimizer run.
startTimestamp:
type: string
format: date-time
description: Represents the epoch timestamp at which the compaction job was started within Lake Formation.
endTimestamp:
type: string
format: date-time
description: Represents the epoch timestamp at which the compaction job ended.
metrics:
$ref: '#/components/schemas/RunMetrics'
error:
type: string
description: An error that occured during the optimizer run.
compactionMetrics:
$ref: '#/components/schemas/CompactionMetrics'
compactionStrategy:
type: string
enum:
- binpack
- sort
- z-order
description: 'The strategy used for the compaction run. Indicates which algorithm was applied to determine how files were selected and combined during the compaction process. Valid values are: binpack: Combines small files into larger files, typically targeting sizes over 100MB, while applying any pending deletes. This is the recommended compaction strategy for most use cases. sort: Organizes data based on specified columns which are sorted hierarchically during compaction, improving query performance for filtered operations. This strategy is recommended when your queries frequently filter on specific colum'
retentionMetrics:
$ref: '#/components/schemas/RetentionMetrics'
orphanFileDeletionMetrics:
$ref: '#/components/schemas/OrphanFileDeletionMetrics'
UpdateTableOptimizerRequest:
type: object
properties:
CatalogId:
type: string
description: The Catalog ID of the table.
DatabaseName:
type: string
description: The name of the database in the catalog in which the table resides.
TableName:
type: string
description: The name of the table.
Type:
type: string
enum:
- compaction
- retention
- orphan_file_deletion
description: The type of table optimizer.
TableOptimizerConfiguration:
$ref: '#/components/schemas/TableOptimizerConfiguration'
required:
- CatalogId
- DatabaseName
- TableName
- Type
- TableOptimizerConfiguration
RunMetrics:
type: object
properties:
NumberOfBytesCompacted:
type: string
description: The number of bytes removed by the compaction job run.
NumberOfFilesCompacted:
type: string
description: The number of files removed by the compaction job run.
NumberOfDpus:
type: string
description: The number of DPUs consumed by the job, rounded up to the nearest whole number.
JobDurationInHour:
type: string
description: The duration of the job in hours.
UpdateTableOptimizerResponse:
type: object
properties: {}
IcebergOrphanFileDeletionConfiguration:
type: object
properties:
orphanFileRetentionPeriodInDays:
type: integer
description: The number of days that orphan files should be retained before file deletion. If an input is not provided, the default value 3 will be used.
location:
type: string
description: Specifies a directory in which to look for files (defaults to the table's location). You may choose a sub-directory rather than the top-level table location.
runRateInHours:
type: integer
description: The interval in hours between orphan file deletion job runs. This parameter controls how frequently the orphan file deletion optimizer will run to clean up orphan files. The value must be between 3 and 168 hours (7 days). If an input is not provided, the default value 24 will be used.
BatchGetTableOptimizerEntry:
type: object
properties:
catalogId:
type: string
description: The Catalog ID of the table.
databaseName:
type: string
description: The name of the database in the catalog in which the table resides.
tableName:
type: string
description: The name of the table.
type:
type: string
enum:
- compaction
- retention
- orphan_file_deletion
description: The type of table optimizer.
RetentionMetrics:
type: object
properties:
IcebergMetrics:
$ref: '#/components/schemas/IcebergRetentionMetrics'
TableOptimizerConfiguration:
type: object
properties:
roleArn:
type: string
description: A role passed by the caller which gives the service permission to update the resources associated with the optimizer on the caller's behalf.
enabled:
type: boolean
description: Whether table optimization is enabled.
vpcConfiguration:
$ref: '#/components/schemas/TableOptimizerVpcConfiguration'
compactionConfiguration:
$ref: '#/components/schemas/CompactionConfiguration'
retentionConfiguration:
$ref: '#/components/schemas/RetentionConfiguration'
orphanFileDeletionConfiguration:
$ref: '#/components/schemas/OrphanFileDeletionConfiguration'
DeleteTableOptimizerRequest:
type: object
properties:
CatalogId:
type: string
description: The Catalog ID of the table.
DatabaseName:
type: string
description: The name of the database in the catalog in which the table resides.
TableName:
type: string
description: The name of the table.
Type:
type: string
enum:
- compaction
- retention
- orphan_file_deletion
description: The type of table optimizer.
required:
- CatalogId
- DatabaseName
- TableName
- Type
TableOptimizer:
type: object
properties:
type:
type: string
enum:
- compaction
- retention
- orphan_file_deletion
description: 'The type of table optimizer. The valid values are: compaction: for managing compaction with a table optimizer. retention: for managing the retention of snapshot with a table optimizer. orphan_file_deletion: for managing the deletion of orphan files with a table optimizer.'
configuration:
$ref: '#/components/schemas/TableOptimizerConfiguration'
lastRun:
$ref: '#/components/schemas/TableOptimizerRun'
configurationSource:
type: string
enum:
- catalog
- table
description: Specifies the source of the optimizer configuration. This indicates how the table optimizer was configured and which entity or service initiated the configuration.
OrphanFileDeletionConfiguration:
type: object
properties:
icebergConfiguration:
$ref: '#/components/schemas/IcebergOrphanFileDeletionConfiguration'
CompactionConfiguration:
type: object
properties:
icebergConfiguration:
$ref: '#/components/schemas/IcebergCompactionConfiguration'
RetentionConfiguration:
type: object
properties:
icebergConfiguration:
$ref: '#/components/schemas/IcebergRetentionConfiguration'
IcebergOrphanFileDeletionMetrics:
type: object
properties:
NumberOfOrphanFilesDeleted:
type: integer
description: The number of orphan files deleted by the orphan file deletion job run.
DpuHours:
type: number
description: The number of DPU hours consumed by the job.
NumberOfDpus:
type: integer
description: The number of DPUs consumed by the job, rounded up to the nearest whole number.
JobDurationInHour:
type: number
description: The duration of the job in hours.
IcebergCompactionConfiguration:
type: object
properties:
strategy:
type: string
enum:
- binpack
- sort
- z-order
description: 'The strategy to use for compaction. Valid values are: binpack: Combines small files into larger files, typically targeting sizes over 100MB, while applying any pending deletes. This is the recommended compaction strategy for most use cases. sort: Organizes data based on specified columns which are sorted hierarchically during compaction, improving query performance for filtered operations. This strategy is recommended when your queries frequently filter on specific columns. To use this strategy, you must first define a sort order in your Iceberg table properties using the sort_order table prop'
minInputFiles:
type: integer
description: The minimum number of data files that must be present in a partition before compaction will actually compact files. This parameter helps control when compaction is triggered, preventing unnecessary compaction operations on partitions with few files. If an input is not provided, the default value 100 will be used.
deleteFileThreshold:
type: integer
description: The minimum number of deletes that must be present in a data file to make it eligible for compaction. This parameter helps optimize compaction by focusing on files that contain a significant number of delete operations, which can improve query performance by removing deleted records. If an input is not provided, the default value 1 will be used.
GetTableOptimizerResponse:
type: object
properties:
CatalogId:
type: string
description: The Catalog ID of the table.
DatabaseName:
type: string
description: The name of the database in the catalog in which the table resides.
TableName:
type: string
description: The name of the table.
TableOptimizer:
$ref: '#/components/schemas/TableOptimizer'
CompactionMetrics:
type: object
properties:
IcebergMetrics:
$ref: '#/components/schemas/IcebergCompactionMetrics'
TableOptimizerVpcConfiguration:
type: object
properties:
glueConnectionName:
type: string
description: The name of the Glue connection used for the VPC for the table optimizer.
description: Exactly one member is set.
CreateTableOptimizerRequest:
type: object
properties:
CatalogId:
type: string
description: The Catalog ID of the table.
DatabaseName:
type: string
description: The name of the database in the catalog in which the table resides.
TableName:
type: string
description: The name of the table.
Type:
type: string
enum:
- compaction
- retention
- orphan_file_deletion
description: The type of table optimizer.
TableOptimizerConfiguration:
$ref: '#/components/schemas/TableOptimizerConfiguration'
required:
- CatalogId
- DatabaseName
- TableName
- Type
- TableOptimizerConfiguration
GetTableOptimizerRequest:
type: object
properties:
CatalogId:
type: string
description: The Catalog ID of the table.
DatabaseName:
type: string
description: The name of the database in the catalog in which the table resides.
TableName:
type: string
description: The name of the table.
Type:
type: string
enum:
- compaction
- retention
- orphan_file_deletion
description: The type of table optimizer.
required:
- CatalogId
- DatabaseName
- TableName
- Type
CreateTableOptimizerResponse:
type: object
properties: {}
BatchGetTableOptimizerResponse:
type: object
properties:
TableOptimizers:
type: array
items:
$ref: '#/components/schemas/BatchTableOptimizer'
description: A list of BatchTableOptimizer objects.
Failures:
type: array
items:
$ref: '#/components/schemas/BatchGetTableOptimizerError'
description: A list of errors from the operation.
IcebergRetentionConfiguration:
type: object
properties:
snapshotRetentionPeriodInDays:
type: integer
description: The number of days to retain the Iceberg snapshots. If an input is not provided, the corresponding Iceberg table configuration field will be used or if not present, the default value 5 will be used.
numberOfSnapshotsToRetain:
type: integer
description: The number of Iceberg snapshots to retain within the retention period. If an input is not provided, the corresponding Iceberg table configuration field will be used or if not present, the default value 1 will be used.
cleanExpiredFiles:
type: boolean
description: If set to false, snapshots are only deleted from table metadata, and the underlying data and metadata files are not deleted.
runRateInHours:
type: integer
description: The interval in hours between retention job runs. This parameter controls how frequently the retention optimizer will run to clean up expired snapshots. The value must be between 3 and 168 hours (7 days). If an input is not provided, the default value 24 will be used.
BatchGetTableOptimizerRequest:
type: object
properties:
Entries:
type: array
items:
$ref: '#/components/schemas/BatchGetTableOptimizerEntry'
description: A list of BatchGetTableOptimizerEntry objects specifying the table optimizers to retrieve.
required:
- Entries
OrphanFileDeletionMetrics:
type: object
properties:
IcebergMetrics:
$ref: '#/components/schemas/IcebergOrphanFileDeletionMetrics'
DeleteTableOptimizerResponse:
type: object
properties: {}
BatchTableOptimizer:
type: object
properties:
catalogId:
type: string
description: The Catalog ID of the table.
databaseName:
type: string
description: The name of the database in the catalog in which the table resides.
tableName:
type: string
description: The name of the table.
tableOptimizer:
$ref: '#/components/schemas/TableOptimizer'
BatchGetTableOptimizerError:
type: object
properties:
error:
$ref: '#/components/schemas/ErrorDetail'
catalogId:
type: string
description: The Catalog ID of the table.
databaseName:
type: string
description: The name of the database in the catalog in which the table resides.
tableName:
type: string
description: The name of the table.
type:
type: string
enum:
- compaction
- retention
- orphan_file_deletion
description: The type of table optimizer.
AccessDeniedException:
type: object
properties:
Message:
type: string
description: A message describing the problem.
InternalServiceException:
type: object
properties:
Message:
type: string
description: A message describing the problem.
IcebergRetentionMetrics:
type: object
properties:
NumberOfDataFilesDeleted:
type: integer
description: The number of data files deleted by the retention job run.
NumberOfManifestFilesDeleted:
type: integer
description: The number of manifest files deleted by the retention job run.
NumberOfManifestListsDeleted:
type: integer
description: The number of manifest lists deleted by the retention job run.
DpuHours:
type: number
description: The number of DPU hours consumed by the job.
NumberOfDpus:
type: integer
description: The number of DPUs consumed by the job, rounded up to the nearest whole number.
JobDurationInHour:
type: number
description: The duration of the job in hours.
IcebergCompactionMetrics:
type: object
properties:
NumberOfBytesCompacted:
type: integer
description: The number of bytes removed by the compaction job run.
NumberOfFilesCompacted:
type: integer
description: The number of files removed by the compaction job run.
DpuHours:
type: number
description: The number of DPU hours consumed by the job.
NumberOfDpus:
type: integer
description: The number of DPUs consumed by the job, rounded up to the nearest whole number.
JobDurationInHour:
type: number
description: The duration of the job in hours.
ErrorDetail:
type: object
properties:
ErrorCode:
type: string
description: The code associated with this error.
ErrorMessage:
type: string
description: A message describing the error.
securitySchemes:
sigv4:
type: apiKey
in: header
name: Authorization
description: AWS Signature Version 4. The Authorization header carries an AWS4-HMAC-SHA256 signature over the canonical request, with X-Amz-Date (and X-Amz-Security-Token for temporary credentials). Not a bearer token.
x-aws-sigv4:
signingName: glue
x-provenance:
method: harvested
publisher: Amazon Web Services
source: https://raw.githubusercontent.com/aws/api-models-aws/582e55931c45b944739742a2c1620b6026dd2d13/models/glue/service/2017-03-31/glue-2017-03-31.json
note: converted by smithy-to-openapi.py from AWS's Smithy model (roadmap#1001)