Pular para o conteúdo principal

Ler e gravar dados do Snowflake

A Databricks fornece um conector Snowflake no Databricks Runtime para dar suporte à leitura e gravação de dados do Snowflake.

info

Experimental

As configurações descritas neste artigo são experimentais. Os recursos experimentais são fornecidos no estado em que se encontram e não recebem suporte do site Databricks por meio do suporte técnico ao cliente. Para obter suporte completo à federação de consultas, o senhor deve usar a lakehouse Federation, que permite que os usuários do Databricks aproveitem as ferramentas de sintaxe e governança de dados do Unity Catalog.

Consultar uma tabela Snowflake no Databricks

O senhor pode configurar uma conexão com o Snowflake e, em seguida, consultar os dados. Antes de começar, verifique em qual versão do Databricks Runtime o senhor executa o clustering. O código a seguir fornece exemplos de sintaxe em Python, SQL e Scala.

Python

# The following example applies to Databricks Runtime 11.3 LTS and above.

snowflake_table = (spark.read
.format("snowflake")
.option("host", "hostname")
.option("port", "port") # Optional - will use default port 443 if not specified.
.option("user", "username")
.option("password", "password")
.option("sfWarehouse", "warehouse_name")
.option("database", "database_name")
.option("schema", "schema_name") # Optional - will use default schema "public" if not specified.
.option("dbtable", "table_name")
.load()
)

# The following example applies to Databricks Runtime 10.4 and below.

snowflake_table = (spark.read
.format("snowflake")
.option("dbtable", table_name)
.option("sfUrl", database_host_url)
.option("sfUser", username)
.option("sfPassword", password)
.option("sfDatabase", database_name)
.option("sfSchema", schema_name)
.option("sfWarehouse", warehouse_name)
.load()
)

Notebook exemplo: Conector para Snowflake Spark

O Notebook a seguir fornece exemplos simples de como gravar e ler dados no site Snowflake. Para obter mais detalhes, consulte Snowflake Connector for Spark.

dica

Evite expor o nome de usuário e a senha do Snowflake no Notebook usando Secrets, que são demonstrados no Notebook.

Snowflake Python Caderno de anotações

Open notebook in new tab

Notebook exemplo: Salvar os resultados do treinamento do modelo no Snowflake

O seguinte Notebook apresenta as práticas recomendadas para usar o Conector Snowflake para Spark. Ele grava dados em Snowflake, usa Snowflake para algumas manipulações básicas de dados, treina um modelo de aprendizado de máquina em Databricks e grava os resultados de volta em Snowflake.

Armazene os resultados do ML treinamento no Snowflake Notebook

Open notebook in new tab

Perguntas frequentes (FAQ)

Por que minhas colunas do Spark DataFrame não aparecem na mesma ordem no Snowflake?

O Snowflake Connector for Spark não respeita a ordem das colunas na tabela que está sendo gravada; o senhor deve especificar explicitamente o mapeamento entre as colunas do DataFrame e do Snowflake. Para especificar esse mapeamento, use o parâmetro columnmap.

Por que os dados do INTEGER gravados no Snowflake são lidos de volta como DECIMAL?

O Snowflake representa todos os tipos de INTEGER como NUMBER, o que pode causar uma alteração no tipo de dados quando o senhor grava e lê dados do Snowflake. Por exemplo, os dados de INTEGER podem ser convertidos para DECIMAL ao serem gravados no Snowflake, porque INTEGER e DECIMAL são semanticamente equivalentes no Snowflake (consulte Tipos de dados numéricos do Snowflake).

Por que os campos em meu esquema de tabela Snowflake estão sempre em letras maiúsculas?

Snowflake usa campos em maiúsculas pelo site default, o que significa que o esquema da tabela é convertido em maiúsculas.

Esse artigo foi útil?