Référence de la configuration des connecteurs

Objets et procédures de la base de données

Les objets de base de données suivants sont créés par le biais du fichier configuration/connector_configuration.sql.

PUBLIC.CONFIGURE_CONNECTOR (config VARIANT)

Procédure de point d’entrée disponible pour le rôle ADMIN. Cette procédure appelle la fonction Java ConfigureConnectorHandler.configureConnector.

PUBLIC.CONFIGURE_CONNECTOR_VALIDATE (config VARIANT)

Procédure utilisée pour la validation de la configuration spécifique au connecteur. Par défaut, elle renvoie 'response_code': 'OK'. Elle est appelée par la fonction DefaultConfigureConnectorInputValidator. Peut être écrasée à la fois en SQL et en Java.

PUBLIC.CONFIGURE_CONNECTOR_INTERNAL (config VARIANT)

Procédure utilisée pour la configuration supplémentaire spécifique au connecteur. Par défaut, elle renvoie 'response_code': 'OK'. Elle est appelée par le InternalConfigureConnectorCallback. Peut être écrasée à la fois en SQL et en Java.

Gestionnaire (handler) personnalisé

Le gestionnaire (handler) et ses éléments internes peuvent être personnalisés selon les deux approches suivantes.

Approche de remplacement de procédure

Les composants suivants peuvent être remplacés à l’aide de SQL.

Gestionnaire (handler)

Pour fournir une implémentation entièrement personnalisée du ConfigureConnectorHandler, la procédure PUBLIC.CONFIGURE_CONNECTOR doit être remplacée. Par exemple :

CREATE OR REPLACE PROCEDURE PUBLIC.CONFIGURE_CONNECTOR(config VARIANT)
RETURNS VARIANT
LANGUAGE JAVA
RUNTIME_VERSION = '11'
PACKAGES = ('com.snowflake:snowpark:1.11.0')
IMPORTS = ('/connectors-native-sdk.jar')
HANDLER = 'com.custom.handler.CustomConfigureConnectorHandler.configureConnector';

GRANT USAGE ON PROCEDURE PUBLIC.CONFIGURE_CONNECTOR(VARIANT) TO APPLICATION ROLE ADMIN;
Copy

Procédures internes

Les procédures internes VALIDATE et INTERNAL peuvent également être personnalisées par le biais de SQL. Elles peuvent même appeler un autre gestionnaire (handler) Java :

CREATE OR REPLACE PROCEDURE PUBLIC.CONFIGURE_CONNECTOR_INTERNAL(config VARIANT)
RETURNS VARIANT
LANGUAGE SQL
EXECUTE AS OWNER
AS
BEGIN
    -- SOME CUSTOM LOGIC BEGIN
    SELECT sysdate();
    -- SOME CUSTOM LOGIC END

    RETURN OBJECT_CONSTRUCT('response_code', 'OK');
END;

CREATE OR REPLACE PROCEDURE PUBLIC.CONFIGURE_CONNECTOR_VALIDATE(config VARIANT)
    RETURNS VARIANT
    LANGUAGE JAVA
    RUNTIME_VERSION = '11'
    PACKAGES = ('com.snowflake:snowpark:1.11.0')
    IMPORTS = ('/connectors-native-sdk.jar')
    HANDLER = 'com.custom.handler.CustomConfigureConnectorInternalHandler.configureConnector';
Copy

L’approche du constructeur

ConfigureConnectorHandler peut être personnalisé à l’aide de ConfigureConnectorHandlerBuilder. Ce constructeur permet à l’utilisateur de fournir des implémentations personnalisées des interfaces suivantes :

Dans le cas où l’une d’entre elles n’est pas fournie, l’implémentation par défaut fournie par le SDK sera utilisée.

class CustomConfigureConnectorInputValidator implements ConfigureConnectorInputValidator {
    @Override
    public ConnectorResponse validate(Variant config) {
        // CUSTOM LOGIC
        return ConnectorResponse.success();
    }
}

class CustomHandler {

    // Path to this method needs to be specified in the PUBLIC.CONFIGURE_CONNECTOR procedure using SQL
    public static Variant configureConnector(Session session, Variant configuration) {
            //Using builder
        var handler = ConfigureConnectorHandler.builder(session)
            .withInputValidator(new CustomConfigureConnectorInputValidator())
            .build();
        return handler.configureConnector(configuration).toVariant();
    }
}
Copy