ExternalTableProps

class aws_cdk.aws_glue_alpha.ExternalTableProps(*, columns, database, data_format, compressed=None, description=None, enable_partition_filtering=None, parameters=None, partition_indexes=None, partition_keys=None, storage_parameters=None, stored_as_sub_directories=None, table_name=None, connection, external_data_location)

Bases: TableBaseProps

Parameters:
  • columns (Sequence[Union[Column, Dict[str, Any]]]) – (experimental) Columns of the table.

  • database (IDatabase) – (experimental) Database in which to store the table.

  • data_format (DataFormat) – (experimental) Storage type of the table’s data.

  • compressed (Optional[bool]) – (experimental) Indicates whether the table’s data is compressed or not. Default: false

  • description (Optional[str]) – (experimental) Description of the table. Default: generated

  • enable_partition_filtering (Optional[bool]) – (experimental) Enables partition filtering. Default: - The parameter is not defined

  • parameters (Optional[Mapping[str, str]]) – (experimental) The key/value pairs define properties associated with the table. The key/value pairs that are allowed to be submitted are not limited, however their functionality is not guaranteed. Default: - The parameter is not defined

  • partition_indexes (Optional[Sequence[Union[PartitionIndex, Dict[str, Any]]]]) – (experimental) Partition indexes on the table. A maximum of 3 indexes are allowed on a table. Keys in the index must be part of the table’s partition keys. Default: table has no partition indexes

  • partition_keys (Optional[Sequence[Union[Column, Dict[str, Any]]]]) – (experimental) Partition columns of the table. Default: table is not partitioned

  • storage_parameters (Optional[Sequence[StorageParameter]]) – (experimental) The user-supplied properties for the description of the physical storage of this table. These properties help describe the format of the data that is stored within the crawled data sources. The key/value pairs that are allowed to be submitted are not limited, however their functionality is not guaranteed. Some keys will be auto-populated by glue crawlers, however, you can override them by specifying the key and value in this property. Default: - The parameter is not defined

  • stored_as_sub_directories (Optional[bool]) – (experimental) Indicates whether the table data is stored in subdirectories. Default: false

  • table_name (Optional[str]) – (experimental) Name of the table. Default: - generated by CDK.

  • connection (IConnection) – (experimental) The connection the table will use when performing reads and writes. Default: - No connection

  • external_data_location (str) – (experimental) The data source location of the glue table, (e.g. default_db_public_example for Redshift). If this property is set, it will override both bucket and s3Prefix. Default: - No outsourced data source location

Stability:

experimental

ExampleMetadata:

infused

Example:

# my_connection: glue.Connection
# my_database: glue.Database

glue.ExternalTable(self, "MyTable",
    connection=my_connection,
    external_data_location="default_db_public_example",  # A table in Redshift
    # ...
    database=my_database,
    columns=[glue.Column(
        name="col1",
        type=glue.Schema.STRING
    )],
    data_format=glue.DataFormat.JSON
)

Attributes

columns

(experimental) Columns of the table.

Stability:

experimental

compressed

(experimental) Indicates whether the table’s data is compressed or not.

Default:

false

Stability:

experimental

connection

(experimental) The connection the table will use when performing reads and writes.

Default:
  • No connection

Stability:

experimental

data_format

(experimental) Storage type of the table’s data.

Stability:

experimental

database

(experimental) Database in which to store the table.

Stability:

experimental

description

(experimental) Description of the table.

Default:

generated

Stability:

experimental

enable_partition_filtering

(experimental) Enables partition filtering.

Default:
  • The parameter is not defined

See:

https://docs.aws.amazon.com/athena/latest/ug/glue-best-practices.html#glue-best-practices-partition-index

Stability:

experimental

external_data_location

(experimental) The data source location of the glue table, (e.g. default_db_public_example for Redshift).

If this property is set, it will override both bucket and s3Prefix.

Default:
  • No outsourced data source location

Stability:

experimental

parameters

(experimental) The key/value pairs define properties associated with the table.

The key/value pairs that are allowed to be submitted are not limited, however their functionality is not guaranteed.

Default:
  • The parameter is not defined

See:

https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-table-tableinput.html#cfn-glue-table-tableinput-parameters

Stability:

experimental

partition_indexes

(experimental) Partition indexes on the table.

A maximum of 3 indexes are allowed on a table. Keys in the index must be part of the table’s partition keys.

Default:

table has no partition indexes

Stability:

experimental

partition_keys

(experimental) Partition columns of the table.

Default:

table is not partitioned

Stability:

experimental

storage_parameters

(experimental) The user-supplied properties for the description of the physical storage of this table.

These properties help describe the format of the data that is stored within the crawled data sources.

The key/value pairs that are allowed to be submitted are not limited, however their functionality is not guaranteed.

Some keys will be auto-populated by glue crawlers, however, you can override them by specifying the key and value in this property.

Default:
  • The parameter is not defined

See:

https://docs.aws.amazon.com/redshift/latest/dg/r_CREATE_EXTERNAL_TABLE.html#r_CREATE_EXTERNAL_TABLE-parameters - under “TABLE PROPERTIES”

Stability:

experimental

Example:

# glue_database: glue.IDatabase

table = glue.Table(self, "Table",
    storage_parameters=[
        glue.StorageParameter.skip_header_line_count(1),
        glue.StorageParameter.compression_type(glue.CompressionType.GZIP),
        glue.StorageParameter.custom("foo", "bar"),  # Will have no effect
        glue.StorageParameter.custom("separatorChar", ","),  # Will describe the separator char used in the data
        glue.StorageParameter.custom(glue.StorageParameters.WRITE_PARALLEL, "off")
    ],
    # ...
    database=glue_database,
    columns=[glue.Column(
        name="col1",
        type=glue.Schema.STRING
    )],
    data_format=glue.DataFormat.CSV
)
stored_as_sub_directories

(experimental) Indicates whether the table data is stored in subdirectories.

Default:

false

Stability:

experimental

table_name

(experimental) Name of the table.

Default:
  • generated by CDK.

Stability:

experimental