Reprendre référence de connecteur¶
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 lifecycle/resume.sql
.
PUBLIC.RESUME_CONNECTOR()¶
La procédure de point d’entrée disponible pour le rôle ADMIN
. Cette procédure appelle la fonction Java ResumeConnectorHandler.resumeConnector
PUBLIC.RESUME_CONNECTOR_VALIDATE()¶
La procédure utilisée pour la validation spécifique au connecteur du processus de mise en pause. Par défaut, elle renvoie 'response_code': 'OK'
. Elle est appelée par DefaultResumeConnectorStateValidator
. Peut être écrasée à la fois en SQL et en Java.
PUBLIC.RESUME_CONNECTOR_INTERNAL()¶
La procédure utilisée pour raccorder des fonctions de pause supplémentaires spécifiques. Par défaut, elle renvoie 'response_code': 'OK'
. Elle est appelée par le InternalResumeConnectorCallback
. 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 ResumeConnectorHandler
, la procédure PUBLIC.RESUME_CONNECTOR
doit être remplacée. Par exemple :
CREATE OR REPLACE PROCEDURE PUBLIC.RESUME_CONNECTOR()
RETURNS VARIANT
LANGUAGE JAVA
RUNTIME_VERSION = '11'
PACKAGES = ('com.snowflake:snowpark:1.11.0')
IMPORTS = ('/connectors-native-sdk.jar')
HANDLER = 'com.custom.handler.CustomResumeConnectorHandler.resumeConnector';
GRANT USAGE ON PROCEDURE PUBLIC.RESUME_CONNECTOR() 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.RESUME_CONNECTOR_INTERNAL()
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.RESUME_CONNECTOR_VALIDATE()
RETURNS VARIANT
LANGUAGE JAVA
RUNTIME_VERSION = '11'
PACKAGES = ('com.snowflake:snowpark:1.11.0')
IMPORTS = ('/connectors-native-sdk.jar')
HANDLER = 'com.custom.handler.CustomResumeConnectorInternalHandler.resumeConnector';
L’approche du constructeur¶
ResumeConnectorHandler
peut être personnalisé à l’aide de ResumeConnectorHandlerBuilder
. Ce constructeur permet à l’utilisateur de fournir des implémentations personnalisées des interfaces suivantes :
ResumeConnectorStateValidator
ResumeConnectorCallback
ConnectorErrorHelper
Dans le cas où aucun fournisseur n’est indiqué, l’implémentation par défaut fournie par SDK sera utilisée.
class CustomResumeConnectorStateValidator implements ResumeConnectorStateValidator {
@Override
public ConnectorResponse validate() {
// CUSTOM LOGIC
return ConnectorResponse.success();
}
}
class CustomHandler {
// Path to this method needs to be specified in the PUBLIC.RESUME_CONNECTOR procedure using SQL
public static Variant resumeConnector(Session session) {
//Using builder
var handler = ResumeConnectorHandlerBuilder.builder(session)
.withStateValidator(new CustomResumeConnectorStateValidator())
.build();
return handler.resumeConnector().toVariant();
}
}