O que são sessões SQL warehouse ?
As sessões SQL warehouse permitem definir variáveis, criar visualizações temporárias e manter alterações de estado entre várias execuções de consultas. Com sessões, você pode construir a lógica SQL iterativamente, sem precisar executar todas as instruções de uma só vez.
Você pode usar sessões nos seguintes contextos quando estiver conectado a um SQL warehouse:
Exemplo de caso de uso
As sessões permitem executar instruções individualmente, mantendo o estado compartilhado. Por exemplo, você pode declarar uma variável, criar uma view temporária que utilize essa variável e, em seguida, consultar a view separadamente.
O exemplo a seguir demonstra esse fluxo de trabalho:
-- Statement 1: Declare a variable
DECLARE VARIABLE row_limit = 10;
-- Statement 2: Create a temporary view using the variable
CREATE OR REPLACE TEMPORARY VIEW filtered_data AS
SELECT
*
FROM
main.default.sales_data
LIMIT row_limit;
-- Statement 3: Query the temporary view
SELECT
*
FROM
filtered_data;
Com as sessões, você pode executar cada instrução individualmente. A variável e view temporária permanecem disponíveis, permitindo que você itere sobre suas consultas sem precisar executar novamente todas as instruções anteriores.
Como funcionam as sessões
Uma sessão é criada quando um usuário executa uma consulta em um SQL warehouse. As sessões permanecem ativas enquanto houver um comando executado pelo menos uma vez a cada oito horas. As sessões persistem mesmo se o servidor for interrompido ou reiniciado.
Uma sessão expira após oito horas de inatividade.
Estado da sessão compartilhada
Todas as execuções de comandos dentro da mesma sessão compartilham o seguinte:
- Variáveis declaradas com
DECLARE VARIABLE - Vista temporária criada com
CREATE TEMPORARY VIEW - Configurações de ambiente, como o catálogo e o esquema atuais.
Escopo da sessão e colaboração
As sessões estão vinculadas tanto ao objeto de consulta (consulta, Notebook ou arquivo) quanto ao SQL warehouse específico ao qual ele está associado. Todos os usuários que compartilham o acesso a esse objeto e à conexão com o data warehouse também compartilham a mesma sessão.
Por exemplo:
- O usuário A define uma view temporária na Consulta 1 enquanto está conectado ao Armazém X.
- O usuário B pode executar um comando SQL na Consulta 1 no Warehouse X que faz referência à mesma view temporária.
- Se a Consulta 1 for reassociada a um repositório diferente, uma nova sessão será criada com seu próprio estado isolado.
Esse comportamento colaborativo permite que as equipes trabalhem juntas no desenvolvimento de consultas compartilhadas, mas também significa que as alterações feitas por um usuário afetam todos os outros usuários que compartilham a mesma sessão.