Fluxos analíticos para bancos orientados a colunas

Introdução a NoSQL

Jake Roach

Data Engineer

Common table expressions com Snowflake

CTEs (Common Table Expressions):

  • Subconsultas/tabelas temporárias nomeadas, definidas com a palavra-chave WITH
  • Cria um objeto que pode ser consultado depois
  • Reduz dados consultados e/ou JOIN aplicados
  • Mais modular, mais fácil de depurar
WITH <cte-name> AS (
    SELECT
        ....
    FROM <table-name>
    [JOIN | WHERE | ...]
)

SELECT
    ...
FROM <cte-name>;
1 https://docs.snowflake.com/en/user-guide/queries-cte
Introdução a NoSQL

Escrevendo common table expressions

WITH premium_books AS (
    SELECT
        title,
        author,
        avg_reviews
    FROM books
    WHERE price > 25.00
)
SELECT
    author,
    MIN(avg_reviews) AS min_avg_reviews,
    MAX(avg_reviews) AS max_avg_reviews
FROM premium_books
GROUP BY author;
  • Criando o objeto temporário premium_books
  • Usando premium_books adiante

$$

Pode criar vários objetos temporários:

WITH 
    <first-name> AS (...),
    <second-name> AS (...),
    ...
...
;
Introdução a NoSQL

Views com Snowflake

Views:

  • Permitem acessar resultados de consultas como uma tabela
  • Não materializadas e materializadas
CREATE VIEW <view-name> AS
  SELECT
      ...
  FROM <table-name>
  [WHERE | JOIN | ...];
Introdução a NoSQL

Criando views com Snowflake

CREATE VIEW premium_books AS
    SELECT
        title,
        author,
        avg_reviews
    FROM books
    WHERE price >= 25.00;
SELECT * FROM premium_books;
  • A consulta executa quando premium_books é chamado
  • "Definição nomeada" de uma consulta
CREATE MATERIALIZED VIEW premium_books AS
    SELECT
        title,
        author,
        avg_reviews
    FROM books
    WHERE price >= 25.00;
SELECT * FROM premium_books;
  • Resultados são armazenados na execução
  • Melhor desempenho de consulta, requer atualização
Introdução a NoSQL

Vamos praticar!

Introdução a NoSQL

Preparing Video For Download...