Class TPCDSMockMetadataHandler

  • All Implemented Interfaces:
    com.amazonaws.services.lambda.runtime.RequestStreamHandler

    public class TPCDSMockMetadataHandler
    extends TPCDSMetadataHandler
    Handles metadata requests for the Athena TPC-DS Connector.

    For more detail, please see the module's README.md, some notable characteristics of this class include:

    1. Provides 5 Schems, each representing a different scale factor (1,10,100,250,1000) 2. Each schema has 25 TPC-DS tables 3. Each table is divided into NUM_SPLITS splits * scale_factor/10

    • Field Detail

      • SCHEMA_NAMES

        protected static final Set<String> SCHEMA_NAMES
    • Constructor Detail

      • TPCDSMockMetadataHandler

        public TPCDSMockMetadataHandler​(Map<String,​String> configOptions)
      • TPCDSMockMetadataHandler

        protected TPCDSMockMetadataHandler​(EncryptionKeyFactory keyFactory,
                                           software.amazon.awssdk.services.secretsmanager.SecretsManagerClient secretsManager,
                                           software.amazon.awssdk.services.athena.AthenaClient athena,
                                           String spillBucket,
                                           String spillPrefix,
                                           Map<String,​String> configOptions)
    • Method Detail

      • doListSchemaNames

        public ListSchemasResponse doListSchemaNames​(BlockAllocator allocator,
                                                     ListSchemasRequest request)
        Returns our static list of schemas which correspond to the scale factor of the dataset we will generate.
        Overrides:
        doListSchemaNames in class TPCDSMetadataHandler
        Parameters:
        allocator - Tool for creating and managing Apache Arrow Blocks.
        request - Provides details on who made the request and which Athena catalog they are querying.
        Returns:
        A ListSchemasResponse which primarily contains a Set of schema names and a catalog name corresponding the Athena catalog that was queried.
        See Also:
        MetadataHandler
      • doListTables

        public ListTablesResponse doListTables​(BlockAllocator allocator,
                                               ListTablesRequest request)
        Used to get the list of static tables from TerraData's TPCDS generator.
        Overrides:
        doListTables in class TPCDSMetadataHandler
        Parameters:
        allocator - Tool for creating and managing Apache Arrow Blocks.
        request - Provides details on who made the request and which Athena catalog and database they are querying.
        Returns:
        A ListTablesResponse which primarily contains a List enumerating the tables in this catalog, database tuple. It also contains the catalog name corresponding the Athena catalog that was queried.
        See Also:
        MetadataHandler
      • doGetTable

        public GetTableResponse doGetTable​(BlockAllocator allocator,
                                           GetTableRequest request)
        Used to get definition (field names, types, descriptions, etc...) of a Table using the static metadata provided by TerraData's TPCDS generator.
        Overrides:
        doGetTable in class TPCDSMetadataHandler
        Parameters:
        allocator - Tool for creating and managing Apache Arrow Blocks.
        request - Provides details on who made the request and which Athena catalog, database, and table they are querying.
        Returns:
        A GetTableResponse which primarily contains: 1. An Apache Arrow Schema object describing the table's columns, types, and descriptions. 2. A Set of partition column names (or empty if the table isn't partitioned).
        See Also:
        MetadataHandler