This is the new AWS CloudFormation Template Reference Guide. Please update your bookmarks and links. For help getting started with CloudFormation, see the AWS CloudFormation User Guide.
AWS::Athena::DataCatalog
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.
Syntax
To declare this entity in your AWS CloudFormation template, use the following syntax:
JSON
{ "Type" : "AWS::Athena::DataCatalog", "Properties" : { "ConnectionType" :String, "Description" :String, "Error" :String, "Name" :String, "Parameters" :{, "Status" :Key:Value, ...}String, "Tags" :[ Tag, ... ], "Type" :String} }
YAML
Type: AWS::Athena::DataCatalog Properties: ConnectionType:StringDescription:StringError:StringName:StringParameters:Status:Key:ValueStringTags:- TagType:String
Properties
- ConnectionType
- 
                    The type of connection for a FEDERATEDdata catalog (for example,REDSHIFT,MYSQL, orSQLSERVER). For information about individual connectors, see Available data source connectors.Required: No Type: String Allowed values: DYNAMODB | MYSQL | POSTGRESQL | REDSHIFT | ORACLE | SYNAPSE | SQLSERVER | DB2 | OPENSEARCH | BIGQUERY | GOOGLECLOUDSTORAGE | HBASE | DOCUMENTDB | CMDB | TPCDS | TIMESTREAM | SAPHANA | SNOWFLAKE | DATALAKEGEN2 | DB2AS400Update requires: No interruption 
- Description
- 
                    A description of the data catalog. Required: No Type: String Minimum: 1Maximum: 1024Update requires: No interruption 
- Error
- 
                    Text of the error that occurred during data catalog creation or deletion. Required: No Type: String Update requires: No interruption 
- Name
- 
                    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 Minimum: 1Maximum: 256Update requires: Replacement 
- Parameters
- 
                    Specifies the Lambda function or functions to use for creating the data catalog. This is a mapping whose values depend on the catalog type. - 
                            For the HIVEdata catalog type, use the following syntax. Themetadata-functionparameter is required.The sdk-versionparameter is optional and defaults to the currently supported version.metadata-function=lambda_arn, sdk-version=version_number
- 
                            For the LAMBDAdata 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
 
- 
                                    
- 
                            The GLUEtype takes a catalog ID parameter and is required. Thecatalog_idis the account ID of the AWS account to which the AWS Glue Data Catalog belongs.catalog-id=catalog_id- 
                                    The GLUEdata catalog type also applies to the defaultAwsDataCatalogthat already exists in your account, of which you can have only one and cannot modify.
 
- 
                                    
- 
                            The FEDERATEDdata catalog type uses one of the following parameters, but not both. Useconnection-arnfor an existing AWS Glue connection. Useconnection-typeandconnection-propertiesto specify the configuration setting for a new connection.- 
                                    connection-arn:<glue_connection_arn_to_reuse>
- 
                                    lambda-role-arn(optional): The execution role to use for the Lambda function. If not provided, one is created.
- 
                                    connection-type:MYSQL|REDSHIFT|...., connection-properties:"<json_string>"For <json_string>, use escaped JSON text, as in the following example."{\"spill_bucket\":\"my_spill\",\"spill_prefix\":\"athena-spill\",\"host\":\"abc12345.snowflakecomputing.com\",\"port\":\"1234\",\"warehouse\":\"DEV_WH\",\"database\":\"TEST\",\"schema\":\"PUBLIC\",\"SecretArn\":\"arn:aws:secretsmanager:ap-south-1:111122223333:secret:snowflake-XHb67j\"}"
 
- 
                                    
 Required: No Type: Object of String Pattern: .*Maximum: 51200Update requires: No interruption 
- 
                            
- Status
- 
                    The status of the creation or deletion of the data catalog. - 
                            The LAMBDA,GLUE, andHIVEdata catalog types are created synchronously. Their status is eitherCREATE_COMPLETEorCREATE_FAILED.
- 
                            The FEDERATEDdata catalog type is created asynchronously.
 Data catalog creation status: - 
                            CREATE_IN_PROGRESS: Federated data catalog creation in progress.
- 
                            CREATE_COMPLETE: Data catalog creation complete.
- 
                            CREATE_FAILED: Data catalog could not be created.
- 
                            CREATE_FAILED_CLEANUP_IN_PROGRESS: Federated data catalog creation failed and is being removed.
- 
                            CREATE_FAILED_CLEANUP_COMPLETE: Federated data catalog creation failed and was removed.
- 
                            CREATE_FAILED_CLEANUP_FAILED: Federated data catalog creation failed but could not be removed.
 Data catalog deletion status: - 
                            DELETE_IN_PROGRESS: Federated data catalog deletion in progress.
- 
                            DELETE_COMPLETE: Federated data catalog deleted.
- 
                            DELETE_FAILED: Federated data catalog could not be deleted.
 Required: No Type: String Allowed values: CREATE_IN_PROGRESS | CREATE_COMPLETE | CREATE_FAILED | CREATE_FAILED_CLEANUP_IN_PROGRESS | CREATE_FAILED_CLEANUP_COMPLETE | CREATE_FAILED_CLEANUP_FAILED | DELETE_IN_PROGRESS | DELETE_COMPLETE | DELETE_FAILEDUpdate requires: No interruption 
- 
                            
- 
                    The tags (key-value pairs) to associate with this resource. Required: No Type: Array of Tag Update requires: No interruption 
- Type
- 
                    The type of data catalog: LAMBDAfor a federated catalog,GLUEfor AWS Glue Catalog, orHIVEfor an external hive metastore.Required: Yes Type: String Allowed values: LAMBDA | GLUE | HIVE | FEDERATEDUpdate requires: No interruption 
Return values
Ref
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.
Examples
Create an Athena data catalog
The following example template creates a custom Hive data catalog in Athena.
JSON
{ "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" } } } } }
YAML
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"