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.*;
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()Columns of the table.default BooleanIndicates whether the table's data is compressed or not.Database in which to store the table.Storage type of the table's data.default StringDescription of the table.default BooleanEnables partition filtering.default BooleanWhether the data stored in the table is encrypted.The key/value pairs define properties associated with the table.default List<PartitionIndex> Partition indexes on the table.Partition columns of the table.default Map<String, PartitionProjectionConfiguration> Partition projection configuration for this table.default List<StorageParameter> The user-supplied properties for the description of the physical storage of this table.default BooleanIndicates whether the table data is stored in subdirectories.default StringName of the table.Methods inherited from interface software.amazon.jsii.JsiiSerializable
$jsii$toJson
-
Method Details
-
getColumns
Columns of the table. -
getDatabase
Database in which to store the table. -
getDataFormat
Storage type of the table's data. -
getCompressed
Indicates whether the table's data is compressed or not.Default: false
-
getDescription
Description of the table.Default: generated
-
getEnablePartitionFiltering
Enables partition filtering.Default: - The parameter is not defined
- See Also:
-
getHasEncryptedData
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
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
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
Partition columns of the table.Default: table is not partitioned
-
getPartitionProjection
@Stability(Stable) @Nullable default Map<String,PartitionProjectionConfiguration> getPartitionProjection()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
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
Indicates whether the table data is stored in subdirectories.Default: false
-
getTableName
Name of the table.Default: - generated by CDK.
-
builder
- Returns:
- a
TableBaseProps.BuilderofTableBaseProps
-