Gabriel

Snowflake: Primeiros Passos com Pipeline de Dados no Snowflake

Este artigo apresenta conceitos essenciais do Snowflake para Engenharia de Dados, com exemplos práticos de ingestão, transformação e análise de dados. É uma introdução acessível para quem deseja entender as funcionalidades básicas da plataforma e aprender a executar operações simples e essenciais de maneira eficiente.

Snowflake Notebook (Pipeline de Dados):

Etapa 1: Criação da Tabela de Clientes

CREATE OR REPLACE TABLE Clientes (
    ClienteID INT,
    Nome STRING,
    Idade INT,
    Genero CHAR(1),
    Cidade STRING,
    DataCadastro DATE,
    ValorCompra FLOAT
)
status
0 Table CLIENTES successfully created.

Etapa 2: Ingestão de Dados para Tabela Clientes

Nessa etapa os dados em CSV já estão previamente carregados em um Stage Interno.

COPY INTO Clientes
FROM @DATA/clientes_dados.csv

FILE_FORMAT = (
    TYPE = 'CSV',
    FIELD_OPTIONALLY_ENCLOSED_BY = '"',
    SKIP_HEADER = 1
)

ON_ERROR = 'CONTINUE'
file status rows_parsed rows_loaded error_limit errors_seen
0 data/clientes_dados.csv LOADED 1,000 1,000 1,000 0

Etapa 2.1: Visualização dos Primeiros Registros

SELECT * FROM Clientes LIMIT 20
ClienteID Nome Idade Genero Cidade DataCadastro ValorCompra
0 1 Alice 25 F São Paulo 2023-01-10 150.50
1 2 Bob 45 M Rio de Janeiro 2022-12-15 200.75
2 3 Charlie 35 M Belo Horizonte 2023-01-20 320.90

Etapa 3: Criação da Tabela ETL_Clientes

Criamos uma tabela separadamente para trabalharmos a transformação dos dados.

CREATE OR REPLACE TABLE ETL_Clientes AS
SELECT * FROM Clientes
status
0 Table ETL_CLIENTES successfully created.

Etapa 4: Adicionando a Coluna FaixaEtaria

ALTER TABLE ETL_Clientes
ADD COLUMN FaixaEtaria STRING
status
0 Statement executed successfully.

Etapa 5: Atualizando FaixaEtaria Baseado na Idade

UPDATE ETL_Clientes
SET FaixaEtaria = CASE
    WHEN Idade < 18 THEN 'Jovem'
    WHEN Idade >= 18 AND Idade < 65 THEN 'Adulto'
    WHEN Idade >= 65 THEN 'Idoso'
    ELSE 'Indefinido'
END
numbers of rows updated
0 1,000

Etapa 6: Criando uma VIEW ClientesMedias

Criamos uma VIEW extraindo insights importantes sobre a tabela Clientes.

CREATE OR REPLACE VIEW ClientesMedias AS
    SELECT Genero, FaixaEtaria,
        COUNT(FaixaEtaria) AS Quantidade,
        CAST(AVG(Idade) AS INT) AS IdadeMedia,
        ROUND(AVG(ValorCompra), 2) AS ValorCompraMedio
    FROM ETL_Clientes
    GROUP BY FaixaEtaria, Genero
    ORDER BY FaixaEtaria, Genero
status
0 View CLIENTESMEDIAS successfully created.

Visualizando a VIEW ClientesMedias

SELECT * FROM ClientesMedias
Genero FaixaEtaria Quantidade IdadeMedia ValorCompraMedio
0 F Adulto 464 40 2,513.14
1 M Adulto 435 41 2,534.93
2 F Idoso 41 67 2,351.51
3 M Idoso 60 67 2,146.78

Snowflake Dashboards (Análise de Dados):

O Snowflake também oferece a funcionalidade de criação de Dashboards e Gráficos para análise visual. Aqui exploramos um pouco dessas funcionalidades utilizando a tabela Clientes como fonte de dados.

Relacionando Idade com ValorCompra através do Gráfico de Barras

image

Analisando médias com Heatgrid através da relação entre Cidade e FaixaEtaria

image

Conclusão

Recursos e Referências

Agradecimentos e Contato

Obrigado por acompanhar este artigo! Fique à vontade para enviar sugestões ou se apenas quer dizer olá, fique à vontade para me contatar!


© [Gabriel Dultra] - Todos os direitos reservados.