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 Amazon CloudFormation template, use the following syntax:
JSON
{ "Type" : "AWS::Athena::DataCatalog", "Properties" : { "Description" :String, "Name" :String, "Parameters" :{, "Tags" :Key:Value, ...}[ Tag, ... ], "Type" :String} }
YAML
Type: AWS::Athena::DataCatalog Properties: Description:StringName:StringParameters:Tags:Key:Value- TagType:String
Properties
Description-
A description of the data catalog.
Required: No
Type: String
Update requires: No interruption
Name-
The name of the data catalog. The catalog name must be unique for the Amazon Web Services account and can use a maximum of 128 alphanumeric, underscore, at sign, or hyphen characters.
Required: Yes
Type: String
Update requires: Replacement
Parameters-
Specifies the Lambda function or functions to use for the data catalog. The mapping used depends on the catalog type.
-
The
HIVEdata catalog type uses 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 -
The
LAMBDAdata 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.
function=lambda_arn
-
-
The
GLUEtype takes a catalog ID parameter and is required. Thecatalog_idis the account ID of the Amazon Web Services account to which the Glue 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. -
Queries that specify a GLUE data catalog other than the default
AwsDataCatalogmust 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_INPUTerror.
-
Required: No
Type: Map of String
Update requires: No interruption
-
Tags-
The tags (key-value pairs) to associate with this resource.
Required: No
Type: List 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
Update requires: No interruption
Return values
Ref
When you pass the logical ID of this resource to the intrinsic Reffunction, Refreturns the name of the data catalog.
For more information about using the Reffunction, see Ref.
Examples
Creating 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"