在 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 用于提供中间账户。若没有代理身份验证,一条获准的公共代理路径可以使用 HTTP 代理列表中的主机和端口候选,同时保留 Snowflake 的账户设置。

Snowflake 将账户相关字段、proxy_protocol 和 non_proxy_hosts 记录为仅适用于 AWS。proxy_protocol 在连接器 2.11.1 中加入,默认值为 http。non_proxy_hosts 用经过 URL 转义的竖线(%7C)分隔主机,并支持星号通配符。

请使用与项目的 Spark 和 Scala 版本相匹配的连接器。这些数据源选项有各自的名称和格式;JDBC 属性与 java.net.Proxy 对象不能作为可互换的输入。

相关文章