[ aws . athena ]



Updates the data catalog that has the specified name.

See also: AWS API Documentation

See ‘aws help’ for descriptions of global parameters.


--name <value>
--type <value>
[--description <value>]
[--parameters <value>]
[--cli-input-json | --cli-input-yaml]
[--generate-cli-skeleton <value>]


--name (string)

The name of the data catalog to update. The catalog name must be unique for the AWS account and can use a maximum of 128 alphanumeric, underscore, at sign, or hyphen characters.

--type (string)

Specifies the type of data catalog to update. Specify LAMBDA for a federated catalog or HIVE for an external hive metastore.


Do not use the GLUE type. This refers to the AwsDataCatalog that already exists in your account, of which you can have only one. Specifying the GLUE type will result in an INVALID_INPUT error.

Possible values:


  • GLUE

  • HIVE

--description (string)

New or modified text that describes the data catalog.

--parameters (map)

Specifies the Lambda function or functions to use for updating the data catalog. This is a mapping whose values depend on the catalog type.

  • For the HIVE data catalog type, use the following syntax. The metadata-function parameter is required. The sdk-version parameter is optional and defaults to the currently supported version. ``metadata-function=*lambda_arn* , sdk-version=*version_number* ``

  • For the LAMBDA data catalog type, use one of the following sets of required parameters, but not both.

    • If you have one Lambda function that processes metadata and another for reading the actual data, use the following syntax. Both parameters are required. ``metadata-function=*lambda_arn* , record-function=*lambda_arn* ``

    • If you have a composite Lambda function that processes both metadata and data, use the following syntax to specify your Lambda function. ``function=*lambda_arn* ``

key -> (string)

value -> (string)

Shorthand Syntax:


JSON Syntax:

{"string": "string"

--cli-input-json | --cli-input-yaml (string) Reads arguments from the JSON string provided. The JSON string follows the format provided by --generate-cli-skeleton. If other arguments are provided on the command line, those values will override the JSON-provided values. It is not possible to pass arbitrary binary values using a JSON-provided value as the string will be taken literally. This may not be specified along with --cli-input-yaml.

--generate-cli-skeleton (string) Prints a JSON skeleton to standard output without sending an API request. If provided with no value or the value input, prints a sample input JSON that can be used as an argument for --cli-input-json. Similarly, if provided yaml-input it will print a sample input YAML that can be used with --cli-input-yaml. If provided with the value output, it validates the command inputs and returns a sample output JSON for that command.

See ‘aws help’ for descriptions of global parameters.


To update a data catalog

The following update-data-catalog example updates the Lambda function and description of the cw_logs_catalog data catalog.

aws athena update-data-catalog \
    --name cw_logs_catalog \
    --type LAMBDA \
    --description "New CloudWatch Logs Catalog" \

This command produces no output. To see the result, use aws athena get-data-catalog --name cw_logs_catalog.

For more information, see Updating a Catalog: update-data-catalog in the Amazon Athena User Guide.