AWS 上の Snowflake Spark コネクタでは、コネクタ独自のプロキシオプションを使ってリーダーを設定します。

options = {
    **snowflake_options,
    'use_proxy': 'true',
    'proxy_host': 'proxy.example',
    'proxy_port': '8080',
    'proxy_protocol': 'http',
}
reader = spark.read.format('snowflake').options(**options)

snowflake_options にはアプリケーションのエンドポイントと認証の設定が入ります。load を呼び出す前に、対象のテーブルまたはクエリを追加してください。

use_proxy の既定値は false です。有効にすると、proxy_host と proxy_port を個別のフィールドとして要求します。proxy_user と proxy_password は中間アカウントを提供します。プロキシ認証を使わない場合、許可されたパブリックプロキシ経由のルートでは、Snowflake のアカウント設定を保ったまま HTTP プロキシ一覧からホストとポートの候補を利用できます。

Snowflake は、アカウント関連のフィールド、proxy_protocol、non_proxy_hosts を AWS 専用として文書化しています。proxy_protocol はコネクタ 2.11.1 で追加され、既定値は http です。non_proxy_hosts は URL エスケープしたパイプ(%7C)でホストを区切り、アスタリスクのワイルドカードをサポートします。

プロジェクトの Spark と Scala のバージョンに合うコネクタを使用してください。これらのデータソースオプションには独自の名前と形式があり、JDBC プロパティや java.net.Proxy オブジェクトをそのまま代用することはできません。

関連記事