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

@Generated(value="jsii-pacmak/1.139.0 (build 26a6b54)", date="2026-09-02T11:03:36.269Z") @Stability(Experimental) public interface TableBaseProps extends software.amazon.jsii.JsiiSerializable
Example:

 // 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();
 
  • Method Details

    • getColumns

      @Stability(Experimental) @NotNull List<Column> getColumns()
      (experimental) Columns of the table.
    • getDatabase

      @Stability(Experimental) @NotNull IDatabase getDatabase()
      (experimental) Database in which to store the table.
    • getDataFormat

      @Stability(Experimental) @NotNull DataFormat getDataFormat()
      (experimental) Storage type of the table's data.
    • getCompressed

      @Stability(Experimental) @Nullable default Boolean getCompressed()
      (experimental) Indicates whether the table's data is compressed or not.

      Default: false

    • getDescription

      @Stability(Experimental) @Nullable default String getDescription()
      (experimental) Description of the table.

      Default: generated

    • getEnablePartitionFiltering

      @Stability(Experimental) @Nullable default Boolean getEnablePartitionFiltering()
      (experimental) Enables partition filtering.

      Default: - The parameter is not defined

      See Also:
    • getHasEncryptedData

      @Stability(Experimental) @Nullable default Boolean getHasEncryptedData()
      (experimental) Whether the data stored in the table is encrypted.

      This sets the has_encrypted_data table 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_data through parameters - use this property instead. A conflicting value in parameters is rejected.

      Default: true

      See Also:
    • getParameters

      @Stability(Experimental) @Nullable default Map<String,String> 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

      @Stability(Experimental) @Nullable default List<PartitionIndex> 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

      @Stability(Experimental) @Nullable default List<Column> 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 PARTITION statements.

      Default: - No partition projection

      See Also:
    • getStorageParameters

      @Stability(Experimental) @Nullable default List<StorageParameter> 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

      @Stability(Experimental) @Nullable default Boolean getStoredAsSubDirectories()
      (experimental) Indicates whether the table data is stored in subdirectories.

      Default: false

    • getTableName

      @Stability(Experimental) @Nullable default String getTableName()
      (experimental) Name of the table.

      Default: - generated by CDK.

    • builder

      @Stability(Experimental) static TableBaseProps.Builder builder()
      Returns:
      a TableBaseProps.Builder of TableBaseProps