在 Databricks 中为 Spark 配置 Snowflake

Databricks 版本 4.2 本机 Snowflake Connector 允许您的 Databricks 账户从 Snowflake 读取数据或向 Snowflake 写入数据,而无需导入任何库。旧版本的 Databricks 需要将 Spark Connector 的库导入到 Databricks 集群中。

连接器自动在 Spark 和 Snowflake 之间分配处理,无需用户指定应在每个系统上完成的处理部分。查询还受益于 Snowflake 的自动查询下推优化。

先决条件

  • 您必须拥有 Databricks 账户,并且必须使用 Databricks Runtime 版本 4.2 或更高版本。此外:

  • 您必须创建 Snowflake 账户。要从此账户读取或写入,您需要以下信息:

    • Snowflake 账户的 URL。
    • 连接到该账户的用户的登录名和密码。
    • 连接后用于会话的默认数据库和架构。
    • 连接后用于会话的默认虚拟仓库。
  • The role used in the connection needs USAGE and CREATE STAGE privileges on the schema that contains the table that you will read from or write to via Databricks.

访问 Databricks Snowflake Connector 文档

Databricks Snowflake Connector 的主要文档可在 Databricks 网站上找到。该文档包含示例,显示 Scala 或 Python 笔记本使用的命令,用于将数据从 Spark 发送到 Snowflake,反之亦然。

For more details, see Data Sources — Snowflake (https://docs.databricks.com/spark/latest/data-sources/snowflake.html).

为长时间运行的查询准备外部位置

If some of your jobs exceed 36 hours in length, consider preparing an external location to use to exchange data between Snowflake and Spark. For more information, see Preparing an External Location For Files.

Databricks 中的查询下推

Spark 查询受益于 Snowflake 的自动查询下推优化,从而提高了性能。默认情况下,Databricks 中启用 Snowflake 查询下推。

For more details about query pushdown, see Pushing Spark Query Processing to Snowflake (Snowflake Blog).