SearchTables - AWS Glue


Searches a set of tables based on properties in the table metadata as well as on the parent database. You can search against text or filter conditions.

You can only get tables that you have access to based on the security policies defined in Lake Formation. You need at least a read-only access to the table for it to be returned. If you do not have access to all the columns in the table, these columns will not be searched against when returning the list of tables back to you. If you have access to the columns but not the data in the columns, those columns and the associated metadata for those columns will be included in the search.

Request Syntax

{ "CatalogId": "string", "Filters": [ { "Comparator": "string", "Key": "string", "Value": "string" } ], "MaxResults": number, "NextToken": "string", "ResourceShareType": "string", "SearchText": "string", "SortCriteria": [ { "FieldName": "string", "Sort": "string" } ] }

Request Parameters

For information about the parameters that are common to all actions, see Common Parameters.

The request accepts the following data in JSON format.


A unique identifier, consisting of account_id .

Type: String

Length Constraints: Minimum length of 1. Maximum length of 255.

Pattern: [\u0020-\uD7FF\uE000-\uFFFD\uD800\uDC00-\uDBFF\uDFFF\t]*

Required: No


A list of key-value pairs, and a comparator used to filter the search results. Returns all entities matching the predicate.

The Comparator member of the PropertyPredicate struct is used only for time fields, and can be omitted for other field types. Also, when comparing string values, such as when Key=Name, a fuzzy match algorithm is used. The Key field (for example, the value of the Name field) is split on certain punctuation characters, for example, -, :, #, etc. into tokens. Then each token is exact-match compared with the Value member of PropertyPredicate. For example, if Key=Name and Value=link, tables named customer-link and xx-link-yy are returned, but xxlinkyy is not returned.

Type: Array of PropertyPredicate objects

Required: No


The maximum number of tables to return in a single response.

Type: Integer

Valid Range: Minimum value of 1. Maximum value of 1000.

Required: No


A continuation token, included if this is a continuation call.

Type: String

Required: No


Allows you to specify that you want to search the tables shared with your account. The allowable values are FOREIGN or ALL.

  • If set to FOREIGN, will search the tables shared with your account.

  • If set to ALL, will search the tables shared with your account, as well as the tables in yor local account.

Type: String


Required: No


A string used for a text search.

Specifying a value in quotes filters based on an exact match to the value.

Type: String

Length Constraints: Maximum length of 1024.

Required: No


A list of criteria for sorting the results by a field name, in an ascending or descending order.

Type: Array of SortCriterion objects

Array Members: Minimum number of 0 items. Maximum number of 1 item.

Required: No

Response Syntax

{ "NextToken": "string", "TableList": [ { "CatalogId": "string", "CreatedBy": "string", "CreateTime": number, "DatabaseName": "string", "Description": "string", "FederatedTable": { "ConnectionName": "string", "DatabaseIdentifier": "string", "Identifier": "string" }, "IsRegisteredWithLakeFormation": boolean, "LastAccessTime": number, "LastAnalyzedTime": number, "Name": "string", "Owner": "string", "Parameters": { "string" : "string" }, "PartitionKeys": [ { "Comment": "string", "Name": "string", "Parameters": { "string" : "string" }, "Type": "string" } ], "Retention": number, "StorageDescriptor": { "AdditionalLocations": [ "string" ], "BucketColumns": [ "string" ], "Columns": [ { "Comment": "string", "Name": "string", "Parameters": { "string" : "string" }, "Type": "string" } ], "Compressed": boolean, "InputFormat": "string", "Location": "string", "NumberOfBuckets": number, "OutputFormat": "string", "Parameters": { "string" : "string" }, "SchemaReference": { "SchemaId": { "RegistryName": "string", "SchemaArn": "string", "SchemaName": "string" }, "SchemaVersionId": "string", "SchemaVersionNumber": number }, "SerdeInfo": { "Name": "string", "Parameters": { "string" : "string" }, "SerializationLibrary": "string" }, "SkewedInfo": { "SkewedColumnNames": [ "string" ], "SkewedColumnValueLocationMaps": { "string" : "string" }, "SkewedColumnValues": [ "string" ] }, "SortColumns": [ { "Column": "string", "SortOrder": number } ], "StoredAsSubDirectories": boolean }, "TableType": "string", "TargetTable": { "CatalogId": "string", "DatabaseName": "string", "Name": "string", "Region": "string" }, "UpdateTime": number, "VersionId": "string", "ViewExpandedText": "string", "ViewOriginalText": "string" } ] }

Response Elements

If the action is successful, the service sends back an HTTP 200 response.

The following data is returned in JSON format by the service.


A continuation token, present if the current list segment is not the last.

Type: String


A list of the requested Table objects. The SearchTables response returns only the tables that you have access to.

Type: Array of Table objects


For information about the errors that are common to all actions, see Common Errors.


An internal service error occurred.

HTTP Status Code: 500


The input provided was not valid.

HTTP Status Code: 400


The operation timed out.

HTTP Status Code: 400

See Also

For more information about using this API in one of the language-specific AWS SDKs, see the following: