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;
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';
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();
}
}