Referenz der Konfiguration zurücksetzen¶
Details zu Objekten und Prozeduren im Zusammenhang mit dem Feature „Konfiguration zurücksetzen“.
Datenbankobjekte und Prozeduren¶
Die folgenden Datenbankobjekte werden mit dem Befehl configuration/reset_configuration.sql erstellt.
PUBLIC.RESET_CONFIGURATION()¶
Einstiegspunkt-Prozedur, verfügbar für ADMIN-Rolle. Diese Prozedur ruft den Java-Handler ResetConfigurationHandler.resetConfiguration auf.
PUBLIC.RESET_CONFIGURATION_VALIDATE()¶
Wird verwendet, um eine zusätzliche konnektorspezifische Validierung vorzunehmen. Standardmäßig wird 'response_code': 'OK' zurückgegeben. Wird von Standard-ResetConfigurationValidator aufgerufen. Kann sowohl in SQL als auch Java überschrieben werden.
PUBLIC.RESET_CONFIGURATION_INTERNAL()¶
Wird verwendet, um zusätzliche konnektorspezifische Logik bereitzustellen. Standardmäßig wird 'response_code': 'OK' zurückgegeben. Wird von Standard-ResetConfigurationCallback aufgerufen. Kann sowohl in SQL als auch Java überschrieben werden.
Kundenspezifischer Handler¶
Handler können angepasst werden, indem sie vollständig durch SQL ersetzt werden oder indem Java-Schnittstellen implementiert werden.
Ersetzen unter Verwendung von SQL¶
Die folgenden Komponenten können durch SQL ersetzt werden.
Handler¶
Um eine kundenspezifische Implementierung von ResetConfigurationHandler bereitzustellen, muss die Prozedur PUBLIC.RESET_CONFIGURATION ersetzt werden. Beispiel:
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;
Interne Prozedur¶
Die Prozedur INTERNAL können auch über SQL angepasst werden.
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;
Er kann auch einen anderen Java-Handler aufrufen:
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';
Ansatz: Builder¶
ResetConfigurationHandler kann mithilfe von ResetConfigurationHandlerBuilder angepasst werden. Dieser Builder ermöglicht es dem Entwickler, kundenspezifische Implementierungen der folgenden Schnittstellen bereitzustellen:
ResetConfigurationValidatorResetConfigurationCallbackConnectorErrorHelper
Nicht alle Weboberflächen müssen implementiert werden. In diesem Fall wird die vom SDK bereitgestellte Standardimplementierung verwendet.
Das folgende Beispiel zeigt, wie ResetConfigurationValidator angepasst werden kann.
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();
    }
}