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.
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. |
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 |
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 |
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. |
ALTER TABLE ETL_Clientes
ADD COLUMN FaixaEtaria STRING
| status | |
|---|---|
| 0 | Statement executed successfully. |
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 |
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. |
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 |
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.
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.