Interface TableBaseProps
- All Superinterfaces:
software.amazon.jsii.JsiiSerializable
- All Known Subinterfaces:
ExternalTableProps,S3TableProps
- All Known Implementing Classes:
ExternalTableProps.Jsii$Proxy,S3TableProps.Jsii$Proxy,TableBaseProps.Jsii$Proxy
// The code below shows an example of how to instantiate this type.
// The values are placeholders you should change.
import software.amazon.awscdk.services.glue.alpha.*;
Database database;
DataFormat dataFormat;
PartitionProjectionConfiguration partitionProjectionConfiguration;
StorageParameter storageParameter;
Type type;
TableBaseProps tableBaseProps = TableBaseProps.builder()
.columns(List.of(Column.builder()
.name("name")
.type(type)
// the properties below are optional
.comment("comment")
.build()))
.database(database)
.dataFormat(dataFormat)
// the properties below are optional
.compressed(false)
.description("description")
.enablePartitionFiltering(false)
.hasEncryptedData(false)
.parameters(Map.of(
"parametersKey", "parameters"))
.partitionIndexes(List.of(PartitionIndex.builder()
.keyNames(List.of("keyNames"))
// the properties below are optional
.indexName("indexName")
.build()))
.partitionKeys(List.of(Column.builder()
.name("name")
.type(type)
// the properties below are optional
.comment("comment")
.build()))
.partitionProjection(Map.of(
"partitionProjectionKey", partitionProjectionConfiguration))
.storageParameters(List.of(storageParameter))
.storedAsSubDirectories(false)
.tableName("tableName")
.build();
-
Nested Class Summary
Nested ClassesModifier and TypeInterfaceDescriptionstatic final classA builder forTableBasePropsstatic final classAn implementation forTableBaseProps -
Method Summary
Modifier and TypeMethodDescriptionstatic TableBaseProps.Builderbuilder()(experimental) Columns of the table.default Boolean(experimental) Indicates whether the table's data is compressed or not.(experimental) Database in which to store the table.(experimental) Storage type of the table's data.default String(experimental) Description of the table.default Boolean(experimental) Enables partition filtering.default Boolean(experimental) Whether the data stored in the table is encrypted.(experimental) The key/value pairs define properties associated with the table.default List<PartitionIndex> (experimental) Partition indexes on the table.(experimental) Partition columns of the table.default Map<String, PartitionProjectionConfiguration> (experimental) Partition projection configuration for this table.default List<StorageParameter> (experimental) The user-supplied properties for the description of the physical storage of this table.default Boolean(experimental) Indicates whether the table data is stored in subdirectories.default String(experimental) Name of the table.Methods inherited from interface software.amazon.jsii.JsiiSerializable
$jsii$toJson
-
Method Details
-
getColumns
(experimental) Columns of the table. -
getDatabase
(experimental) Database in which to store the table. -
getDataFormat
(experimental) Storage type of the table's data. -
getCompressed
(experimental) Indicates whether the table's data is compressed or not.Default: false
-
getDescription
(experimental) Description of the table.Default: generated
-
getEnablePartitionFiltering
(experimental) Enables partition filtering.Default: - The parameter is not defined
- See Also:
-
getHasEncryptedData
(experimental) Whether the data stored in the table is encrypted.This sets the
has_encrypted_datatable parameter. Athena reads it when querying client-side (CSE-KMS) encrypted datasets; for server-side encrypted (SSE-S3 / SSE-KMS) or unencrypted data it has no effect, since Amazon S3 decrypts server-side encrypted objects transparently.Do not also set
has_encrypted_datathroughparameters- use this property instead. A conflicting value inparametersis rejected.Default: true
- See Also:
-
getParameters
(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 Also:
-
getPartitionIndexes
(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
-
getPartitionKeys
(experimental) Partition columns of the table.Default: table is not partitioned
-
getPartitionProjection
@Stability(Experimental) @Nullable default Map<String,PartitionProjectionConfiguration> getPartitionProjection()(experimental) Partition projection configuration for this table.Partition projection allows Athena to automatically add new partitions without requiring
ALTER TABLE ADD PARTITIONstatements.Default: - No partition projection
- See Also:
-
getStorageParameters
(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
Example:
IDatabase glueDatabase; S3Table table = S3Table.Builder.create(this, "Table") .storageParameters(List.of(StorageParameter.skipHeaderLineCount(1), StorageParameter.compressionType(CompressionType.GZIP), StorageParameter.custom("foo", "bar"), StorageParameter.custom("separatorChar", ","), StorageParameter.custom(StorageParameters.WRITE_PARALLEL, "off"))) // ... .database(glueDatabase) .columns(List.of(Column.builder() .name("col1") .type(Schema.STRING) .build())) .dataFormat(DataFormat.CSV) .build();- See Also:
-
getStoredAsSubDirectories
(experimental) Indicates whether the table data is stored in subdirectories.Default: false
-
getTableName
(experimental) Name of the table.Default: - generated by CDK.
-
builder
- Returns:
- a
TableBaseProps.BuilderofTableBaseProps
-