API Snowpark¶
A biblioteca do Snowpark fornece uma API intuitiva para consulta e processamento de dados em um pipeline de dados. Usando essa biblioteca, é possível criar aplicativos que processam dados no Snowflake sem mover os dados para o sistema em que o código do aplicativo é executado. Snowpark tem vários recursos que o distinguem de outras bibliotecas de clientes:
A API Snowpark fornece construções de linguagem de programação para a construção de instruções SQL. Por exemplo, a API fornece um método de
select
que pode ser usado para especificar os nomes das colunas que devem retornar, em vez de escrever'select column_name'
como uma cadeia de caracteres.Embora ainda seja possível usar uma cadeia de caracteres para especificar a instrução SQL a ser executada, você pode aproveitar recursos como o preenchimento automático e inteligente de código e verificação de tipo ao usar as construções de linguagem nativos fornecidos pelo Snowpark.
As operações do Snowpark são executadas lentamente no servidor, o que reduz a quantidade de dados transferidos entre seu cliente e o banco de dados Snowflake.
A abstração principal no Snowpark é o DataFrame, que representa um conjunto de dados e fornece métodos para operar sobre esses dados. Em seu código de cliente, você constrói um objeto DataFrame e o configura para obter os dados que deseja utilizar (por exemplo, as colunas que contêm os dados, o filtro a ser aplicado às linhas, etc.).
Os dados não são recuperados no momento em que você constrói o objeto DataFrame. Em vez disso, quando você estiver pronto para obter os dados, você pode executar uma ação que avalia os objetos DataFrame e envia as instruções SQL correspondentes para o banco de dados do Snowflake executá-las.
É possível criar funções definidas pelo usuário (UDFs) em seu código, e Snowpark pode enviar por push seu código ao servidor, onde o código pode operar sobre os dados.
É possível escrever funções na mesma linguagem que usa para escrever seu código de cliente (por exemplo, usando funções anônimas em Scala ou funções lambda em Python). Para usar essas funções para processar dados no banco de dados do Snowflake, é necessário definir e chamar funções definidas pelo usuário (UDFs) em seu código personalizado.
O Snowpark transfere automaticamente o código personalizado de UDFs para o banco de dados do Snowflake. Quando você chama a UDF em seu código de cliente, seu código personalizado é executado no servidor (onde os dados estão). Não é necessário transferir os dados para seu cliente a fim de executar a função sobre os dados.
Em comparação com o Conector Snowflake para Spark, o Snowpark oferece os seguintes benefícios:
O Snowpark oferece suporte para o pushdown de todas as operações, incluindo UDFs do Snowflake.
O Snowpark não requer um cluster separado fora do Snowflake para realizar os cálculos. Todos os cálculos são feitos dentro do Snowflake.
Próximos tópicos: