接続構成の更新リファレンス

データベースオブジェクトとプロシージャ

次のデータベースオブジェクトは configuration/update_connection_configuration.sql を通じて作成されます

PUBLIC.UPDATE_CONNECTION_CONFIGURATION( connection_configuration VARIANT)

ADMIN ロールで使用可能なエントリポイントプロシージャ。このプロシージャはJavaの UpdateConnectionConfigurationHandler.updateConnectionConfiguration ハンドラーを呼び出します。

PUBLIC.UPDATE_CONNECTION_CONFIGURATION_VALIDATE( connection_configuration VARIANT)

追加のコネクタ固有の検証ロジックを提供するために使用されるプロシージャ。デフォルトでは 'response_code': 'OK' を返します。デフォルトの ConnectionConfigurationInputValidator によって呼び出されます。SQL でもJavaでも上書きできます。

PUBLIC.DRAFT_CONNECTION_CONFIGURATION_INTERNAL( connection_configuration VARIANT)

追加のコネクタ固有のロジックを提供するために使用されるプロシージャ。デフォルトでは 'response_code': 'OK' を返します。デフォルトの ConnectionConfigurationCallback によって呼び出されます。SQL でもJavaでも上書きできます。

カスタムハンドラー

ハンドラーとその内部は以下の2つのアプローチを使用してカスタマイズできます。

プロシージャの代替アプローチ

以下のコンポーネントは SQL を使用して置き換えることができます。

ハンドラー

UpdateConnectionConfigurationHandler のカスタム実装を提供するには、 PUBLIC.UPDATE_CONNECTION_CONFIGURATION プロシージャを置き換える必要があります。例:

CREATE OR REPLACE PROCEDURE PUBLIC.UPDATE_CONNECTION_CONFIGURATION(connection_configuration VARIANT)
  RETURNS VARIANT
  LANGUAGE JAVA
  RUNTIME_VERSION = '11'
  PACKAGES = ('com.snowflake:snowpark:1.11.0')
  IMPORTS = ('/connectors-native-sdk.jar')
  HANDLER = 'com.custom.handler.CustomUpdateConnectionConfigurationHandler.updateConnectionConfiguration';

GRANT USAGE ON PROCEDURE PUBLIC.UPDATE_CONNECTION_CONFIGURATION(VARIANT) TO APPLICATION ROLE ADMIN;
Copy

内部プロシージャ

VALIDATE および INTERNAL のプロシージャは、 SQL を使用してカスタマイズすることもできます。別のJavaハンドラーを呼び出すこともできます。

CREATE OR REPLACE PROCEDURE PUBLIC.DRAFT_CONNECTION_CONFIGURATION_INTERNAL(connection_configuration 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.UPDATE_CONNECTION_CONFIGURATION_VALIDATE(connection_configuration VARIANT)
    RETURNS VARIANT
    LANGUAGE JAVA
    RUNTIME_VERSION = '11'
    PACKAGES = ('com.snowflake:snowpark:1.11.0')
    IMPORTS = ('/connectors-native-sdk.jar')
    HANDLER = 'com.custom.handler.CustomConnectionConfigurationInputValidator.validate';
Copy

ビルダーアプローチ

UpdateConnectionConfigurationHandler は、 UpdateConnectionConfigurationHandlerBuilder を使用してカスタマイズできます。このビルダーを使用すると、開発者は次のインターフェイスのカスタム実装を提供できます。

  • ConnectionConfigurationInputValidator

  • ConnectionConfigurationCallback

  • DraftConnectionValidator

  • ConnectionConfigurationCallback

  • ConnectionValidator

  • ConnectorErrorHelper

これらのいずれかが提供されていない場合、 SDK によって提供されるデフォルトの実装が使用されます。

class CustomConnectionConfigurationInputValidator implements ConnectionConfigurationInputValidator {

  @Override
  public ConnectorResponse validate(Variant configuration) {
    // CUSTOM VALIDATION LOGIC
    return ConnectorResponse.success();
  }
}

class CustomHandler {

  // Path to this method needs to be specified in the PUBLIC.UPDATE_CONNECTION_CONFIGURATION procedure using SQL
  public static Variant updateConnectionConfiguration(Session session, Variant configuration) {
    // Using the builder
    var handler = UpdateConnectionConfigurationHandler.builder(session)
      .withInputValidator(new CustomConnectionConfigurationInputValidator())
      .build();
    return handler.updateConnectionConfiguration(configuration).toVariant();
  }
}
Copy