Visão Geral
Este Curso Snowflake Database Structures and DML é ideal para analistas de dados, engenheiros de dados, desenvolvedores de ETL/ELT, DBAs e qualquer profissional que busca dominar as funcionalidades de estruturas de dados e manipulação de dados no Snowflake, o Data Cloud moderno. Do ponto de vista técnico, você aprenderá a criar e gerenciar bancos de dados, schemas, tabelas (incluindo variedades como tabelas temporárias, transientes e externas), views, e a aplicar as operações DML (Data Manipulation Language) essenciais para carregar, inserir, atualizar, deletar e mesclar dados. O curso focará nas particularidades e otimizações que o Snowflake oferece para lidar com grandes volumes de dados e diversos formatos (estruturados e semi-estruturados), garantindo que os participantes possam construir e manter pipelines de dados robustos e eficientes.
Curso Snowflake Database Structures and DML, o domínio das estruturas de dados e DML no Snowflake é uma habilidade crítica para empresas que utilizam esta plataforma para suas estratégias de dados e analytics. Ele permite que as organizações extraiam o máximo valor de seus dados, garantindo que as informações estejam organizadas, acessíveis e atualizadas para tomada de decisões. A proficiência nessas operações básicas, porém fundamentais, otimiza o desempenho de consultas, reduz custos de armazenamento e processamento e acelera o ciclo de vida dos dados, resultando em maior agilidade nos negócios e vantagem competitiva. Profissionais com essa expertise são indispensáveis para construir e manter uma fundação de dados sólida e escalável no ambiente cloud.
Conteúdo Programatico
Módulo 1: Introdução ao Snowflake e Arquitetura de Armazenamento (4 horas)
- 1.1. O Data Cloud Snowflake:
- Visão geral da arquitetura multi-cluster, compartilhamento de dados e elasticidade.
- Camadas da arquitetura: Cloud Services, Query Processing (Virtual Warehouses), Database Storage.
- Conceitos de computação (Warehouses Virtuais) e armazenamento (micro-partições).
- 1.2. Primeiros Passos com a Interface Snowflake (Snowsight):
- Navegação na interface web do Snowsight.
- Criação e gerenciamento de Worksheets (folhas de trabalho).
- Contexto de sessão:
USE DATABASE
, USE SCHEMA
, USE WAREHOUSE
.
- 1.3. Hierarquia de Objetos no Snowflake:
ACCOUNT
-> DATABASE
-> SCHEMA
-> TABLE
/VIEW
/STAGE
/etc.
- Criação e gerenciamento de bancos de dados (
CREATE DATABASE
, ALTER DATABASE
, DROP DATABASE
).
- Criação e gerenciamento de schemas (
CREATE SCHEMA
, ALTER SCHEMA
, DROP SCHEMA
).
- Tipos de schemas: padrão e managed access.
- Prática: Criar uma conta trial Snowflake. Explorar o Snowsight. Criar um novo banco de dados e múltiplos schemas, e configurar o contexto da sessão.
Módulo 2: Tabelas e Visões no Snowflake (4 horas)
- 2.1. Criação e Propriedades de Tabelas Padrão:
- Sintaxe
CREATE TABLE
: tipos de dados suportados no Snowflake (incluindo VARIANT
, ARRAY
, OBJECT
).
- Propriedades de tabela (
COMMENT
, DATA_RETENTION_TIME_IN_DAYS
).
DEFAULT
valores para colunas.
COLLATE
para strings.
- Compreendendo e aplicando constraints (PK, FK, UNIQUE, NOT NULL) e sua natureza não-enforced no Snowflake.
- 2.2. Tipos Especiais de Tabelas:
- Tabelas Temporárias (
TEMPORARY TABLE
): Uso e ciclo de vida.
- Tabelas Transientes (
TRANSIENT TABLE
): Retenção de dados e custos.
- Quando usar cada tipo de tabela.
- 2.3. Tabelas Externas (
EXTERNAL TABLE
):
- Conectando o Snowflake a dados em Object Storage (S3, Azure Blob, GCS).
- Sintaxe
CREATE EXTERNAL TABLE
e opções de formato.
- Refresh de tabelas externas.
- 2.4. Views (Visões):
- Criação de
VIEWS
para abstração de dados e segurança.
- Secure Views: Protegendo a lógica da consulta e o acesso aos dados subjacentes.
- Materialized Views: Conceito, benefícios (performance), limitações e gerenciamento.
- Prática: Criar tabelas padrão com diferentes tipos de dados e constraints. Criar tabelas temporárias e transientes. Configurar uma tabela externa para um bucket de dados simulado. Criar views e secure views.
Módulo 3: Manipulação de Dados (DML) e Carregamento (4 horas)
- 3.1. Operações DML Fundamentais:
INSERT INTO
: Inserindo linhas de dados em tabelas.
UPDATE
: Atualizando registros existentes.
DELETE
: Excluindo registros de tabelas.
TRUNCATE TABLE
: Limpeza rápida de tabelas.
- 3.2. Comando
MERGE
:
- Uso do
MERGE
para operações UPSERT
(UPDATE ou INSERT).
- Sincronizando dados de tabelas staging para tabelas de destino.
- 3.3. Carregamento de Dados com
COPY INTO
:
- O papel dos
STAGES
(estágios) internos e externos.
- Sintaxe
COPY INTO @<stage>
e COPY INTO <table>
.
- Opções de formato de arquivo (CSV, JSON, Parquet, etc.).
- Gerenciamento de erros no carregamento (
ON_ERROR
).
- Carregamento incremental e idempotência.
- 3.4. Trabalhando com Dados Semi-Estruturados:
- O tipo de dados
VARIANT
.
- Funções para parsing de JSON:
PARSE_JSON
, GET
, GET_PATH
, FLATTEN
.
- Consultando e manipulando dados dentro de colunas
VARIANT
.
- Prática: Realizar operações
INSERT
, UPDATE
, DELETE
. Utilizar o MERGE
para sincronizar dados. Carregar dados de arquivos para tabelas usando COPY INTO
. Consultar e extrair dados de colunas VARIANT.
Módulo 4: Time Travel, Fail-safe e Boas Práticas (4 horas)
- 4.1. Time Travel e Undrop:
- Conceito de Time Travel no Snowflake: consultas a dados históricos.
- Sintaxe
AT
e BEFORE
para consultas pontuais no tempo.
- Restaurando objetos (
UNDROP DATABASE
, UNDROP SCHEMA
, UNDROP TABLE
).
- Configuração do
DATA_RETENTION_TIME_IN_DAYS
.
- 4.2. Fail-safe:
- Visão geral do Fail-safe do Snowflake para recuperação de desastres (além do Time Travel).
- Como o Fail-safe garante a durabilidade dos dados.
- 4.3. Clones Zero-Copy:
- O que são clones zero-copy e seus benefícios (custo e velocidade).
- Sintaxe
CREATE ... CLONE
.
- Casos de uso para clones (desenvolvimento, teste, análise ad-hoc).
- 4.4. Otimização e Boas Práticas em DML:
- Considerações de performance para
INSERT
, UPDATE
, DELETE
em grandes volumes.
- Uso eficiente de
MERGE
.
- Organização de dados para otimização de consultas (clustering keys - conceitual).
- Padrões de nomenclatura e documentação.
- Prática: Utilizar o Time Travel para consultar dados em um ponto específico no tempo. Realizar um
UNDROP
de uma tabela. Criar um clone zero-copy de uma tabela para um ambiente de teste.