

This is the new *CloudFormation Template Reference Guide*. Please update your bookmarks and links. For help getting started with CloudFormation, see the [AWS CloudFormation User Guide](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html).

# AWS::Glue::Table
<a name="aws-resource-glue-table"></a>

The `AWS::Glue::Table` resource specifies tabular data in the AWS Glue data catalog. For more information, see [Defining Tables in the AWS Glue Data Catalog](https://docs.aws.amazon.com/glue/latest/dg/tables-described.html) and [Table Structure ](https://docs.aws.amazon.com/glue/latest/dg/aws-glue-api-catalog-tables.html#aws-glue-api-catalog-tables-Table) in the *AWS Glue Developer Guide*.

## Syntax
<a name="aws-resource-glue-table-syntax"></a>

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

### JSON
<a name="aws-resource-glue-table-syntax.json"></a>

```
{
  "Type" : "AWS::Glue::Table",
  "Properties" : {
      "[CatalogId](#cfn-glue-table-catalogid)" : String,
      "[DatabaseName](#cfn-glue-table-databasename)" : String,
      "[OpenTableFormatInput](#cfn-glue-table-opentableformatinput)" : OpenTableFormatInput,
      "[TableInput](#cfn-glue-table-tableinput)" : TableInput
    }
}
```

### YAML
<a name="aws-resource-glue-table-syntax.yaml"></a>

```
Type: AWS::Glue::Table
Properties:
  [CatalogId](#cfn-glue-table-catalogid): String
  [DatabaseName](#cfn-glue-table-databasename): String
  [OpenTableFormatInput](#cfn-glue-table-opentableformatinput): 
    OpenTableFormatInput
  [TableInput](#cfn-glue-table-tableinput): 
    TableInput
```

## Properties
<a name="aws-resource-glue-table-properties"></a>

`CatalogId`  <a name="cfn-glue-table-catalogid"></a>
The ID of the Data Catalog in which to create the `Table`.  
*Required*: Yes  
*Type*: String  
*Pattern*: `[\u0020-\uD7FF\uE000-\uFFFD\uD800\uDC00-\uDBFF\uDFFF\t]*`  
*Minimum*: `1`  
*Maximum*: `255`  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`DatabaseName`  <a name="cfn-glue-table-databasename"></a>
The name of the database where the table metadata resides. For Hive compatibility, this must be all lowercase.  
*Required*: Yes  
*Type*: String  
*Pattern*: `[\u0020-\uD7FF\uE000-\uFFFD\uD800\uDC00-\uDBFF\uDFFF\t]*`  
*Minimum*: `1`  
*Maximum*: `255`  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`OpenTableFormatInput`  <a name="cfn-glue-table-opentableformatinput"></a>
Specifies an `OpenTableFormatInput` structure when creating an open format table.  
*Required*: No  
*Type*: [OpenTableFormatInput](aws-properties-glue-table-opentableformatinput.md)  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`TableInput`  <a name="cfn-glue-table-tableinput"></a>
A structure used to define a table.  
*Required*: Yes  
*Type*: [TableInput](aws-properties-glue-table-tableinput.md)  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

## Return values
<a name="aws-resource-glue-table-return-values"></a>

### Ref
<a name="aws-resource-glue-table-return-values-ref"></a>

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

For more information about using the `Ref` function, see [https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/intrinsic-function-reference-ref.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/intrinsic-function-reference-ref.html).

### Fn::GetAtt
<a name="aws-resource-glue-table-return-values-fn--getatt"></a>

# AWS::Glue::Table Column
<a name="aws-properties-glue-table-column"></a>

A column in a `Table`.

## Syntax
<a name="aws-properties-glue-table-column-syntax"></a>

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

### JSON
<a name="aws-properties-glue-table-column-syntax.json"></a>

```
{
  "[Comment](#cfn-glue-table-column-comment)" : String,
  "[Name](#cfn-glue-table-column-name)" : String,
  "[Type](#cfn-glue-table-column-type)" : String
}
```

### YAML
<a name="aws-properties-glue-table-column-syntax.yaml"></a>

```
  [Comment](#cfn-glue-table-column-comment): String
  [Name](#cfn-glue-table-column-name): String
  [Type](#cfn-glue-table-column-type): String
```

## Properties
<a name="aws-properties-glue-table-column-properties"></a>

`Comment`  <a name="cfn-glue-table-column-comment"></a>
A free-form text comment.  
*Required*: No  
*Type*: String  
*Pattern*: `[\u0020-\uD7FF\uE000-\uFFFD\uD800\uDC00-\uDBFF\uDFFF\t]*`  
*Minimum*: `0`  
*Maximum*: `255`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`Name`  <a name="cfn-glue-table-column-name"></a>
The name of the `Column`.  
*Required*: Yes  
*Type*: String  
*Pattern*: `[\u0020-\uD7FF\uE000-\uFFFD\uD800\uDC00-\uDBFF\uDFFF\t]*`  
*Minimum*: `1`  
*Maximum*: `255`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`Type`  <a name="cfn-glue-table-column-type"></a>
The data type of the `Column`.  
*Required*: No  
*Type*: String  
*Pattern*: `[\u0020-\uD7FF\uE000-\uFFFD\uD800\uDC00-\uDBFF\uDFFF\t]*`  
*Minimum*: `0`  
*Maximum*: `131072`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

## See also
<a name="aws-properties-glue-table-column--seealso"></a>
+ [Column Structure](https://docs.aws.amazon.com/glue/latest/dg/aws-glue-api-catalog-tables.html#aws-glue-api-catalog-tables-Column) in the *AWS Glue Developer Guide*



# AWS::Glue::Table IcebergInput
<a name="aws-properties-glue-table-iceberginput"></a>

Specifies an input structure that defines an Apache Iceberg metadata table.

## Syntax
<a name="aws-properties-glue-table-iceberginput-syntax"></a>

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

### JSON
<a name="aws-properties-glue-table-iceberginput-syntax.json"></a>

```
{
  "[MetadataOperation](#cfn-glue-table-iceberginput-metadataoperation)" : String,
  "[Version](#cfn-glue-table-iceberginput-version)" : String
}
```

### YAML
<a name="aws-properties-glue-table-iceberginput-syntax.yaml"></a>

```
  [MetadataOperation](#cfn-glue-table-iceberginput-metadataoperation): String
  [Version](#cfn-glue-table-iceberginput-version): String
```

## Properties
<a name="aws-properties-glue-table-iceberginput-properties"></a>

`MetadataOperation`  <a name="cfn-glue-table-iceberginput-metadataoperation"></a>
A required metadata operation. Can only be set to CREATE.  
*Required*: No  
*Type*: String  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`Version`  <a name="cfn-glue-table-iceberginput-version"></a>
The table version for the Iceberg table. Defaults to 2.  
*Required*: No  
*Type*: String  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

# AWS::Glue::Table OpenTableFormatInput
<a name="aws-properties-glue-table-opentableformatinput"></a>

Specifies an `OpenTableFormatInput` structure when creating an open format table.

## Syntax
<a name="aws-properties-glue-table-opentableformatinput-syntax"></a>

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

### JSON
<a name="aws-properties-glue-table-opentableformatinput-syntax.json"></a>

```
{
  "[IcebergInput](#cfn-glue-table-opentableformatinput-iceberginput)" : IcebergInput
}
```

### YAML
<a name="aws-properties-glue-table-opentableformatinput-syntax.yaml"></a>

```
  [IcebergInput](#cfn-glue-table-opentableformatinput-iceberginput): 
    IcebergInput
```

## Properties
<a name="aws-properties-glue-table-opentableformatinput-properties"></a>

`IcebergInput`  <a name="cfn-glue-table-opentableformatinput-iceberginput"></a>
Specifies an `IcebergInput` structure that defines an Apache Iceberg metadata table.  
*Required*: No  
*Type*: [IcebergInput](aws-properties-glue-table-iceberginput.md)  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

# AWS::Glue::Table Order
<a name="aws-properties-glue-table-order"></a>

Specifies the sort order of a sorted column.

## Syntax
<a name="aws-properties-glue-table-order-syntax"></a>

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

### JSON
<a name="aws-properties-glue-table-order-syntax.json"></a>

```
{
  "[Column](#cfn-glue-table-order-column)" : String,
  "[SortOrder](#cfn-glue-table-order-sortorder)" : Integer
}
```

### YAML
<a name="aws-properties-glue-table-order-syntax.yaml"></a>

```
  [Column](#cfn-glue-table-order-column): String
  [SortOrder](#cfn-glue-table-order-sortorder): Integer
```

## Properties
<a name="aws-properties-glue-table-order-properties"></a>

`Column`  <a name="cfn-glue-table-order-column"></a>
The name of the column.  
*Required*: Yes  
*Type*: [String](aws-properties-glue-table-column.md)  
*Pattern*: `[\u0020-\uD7FF\uE000-\uFFFD\uD800\uDC00-\uDBFF\uDFFF\t]*`  
*Minimum*: `1`  
*Maximum*: `255`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`SortOrder`  <a name="cfn-glue-table-order-sortorder"></a>
Indicates that the column is sorted in ascending order (`== 1`), or in descending order (`==0`).  
*Required*: Yes  
*Type*: Integer  
*Minimum*: `0`  
*Maximum*: `1`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

## See also
<a name="aws-properties-glue-table-order--seealso"></a>
+ [Order Structure](https://docs.aws.amazon.com/glue/latest/dg/aws-glue-api-catalog-tables.html#aws-glue-api-catalog-tables-Order) in the *AWS Glue Developer Guide*



# AWS::Glue::Table SchemaId
<a name="aws-properties-glue-table-schemaid"></a>

A structure that contains schema identity fields. Either this or the `SchemaVersionId` has to be provided.

## Syntax
<a name="aws-properties-glue-table-schemaid-syntax"></a>

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

### JSON
<a name="aws-properties-glue-table-schemaid-syntax.json"></a>

```
{
  "[RegistryName](#cfn-glue-table-schemaid-registryname)" : String,
  "[SchemaArn](#cfn-glue-table-schemaid-schemaarn)" : String,
  "[SchemaName](#cfn-glue-table-schemaid-schemaname)" : String
}
```

### YAML
<a name="aws-properties-glue-table-schemaid-syntax.yaml"></a>

```
  [RegistryName](#cfn-glue-table-schemaid-registryname): String
  [SchemaArn](#cfn-glue-table-schemaid-schemaarn): String
  [SchemaName](#cfn-glue-table-schemaid-schemaname): String
```

## Properties
<a name="aws-properties-glue-table-schemaid-properties"></a>

`RegistryName`  <a name="cfn-glue-table-schemaid-registryname"></a>
The name of the schema registry that contains the schema.  
*Required*: No  
*Type*: String  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`SchemaArn`  <a name="cfn-glue-table-schemaid-schemaarn"></a>
The Amazon Resource Name (ARN) of the schema. One of `SchemaArn` or `SchemaName` has to be provided.  
*Required*: No  
*Type*: String  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`SchemaName`  <a name="cfn-glue-table-schemaid-schemaname"></a>
The name of the schema. One of `SchemaArn` or `SchemaName` has to be provided.  
*Required*: No  
*Type*: String  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

# AWS::Glue::Table SchemaReference
<a name="aws-properties-glue-table-schemareference"></a>

An object that references a schema stored in the AWS Glue Schema Registry.

## Syntax
<a name="aws-properties-glue-table-schemareference-syntax"></a>

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

### JSON
<a name="aws-properties-glue-table-schemareference-syntax.json"></a>

```
{
  "[SchemaId](#cfn-glue-table-schemareference-schemaid)" : SchemaId,
  "[SchemaVersionId](#cfn-glue-table-schemareference-schemaversionid)" : String,
  "[SchemaVersionNumber](#cfn-glue-table-schemareference-schemaversionnumber)" : Integer
}
```

### YAML
<a name="aws-properties-glue-table-schemareference-syntax.yaml"></a>

```
  [SchemaId](#cfn-glue-table-schemareference-schemaid): 
    SchemaId
  [SchemaVersionId](#cfn-glue-table-schemareference-schemaversionid): String
  [SchemaVersionNumber](#cfn-glue-table-schemareference-schemaversionnumber): Integer
```

## Properties
<a name="aws-properties-glue-table-schemareference-properties"></a>

`SchemaId`  <a name="cfn-glue-table-schemareference-schemaid"></a>
A structure that contains schema identity fields. Either this or the `SchemaVersionId` has to be provided.  
*Required*: No  
*Type*: [SchemaId](aws-properties-glue-table-schemaid.md)  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`SchemaVersionId`  <a name="cfn-glue-table-schemareference-schemaversionid"></a>
The unique ID assigned to a version of the schema. Either this or the `SchemaId` has to be provided.  
*Required*: No  
*Type*: String  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`SchemaVersionNumber`  <a name="cfn-glue-table-schemareference-schemaversionnumber"></a>
The version number of the schema.  
*Required*: No  
*Type*: Integer  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

# AWS::Glue::Table SerdeInfo
<a name="aws-properties-glue-table-serdeinfo"></a>

Information about a serialization/deserialization program (SerDe) that serves as an extractor and loader.

## Syntax
<a name="aws-properties-glue-table-serdeinfo-syntax"></a>

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

### JSON
<a name="aws-properties-glue-table-serdeinfo-syntax.json"></a>

```
{
  "[Name](#cfn-glue-table-serdeinfo-name)" : String,
  "[Parameters](#cfn-glue-table-serdeinfo-parameters)" : Json,
  "[SerializationLibrary](#cfn-glue-table-serdeinfo-serializationlibrary)" : String
}
```

### YAML
<a name="aws-properties-glue-table-serdeinfo-syntax.yaml"></a>

```
  [Name](#cfn-glue-table-serdeinfo-name): String
  [Parameters](#cfn-glue-table-serdeinfo-parameters): Json
  [SerializationLibrary](#cfn-glue-table-serdeinfo-serializationlibrary): String
```

## Properties
<a name="aws-properties-glue-table-serdeinfo-properties"></a>

`Name`  <a name="cfn-glue-table-serdeinfo-name"></a>
Name of the SerDe.  
*Required*: No  
*Type*: String  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`Parameters`  <a name="cfn-glue-table-serdeinfo-parameters"></a>
These key-value pairs define initialization parameters for the SerDe.  
*Required*: No  
*Type*: Json  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`SerializationLibrary`  <a name="cfn-glue-table-serdeinfo-serializationlibrary"></a>
Usually the class that implements the SerDe. An example is `org.apache.hadoop.hive.serde2.columnar.ColumnarSerDe`.  
*Required*: No  
*Type*: String  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

## See also
<a name="aws-properties-glue-table-serdeinfo--seealso"></a>
+ [SerDeInfo Structure](https://docs.aws.amazon.com/glue/latest/dg/aws-glue-api-catalog-tables.html#aws-glue-api-catalog-tables-SerDeInfo) in the *AWS Glue Developer Guide*



# AWS::Glue::Table SkewedInfo
<a name="aws-properties-glue-table-skewedinfo"></a>

Specifies skewed values in a table. Skewed values are those that occur with very high frequency.

## Syntax
<a name="aws-properties-glue-table-skewedinfo-syntax"></a>

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

### JSON
<a name="aws-properties-glue-table-skewedinfo-syntax.json"></a>

```
{
  "[SkewedColumnNames](#cfn-glue-table-skewedinfo-skewedcolumnnames)" : [ String, ... ],
  "[SkewedColumnValueLocationMaps](#cfn-glue-table-skewedinfo-skewedcolumnvaluelocationmaps)" : Json,
  "[SkewedColumnValues](#cfn-glue-table-skewedinfo-skewedcolumnvalues)" : [ String, ... ]
}
```

### YAML
<a name="aws-properties-glue-table-skewedinfo-syntax.yaml"></a>

```
  [SkewedColumnNames](#cfn-glue-table-skewedinfo-skewedcolumnnames): 
    - String
  [SkewedColumnValueLocationMaps](#cfn-glue-table-skewedinfo-skewedcolumnvaluelocationmaps): Json
  [SkewedColumnValues](#cfn-glue-table-skewedinfo-skewedcolumnvalues): 
    - String
```

## Properties
<a name="aws-properties-glue-table-skewedinfo-properties"></a>

`SkewedColumnNames`  <a name="cfn-glue-table-skewedinfo-skewedcolumnnames"></a>
A list of names of columns that contain skewed values.  
*Required*: No  
*Type*: Array of String  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`SkewedColumnValueLocationMaps`  <a name="cfn-glue-table-skewedinfo-skewedcolumnvaluelocationmaps"></a>
A mapping of skewed values to the columns that contain them.  
*Required*: No  
*Type*: Json  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`SkewedColumnValues`  <a name="cfn-glue-table-skewedinfo-skewedcolumnvalues"></a>
A list of values that appear so frequently as to be considered skewed.  
*Required*: No  
*Type*: Array of String  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

# AWS::Glue::Table StorageDescriptor
<a name="aws-properties-glue-table-storagedescriptor"></a>

Describes the physical storage of table data.

## Syntax
<a name="aws-properties-glue-table-storagedescriptor-syntax"></a>

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

### JSON
<a name="aws-properties-glue-table-storagedescriptor-syntax.json"></a>

```
{
  "[BucketColumns](#cfn-glue-table-storagedescriptor-bucketcolumns)" : [ String, ... ],
  "[Columns](#cfn-glue-table-storagedescriptor-columns)" : [ Column, ... ],
  "[Compressed](#cfn-glue-table-storagedescriptor-compressed)" : Boolean,
  "[InputFormat](#cfn-glue-table-storagedescriptor-inputformat)" : String,
  "[Location](#cfn-glue-table-storagedescriptor-location)" : String,
  "[NumberOfBuckets](#cfn-glue-table-storagedescriptor-numberofbuckets)" : Integer,
  "[OutputFormat](#cfn-glue-table-storagedescriptor-outputformat)" : String,
  "[Parameters](#cfn-glue-table-storagedescriptor-parameters)" : Json,
  "[SchemaReference](#cfn-glue-table-storagedescriptor-schemareference)" : SchemaReference,
  "[SerdeInfo](#cfn-glue-table-storagedescriptor-serdeinfo)" : SerdeInfo,
  "[SkewedInfo](#cfn-glue-table-storagedescriptor-skewedinfo)" : SkewedInfo,
  "[SortColumns](#cfn-glue-table-storagedescriptor-sortcolumns)" : [ Order, ... ],
  "[StoredAsSubDirectories](#cfn-glue-table-storagedescriptor-storedassubdirectories)" : Boolean
}
```

### YAML
<a name="aws-properties-glue-table-storagedescriptor-syntax.yaml"></a>

```
  [BucketColumns](#cfn-glue-table-storagedescriptor-bucketcolumns): 
    - String
  [Columns](#cfn-glue-table-storagedescriptor-columns): 
    - Column
  [Compressed](#cfn-glue-table-storagedescriptor-compressed): Boolean
  [InputFormat](#cfn-glue-table-storagedescriptor-inputformat): String
  [Location](#cfn-glue-table-storagedescriptor-location): String
  [NumberOfBuckets](#cfn-glue-table-storagedescriptor-numberofbuckets): Integer
  [OutputFormat](#cfn-glue-table-storagedescriptor-outputformat): String
  [Parameters](#cfn-glue-table-storagedescriptor-parameters): Json
  [SchemaReference](#cfn-glue-table-storagedescriptor-schemareference): 
    SchemaReference
  [SerdeInfo](#cfn-glue-table-storagedescriptor-serdeinfo): 
    SerdeInfo
  [SkewedInfo](#cfn-glue-table-storagedescriptor-skewedinfo): 
    SkewedInfo
  [SortColumns](#cfn-glue-table-storagedescriptor-sortcolumns): 
    - Order
  [StoredAsSubDirectories](#cfn-glue-table-storagedescriptor-storedassubdirectories): Boolean
```

## Properties
<a name="aws-properties-glue-table-storagedescriptor-properties"></a>

`BucketColumns`  <a name="cfn-glue-table-storagedescriptor-bucketcolumns"></a>
A list of reducer grouping columns, clustering columns, and bucketing columns in the table.  
*Required*: No  
*Type*: Array of String  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`Columns`  <a name="cfn-glue-table-storagedescriptor-columns"></a>
A list of the `Columns` in the table.  
*Required*: No  
*Type*: Array of [Column](aws-properties-glue-table-column.md)  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`Compressed`  <a name="cfn-glue-table-storagedescriptor-compressed"></a>
`True` if the data in the table is compressed, or `False` if not.  
*Required*: No  
*Type*: Boolean  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`InputFormat`  <a name="cfn-glue-table-storagedescriptor-inputformat"></a>
The input format: `SequenceFileInputFormat` (binary), or `TextInputFormat`, or a custom format.  
*Required*: No  
*Type*: String  
*Pattern*: `[\u0020-\uD7FF\uE000-\uFFFD\uD800\uDC00-\uDBFF\uDFFF\t]*`  
*Maximum*: `128`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`Location`  <a name="cfn-glue-table-storagedescriptor-location"></a>
The physical location of the table. By default, this takes the form of the warehouse location, followed by the database location in the warehouse, followed by the table name.  
*Required*: No  
*Type*: String  
*Pattern*: `[\u0020-\uD7FF\uE000-\uFFFD\uD800\uDC00-\uDBFF\uDFFF\r\n\t]*`  
*Maximum*: `2056`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`NumberOfBuckets`  <a name="cfn-glue-table-storagedescriptor-numberofbuckets"></a>
Must be specified if the table contains any dimension columns.  
*Required*: No  
*Type*: Integer  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`OutputFormat`  <a name="cfn-glue-table-storagedescriptor-outputformat"></a>
The output format: `SequenceFileOutputFormat` (binary), or `IgnoreKeyTextOutputFormat`, or a custom format.  
*Required*: No  
*Type*: String  
*Pattern*: `[\u0020-\uD7FF\uE000-\uFFFD\uD800\uDC00-\uDBFF\uDFFF\t]*`  
*Maximum*: `128`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`Parameters`  <a name="cfn-glue-table-storagedescriptor-parameters"></a>
The user-supplied properties in key-value form.  
*Required*: No  
*Type*: Json  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`SchemaReference`  <a name="cfn-glue-table-storagedescriptor-schemareference"></a>
An object that references a schema stored in the AWS Glue Schema Registry.  
*Required*: No  
*Type*: [SchemaReference](aws-properties-glue-table-schemareference.md)  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`SerdeInfo`  <a name="cfn-glue-table-storagedescriptor-serdeinfo"></a>
The serialization/deserialization (SerDe) information.  
*Required*: No  
*Type*: [SerdeInfo](aws-properties-glue-table-serdeinfo.md)  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`SkewedInfo`  <a name="cfn-glue-table-storagedescriptor-skewedinfo"></a>
The information about values that appear frequently in a column (skewed values).  
*Required*: No  
*Type*: [SkewedInfo](aws-properties-glue-table-skewedinfo.md)  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`SortColumns`  <a name="cfn-glue-table-storagedescriptor-sortcolumns"></a>
A list specifying the sort order of each bucket in the table.  
*Required*: No  
*Type*: Array of [Order](aws-properties-glue-table-order.md)  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`StoredAsSubDirectories`  <a name="cfn-glue-table-storagedescriptor-storedassubdirectories"></a>
`True` if the table data is stored in subdirectories, or `False` if not.  
*Required*: No  
*Type*: Boolean  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

## See also
<a name="aws-properties-glue-table-storagedescriptor--seealso"></a>
+ [StorageDescriptor Structure](https://docs.aws.amazon.com/glue/latest/dg/aws-glue-api-catalog-tables.html#aws-glue-api-catalog-tables-StorageDescriptor) in the *AWS Glue Developer Guide*



# AWS::Glue::Table TableIdentifier
<a name="aws-properties-glue-table-tableidentifier"></a>

A structure that describes a target table for resource linking.

## Syntax
<a name="aws-properties-glue-table-tableidentifier-syntax"></a>

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

### JSON
<a name="aws-properties-glue-table-tableidentifier-syntax.json"></a>

```
{
  "[CatalogId](#cfn-glue-table-tableidentifier-catalogid)" : String,
  "[DatabaseName](#cfn-glue-table-tableidentifier-databasename)" : String,
  "[Name](#cfn-glue-table-tableidentifier-name)" : String,
  "[Region](#cfn-glue-table-tableidentifier-region)" : String
}
```

### YAML
<a name="aws-properties-glue-table-tableidentifier-syntax.yaml"></a>

```
  [CatalogId](#cfn-glue-table-tableidentifier-catalogid): String
  [DatabaseName](#cfn-glue-table-tableidentifier-databasename): String
  [Name](#cfn-glue-table-tableidentifier-name): String
  [Region](#cfn-glue-table-tableidentifier-region): String
```

## Properties
<a name="aws-properties-glue-table-tableidentifier-properties"></a>

`CatalogId`  <a name="cfn-glue-table-tableidentifier-catalogid"></a>
The ID of the Data Catalog in which the table resides.  
*Required*: No  
*Type*: String  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`DatabaseName`  <a name="cfn-glue-table-tableidentifier-databasename"></a>
The name of the catalog database that contains the target table.  
*Required*: No  
*Type*: String  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`Name`  <a name="cfn-glue-table-tableidentifier-name"></a>
The name of the target table.  
*Required*: No  
*Type*: String  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`Region`  <a name="cfn-glue-table-tableidentifier-region"></a>
The Region of the table.  
*Required*: No  
*Type*: String  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

# AWS::Glue::Table TableInput
<a name="aws-properties-glue-table-tableinput"></a>

A structure used to define a table.

## Syntax
<a name="aws-properties-glue-table-tableinput-syntax"></a>

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

### JSON
<a name="aws-properties-glue-table-tableinput-syntax.json"></a>

```
{
  "[Description](#cfn-glue-table-tableinput-description)" : String,
  "[Name](#cfn-glue-table-tableinput-name)" : String,
  "[Owner](#cfn-glue-table-tableinput-owner)" : String,
  "[Parameters](#cfn-glue-table-tableinput-parameters)" : Json,
  "[PartitionKeys](#cfn-glue-table-tableinput-partitionkeys)" : [ Column, ... ],
  "[Retention](#cfn-glue-table-tableinput-retention)" : Integer,
  "[StorageDescriptor](#cfn-glue-table-tableinput-storagedescriptor)" : StorageDescriptor,
  "[TableType](#cfn-glue-table-tableinput-tabletype)" : String,
  "[TargetTable](#cfn-glue-table-tableinput-targettable)" : TableIdentifier,
  "[ViewExpandedText](#cfn-glue-table-tableinput-viewexpandedtext)" : String,
  "[ViewOriginalText](#cfn-glue-table-tableinput-vieworiginaltext)" : String
}
```

### YAML
<a name="aws-properties-glue-table-tableinput-syntax.yaml"></a>

```
  [Description](#cfn-glue-table-tableinput-description): String
  [Name](#cfn-glue-table-tableinput-name): String
  [Owner](#cfn-glue-table-tableinput-owner): String
  [Parameters](#cfn-glue-table-tableinput-parameters): Json
  [PartitionKeys](#cfn-glue-table-tableinput-partitionkeys): 
    - Column
  [Retention](#cfn-glue-table-tableinput-retention): Integer
  [StorageDescriptor](#cfn-glue-table-tableinput-storagedescriptor): 
    StorageDescriptor
  [TableType](#cfn-glue-table-tableinput-tabletype): String
  [TargetTable](#cfn-glue-table-tableinput-targettable): 
    TableIdentifier
  [ViewExpandedText](#cfn-glue-table-tableinput-viewexpandedtext): String
  [ViewOriginalText](#cfn-glue-table-tableinput-vieworiginaltext): String
```

## Properties
<a name="aws-properties-glue-table-tableinput-properties"></a>

`Description`  <a name="cfn-glue-table-tableinput-description"></a>
A description of the table.  
*Required*: No  
*Type*: String  
*Pattern*: `[\u0020-\uD7FF\uE000-\uFFFD\uD800\uDC00-\uDBFF\uDFFF\r\n\t]*`  
*Minimum*: `0`  
*Maximum*: `2048`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`Name`  <a name="cfn-glue-table-tableinput-name"></a>
The table name. For Hive compatibility, this is folded to lowercase when it is stored.  
*Required*: No  
*Type*: String  
*Pattern*: `[\u0020-\uD7FF\uE000-\uFFFD\uD800\uDC00-\uDBFF\uDFFF\t]*`  
*Minimum*: `1`  
*Maximum*: `255`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`Owner`  <a name="cfn-glue-table-tableinput-owner"></a>
The table owner. Included for Apache Hive compatibility. Not used in the normal course of AWS Glue operations.  
*Required*: No  
*Type*: String  
*Pattern*: `[\u0020-\uD7FF\uE000-\uFFFD\uD800\uDC00-\uDBFF\uDFFF\t]*`  
*Minimum*: `1`  
*Maximum*: `255`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`Parameters`  <a name="cfn-glue-table-tableinput-parameters"></a>
These key-value pairs define properties associated with the table.  
*Required*: No  
*Type*: Json  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`PartitionKeys`  <a name="cfn-glue-table-tableinput-partitionkeys"></a>
A list of columns by which the table is partitioned. Only primitive types are supported as partition keys.  
When you create a table used by Amazon Athena, and you do not specify any `partitionKeys`, you must at least set the value of `partitionKeys` to an empty list. For example:  
 `"PartitionKeys": []`   
*Required*: No  
*Type*: Array of [Column](aws-properties-glue-table-column.md)  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`Retention`  <a name="cfn-glue-table-tableinput-retention"></a>
The retention time for this table.  
*Required*: No  
*Type*: Integer  
*Minimum*: `0`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`StorageDescriptor`  <a name="cfn-glue-table-tableinput-storagedescriptor"></a>
A storage descriptor containing information about the physical storage of this table.  
*Required*: No  
*Type*: [StorageDescriptor](aws-properties-glue-table-storagedescriptor.md)  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`TableType`  <a name="cfn-glue-table-tableinput-tabletype"></a>
The type of this table. AWS Glue will create tables with the `EXTERNAL_TABLE` type. Other services, such as Athena, may create tables with additional table types.   
AWS Glue related table types:    
EXTERNAL\$1TABLE  
Hive compatible attribute - indicates a non-Hive managed table.  
GOVERNED  
Used by AWS Lake Formation. The AWS Glue Data Catalog understands `GOVERNED`.
*Required*: No  
*Type*: String  
*Maximum*: `255`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`TargetTable`  <a name="cfn-glue-table-tableinput-targettable"></a>
A `TableIdentifier` structure that describes a target table for resource linking.  
*Required*: No  
*Type*: [TableIdentifier](aws-properties-glue-table-tableidentifier.md)  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`ViewExpandedText`  <a name="cfn-glue-table-tableinput-viewexpandedtext"></a>
Included for Apache Hive compatibility. Not used in the normal course of AWS Glue operations.  
*Required*: No  
*Type*: String  
*Maximum*: `409600`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`ViewOriginalText`  <a name="cfn-glue-table-tableinput-vieworiginaltext"></a>
Included for Apache Hive compatibility. Not used in the normal course of AWS Glue operations. If the table is a `VIRTUAL_VIEW`, certain Athena configuration encoded in base64.  
*Required*: No  
*Type*: String  
*Maximum*: `409600`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)