Réinitialisation de la référence de configuration¶
Détails sur les objets et les procédures associés à la fonction de réinitialisation de la configuration.
Objets et procédures de la base de données¶
Les objets de base de données suivants sont créés à l’aide de la fonction configuration/reset_configuration.sql
.
PUBLIC.RESET_CONFIGURATION()¶
Procédure de point d’entrée disponible pour le rôle ADMIN
. Cette procédure appelle le gestionnaire (handler) Java ResetConfigurationHandler.resetConfiguration
.
PUBLIC.RESET_CONFIGURATION_VALIDATE()¶
Utilisé pour fournir une validation supplémentaire spécifique au connecteur. La valeur par défaut est 'response_code': 'OK'
. Elle est appelée par ResetConfigurationValidator
par défaut. Peut être écrasée à la fois en SQL et en Java.
PUBLIC.RESET_CONFIGURATION_INTERNAL()¶
Utilisé pour fournir une logique supplémentaire spécifique au connecteur. La valeur par défaut est 'response_code': 'OK'
. Elle est appelée par ResetConfigurationCallback
par défaut. Peut être écrasée à la fois en SQL et en Java.
Gestionnaire (handler) personnalisé¶
Les gestionnaires peuvent être personnalisés en étant complètement remplacés par SQL ou en mettant en œuvre des interfaces Java.
Remplacement par SQL¶
Les composants suivants peuvent être remplacés à l’aide de SQL.
Gestionnaire (handler)¶
Pour fournir une implémentation personnalisée de ResetConfigurationHandler
, la procédure PUBLIC.RESET_CONFIGURATION
doit être remplacée. Par exemple :
CREATE OR REPLACE PROCEDURE PUBLIC.RESET_CONFIGURATION()
RETURNS VARIANT
LANGUAGE JAVA
RUNTIME_VERSION = '11'
PACKAGES = ('com.snowflake:snowpark:1.11.0')
IMPORTS = ('/connectors-native-sdk.jar')
HANDLER = 'com.snowflake.connectors.application.configuration.reset.CustomResetConfigurationHandler.resetConfiguration';
GRANT USAGE ON PROCEDURE PUBLIC.RESET_CONFIGURATION() TO APPLICATION ROLE ADMIN;
Procédure interne¶
La procédure INTERNAL
peut également être personnalisée par le biais de SQL.
CREATE OR REPLACE PROCEDURE PUBLIC.RESET_CONFIGURATION_INTERNAL()
RETURNS VARIANT
LANGUAGE SQL
EXECUTE AS OWNER
AS
BEGIN
-- SOME CUSTOM LOGIC
RETURN OBJECT_CONSTRUCT('response_code', 'OK');
END;
Il peut également invoquer un autre gestionnaire Java :
CREATE OR REPLACE PROCEDURE PUBLIC.RESET_CONFIGURATION_INTERNAL()
RETURNS VARIANT
LANGUAGE JAVA
RUNTIME_VERSION = '11'
PACKAGES = ('com.snowflake:snowpark:1.11.0')
IMPORTS = ('/connectors-native-sdk.jar')
HANDLER = 'com.snowflake.connectors.application.configuration.reset.CustomResetConfigurationCallback.resetConfiguration';
L’approche du constructeur¶
ResetConfigurationHandler
peut être personnalisé à l’aide de ResetConfigurationHandlerBuilder
. Ce constructeur permet au développeur de fournir des implémentations personnalisées des interfaces suivantes :
ResetConfigurationValidator
ResetConfigurationCallback
ConnectorErrorHelper
Il n’est pas nécessaire d’implémenter toutes les interfaces, auquel cas l’implémentation par défaut fournie par le SDK est utilisée.
L’exemple suivant montre comment ResetConfigurationValidator
peut être personnalisé.
class CustomResetConfigurationValidator implements ResetConfigurationValidator {
@Override
public ConnectorResponse validate() {
// CUSTOM VALIDATION LOGIC
return ConnectorResponse.success();
}
}
class CustomHandler {
// Path to this method needs to be specified in the SQL definition of the PUBLIC.RESET_CONFIGURATION procedure
public static Variant resetConfiguration(Session session) {
// Using the builder
var handler = ResetConfigurationHandler.builder(session)
.withValidator(new CustomResetConfigurationValidator())
.build();
return handler.resetConfiguration().toVariant();
}
}