Class MultiplexingJdbcRecordHandler
- java.lang.Object
-
- com.amazonaws.athena.connector.lambda.handlers.RecordHandler
-
- com.amazonaws.athena.connectors.jdbc.manager.JdbcRecordHandler
-
- com.amazonaws.athena.connectors.jdbc.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.
-
-
Field Summary
-
Fields inherited from class com.amazonaws.athena.connectors.jdbc.manager.JdbcRecordHandler
queryPassthrough
-
-
Constructor Summary
Constructors Modifier Constructor Description MultiplexingJdbcRecordHandler(JdbcRecordHandlerFactory jdbcRecordHandlerFactory, Map<String,String> configOptions)protectedMultiplexingJdbcRecordHandler(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 Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description PreparedStatementbuildSplitSql(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)Builds split SQL string and returns prepared statement.voidreadWithConstraint(com.amazonaws.athena.connector.lambda.data.BlockSpiller blockSpiller, com.amazonaws.athena.connector.lambda.records.ReadRecordsRequest readRecordsRequest, com.amazonaws.athena.connector.lambda.QueryStatusChecker queryStatusChecker)-
Methods inherited from class com.amazonaws.athena.connectors.jdbc.manager.JdbcRecordHandler
buildQueryPassthroughSql, disableCaseSensitivelyLookUpSession, enableCaseSensitivelyLookUpSession, getCredentialProvider, getJdbcConnectionFactory, makeExtractor, makeFactory
-
-
-
-
Constructor Detail
-
MultiplexingJdbcRecordHandler
public MultiplexingJdbcRecordHandler(JdbcRecordHandlerFactory jdbcRecordHandlerFactory, Map<String,String> configOptions)
-
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:
readWithConstraintin classJdbcRecordHandler- 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:JdbcRecordHandlerBuilds split SQL string and returns prepared statement.- Specified by:
buildSplitSqlin classJdbcRecordHandler- Parameters:
jdbcConnection- jdbc connection. SeeConnectioncatalogName- 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.
-
-