Class MultiplexingJdbcRecordHandler

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

    public class MultiplexingJdbcRecordHandler
    extends JdbcRecordHandler
    Record handler multiplexer that supports multiple engines e.g. MySQL, PostGreSql and Redshift in same Lambda. Uses catalog name and associations to database types to route operations.
    • Constructor Detail

      • MultiplexingJdbcRecordHandler

        protected MultiplexingJdbcRecordHandler​(software.amazon.awssdk.services.s3.S3Client amazonS3,
                                                software.amazon.awssdk.services.secretsmanager.SecretsManagerClient secretsManager,
                                                software.amazon.awssdk.services.athena.AthenaClient athena,
                                                JdbcConnectionFactory jdbcConnectionFactory,
                                                DatabaseConnectionConfig databaseConnectionConfig,
                                                Map<String,​JdbcRecordHandler> recordHandlerMap,
                                                Map<String,​String> configOptions)
    • Method Detail

      • readWithConstraint

        public void readWithConstraint​(com.amazonaws.athena.connector.lambda.data.BlockSpiller blockSpiller,
                                       com.amazonaws.athena.connector.lambda.records.ReadRecordsRequest readRecordsRequest,
                                       com.amazonaws.athena.connector.lambda.QueryStatusChecker queryStatusChecker)
                                throws Exception
        Overrides:
        readWithConstraint in class JdbcRecordHandler
        Throws:
        Exception
      • buildSplitSql

        public PreparedStatement buildSplitSql​(Connection jdbcConnection,
                                               String catalogName,
                                               com.amazonaws.athena.connector.lambda.domain.TableName tableName,
                                               org.apache.arrow.vector.types.pojo.Schema schema,
                                               com.amazonaws.athena.connector.lambda.domain.predicate.Constraints constraints,
                                               com.amazonaws.athena.connector.lambda.domain.Split split)
                                        throws SQLException
        Description copied from class: JdbcRecordHandler
        Builds split SQL string and returns prepared statement.
        Specified by:
        buildSplitSql in class JdbcRecordHandler
        Parameters:
        jdbcConnection - jdbc connection. See Connection
        catalogName - Athena provided catalog name.
        tableName - database table name.
        schema - table schema.
        constraints - constraints to push down to the database.
        split - table split.
        Returns:
        prepared statement with sql. See PreparedStatement
        Throws:
        SQLException - JDBC database exception.