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" : { "Description" :
String
, "Name" :String
, "Parameters" :{
, "Tags" :Key
:Value
, ...}[ Tag, ... ]
, "Type" :String
} }
YAML
Type: AWS::Athena::DataCatalog Properties: Description:
String
Name:String
Parameters:Tags:
Key
:Value
- Tag
Type:String
Properties
Description
-
A description of the data catalog.
Required: No
Type: String
Minimum:
1
Maximum:
1024
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:
1
Maximum:
256
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
HIVE
data catalog type uses the following syntax. Themetadata-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.
function=lambda_arn
-
-
The
GLUE
type takes a catalog ID parameter and is required. Thecatalog_id
is the account ID of the AWS account to which the Glue catalog belongs.catalog-id=catalog_id
-
The
GLUE
data catalog type also applies to the defaultAwsDataCatalog
that already exists in your account, of which you can have only one and cannot modify.
-
Required: No
Type: Object of String
Pattern:
.*
Maximum:
51200
Update 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:
LAMBDA
for a federated catalog,GLUE
for AWS Glue Catalog, orHIVE
for an external hive metastore.Required: Yes
Type: String
Allowed values:
LAMBDA | GLUE | HIVE
Update 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"