AWS::Athena::DataCatalog - AWS CloudFormation


The AWS::Athena::DataCatalog resource specifies an Amazon Athena data catalog, which contains a name, description, type, parameters, and tags. For more information, see DataCatalog in the Amazon Athena API Reference.


To declare this entity in your AWS CloudFormation template, use the following syntax:


{ "Type" : "AWS::Athena::DataCatalog", "Properties" : { "Description" : String, "Name" : String, "Parameters" : {Key : Value, ...}, "Tags" : [ Tag, ... ], "Type" : String } }


Type: AWS::Athena::DataCatalog Properties: Description: String Name: String Parameters: Key : Value Tags: - Tag Type: String



A description of the data catalog.

Required: No

Type: String

Update requires: No interruption


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

Required: Yes

Type: String

Update requires: Replacement


Specifies the Lambda function or functions to use for the data catalog. The mapping used depends on the catalog type.

  • The HIVE data catalog type uses 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

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

    • When one Lambda function processes metadata and another Lambda function reads data, the following syntax is used. Both parameters are required.

      metadata-function=lambda_arn, record-function=lambda_arn

    • A composite Lambda function that processes both metadata and data uses the following syntax.


  • The GLUE type takes a catalog ID parameter and is required. The catalog_id is the account ID of the AWS account to which the Glue catalog belongs.


    • The GLUE data catalog type also applies to the default AwsDataCatalog that already exists in your account, of which you can have only one and cannot modify.

    • Queries that specify a GLUE data catalog other than the default AwsDataCatalog must be run on Athena engine version 2.

    • In Regions where Athena engine version 2 is not available, creating new GLUE data catalogs results in an INVALID_INPUT error.

Required: No

Type: Map of String

Update requires: No interruption


The tags (key-value pairs) to associate with this resource.

Required: No

Type: List of Tag

Update requires: No interruption


The type of data catalog: LAMBDA for a federated catalog, GLUE for AWS Glue Catalog, or HIVE for an external hive metastore.

Required: Yes

Type: String

Update requires: No interruption

Return values


When you pass the logical ID of this resource to the intrinsic Ref function, Ref returns the name of the data catalog.

For more information about using the Ref function, see Ref.


Creating an Athena Data Catalog

The following example template creates a custom Hive data catalog in Athena.


{ "Resources":{ "MyAthenaDataCatalog":{ "Type":"AWS::Athena::DataCatalog", "Properties":{ "Name":"MyCustomDataCatalog", "Type":"HIVE", "Description":"Custom Hive Catalog Description", "Tags":[ { "Key":"key1", "Value":"value1" }, { "Key":"key2", "Value":"value2" } ], "Parameters":{ "metadata-function":"arn:aws:lambda:us-west-2:111122223333:function:lambdaname" } } } } }


Resources: MyAthenaDataCatalog: Type: AWS::Athena::DataCatalog Properties: Name: MyCustomDataCatalog Type: HIVE Description: Custom Hive Catalog Description Tags: - Key: "key1" Value: "value1" - Key: "key2" Value: "value2" Parameters: metadata-function: "arn:aws:lambda:us-west-2:111122223333:function:lambdaname"