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:
ResetConfigurationValidator
ResetConfigurationCallback
ConnectorErrorHelper
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();
}
}