Class Table.Builder

java.lang.Object
software.amazon.awscdk.services.glue.alpha.Table.Builder
All Implemented Interfaces:
software.amazon.jsii.Builder<Table>
Enclosing class:
Table

@Stability(Experimental) public static final class Table.Builder extends Object implements software.amazon.jsii.Builder<Table>
(experimental) A fluent builder for Table.
  • Method Details

    • create

      @Stability(Experimental) public static Table.Builder create(software.constructs.Construct scope, String id)
      Parameters:
      scope - This parameter is required.
      id - This parameter is required.
      Returns:
      a new instance of Table.Builder.
    • columns

      @Stability(Experimental) public Table.Builder columns(List<? extends Column> columns)
      (experimental) Columns of the table.

      Parameters:
      columns - Columns of the table. This parameter is required.
      Returns:
      this
    • database

      @Stability(Experimental) public Table.Builder database(IDatabase database)
      (experimental) Database in which to store the table.

      Parameters:
      database - Database in which to store the table. This parameter is required.
      Returns:
      this
    • dataFormat

      @Stability(Experimental) public Table.Builder dataFormat(DataFormat dataFormat)
      (experimental) Storage type of the table's data.

      Parameters:
      dataFormat - Storage type of the table's data. This parameter is required.
      Returns:
      this
    • compressed

      @Stability(Experimental) public Table.Builder compressed(Boolean compressed)
      (experimental) Indicates whether the table's data is compressed or not.

      Default: false

      Parameters:
      compressed - Indicates whether the table's data is compressed or not. This parameter is required.
      Returns:
      this
    • description

      @Stability(Experimental) public Table.Builder description(String description)
      (experimental) Description of the table.

      Default: generated

      Parameters:
      description - Description of the table. This parameter is required.
      Returns:
      this
    • enablePartitionFiltering

      @Stability(Experimental) public Table.Builder enablePartitionFiltering(Boolean enablePartitionFiltering)
      (experimental) Enables partition filtering.

      Default: - The parameter is not defined

      Parameters:
      enablePartitionFiltering - Enables partition filtering. This parameter is required.
      Returns:
      this
      See Also:
    • parameters

      @Stability(Experimental) public Table.Builder parameters(Map<String,String> 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

      Parameters:
      parameters - The key/value pairs define properties associated with the table. This parameter is required.
      Returns:
      this
      See Also:
    • partitionIndexes

      @Stability(Experimental) public Table.Builder partitionIndexes(List<? extends PartitionIndex> partitionIndexes)
      (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

      Parameters:
      partitionIndexes - Partition indexes on the table. This parameter is required.
      Returns:
      this
    • partitionKeys

      @Stability(Experimental) public Table.Builder partitionKeys(List<? extends Column> partitionKeys)
      (experimental) Partition columns of the table.

      Default: table is not partitioned

      Parameters:
      partitionKeys - Partition columns of the table. This parameter is required.
      Returns:
      this
    • storageParameters

      @Stability(Experimental) public Table.Builder storageParameters(List<? extends StorageParameter> storageParameters)
      (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;
       Table table = Table.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();
       

      Parameters:
      storageParameters - The user-supplied properties for the description of the physical storage of this table. This parameter is required.
      Returns:
      this
      See Also:
    • storedAsSubDirectories

      @Stability(Experimental) public Table.Builder storedAsSubDirectories(Boolean storedAsSubDirectories)
      (experimental) Indicates whether the table data is stored in subdirectories.

      Default: false

      Parameters:
      storedAsSubDirectories - Indicates whether the table data is stored in subdirectories. This parameter is required.
      Returns:
      this
    • tableName

      @Stability(Experimental) public Table.Builder tableName(String tableName)
      (experimental) Name of the table.

      Default: - generated by CDK.

      Parameters:
      tableName - Name of the table. This parameter is required.
      Returns:
      this
    • bucket

      @Stability(Experimental) public Table.Builder bucket(IBucket bucket)
      (experimental) S3 bucket in which to store data.

      Default: one is created for you

      Parameters:
      bucket - S3 bucket in which to store data. This parameter is required.
      Returns:
      this
    • encryption

      @Stability(Experimental) public Table.Builder encryption(TableEncryption encryption)
      (experimental) The kind of encryption to secure the data with.

      You can only provide this option if you are not explicitly passing in a bucket.

      If you choose SSE-KMS, you can provide an un-managed KMS key with encryptionKey. If you choose CSE-KMS, you must provide an un-managed KMS key with encryptionKey.

      Default: BucketEncryption.S3_MANAGED

      Parameters:
      encryption - The kind of encryption to secure the data with. This parameter is required.
      Returns:
      this
    • encryptionKey

      @Stability(Experimental) public Table.Builder encryptionKey(IKey encryptionKey)
      (experimental) External KMS key to use for bucket encryption.

      The encryption property must be SSE-KMS or CSE-KMS.

      Default: key is managed by KMS.

      Parameters:
      encryptionKey - External KMS key to use for bucket encryption. This parameter is required.
      Returns:
      this
    • s3Prefix

      @Stability(Experimental) public Table.Builder s3Prefix(String s3Prefix)
      (experimental) S3 prefix under which table objects are stored.

      Default: - No prefix. The data will be stored under the root of the bucket.

      Parameters:
      s3Prefix - S3 prefix under which table objects are stored. This parameter is required.
      Returns:
      this
    • build

      @Stability(Experimental) public Table build()
      Specified by:
      build in interface software.amazon.jsii.Builder<Table>
      Returns:
      a newly built instance of Table.