Curso Snowflake Database Structures and DML
24 horasVisã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.
Objetivo
Ao final do Curso Snowflake: Database Structures and DML, você será capaz de:
- Compreender a arquitetura de armazenamento do Snowflake e seus conceitos fundamentais.
- Criar e gerenciar bancos de dados e schemas no Snowflake.
- Projetar e criar diferentes tipos de tabelas (padrão, temporária, transiente, externa) e compreender suas aplicações.
- Definir constraints (restrições) e compreender seu comportamento no Snowflake.
- Criar e gerenciar views (visões) para simplificar consultas e controlar acesso.
- Utilizar os comandos DML (
INSERT
,UPDATE
,DELETE
,MERGE
) para manipular dados. - Realizar carga de dados eficientemente para tabelas Snowflake usando
COPY INTO
. - Trabalhar com dados semi-estruturados (JSON, XML, Avro, Parquet) e o tipo de dados
VARIANT
. - Entender e aplicar conceitos de Time Travel e Fail-safe para recuperação de dados.
- Aplicar as melhores práticas para organização e manipulação de dados no Snowflake.
Publico Alvo
- Analistas de Dados: Que precisam interagir e manipular dados diretamente no Snowflake.
- Engenheiros de Dados: Envolvidos na criação de pipelines ETL/ELT e no gerenciamento de dados no Snowflake.
- Desenvolvedores de BI/SQL: Que migrarão ou já trabalham com bases de dados no Snowflake.
- DBAs (Administradores de Banco de Dados): Que buscam entender as particularidades do Snowflake em relação a bancos de dados tradicionais.
- Qualquer profissional que precise compreender como os dados são armazenados e manipulados no Snowflake.
Pre-Requisitos
- Conhecimento fundamental de SQL (SELECT, WHERE, GROUP BY, JOINs).
- Noções básicas de conceitos de banco de dados (tabelas, colunas, chaves primárias/estrangeiras).
- Familiaridade com conceitos de Cloud Computing é um diferencial, mas não obrigatório.
- Acesso a uma conta Snowflake (pode ser uma conta trial gratuita) para a realização dos laboratórios.
Materiais
Inglês/Português/Lab PráticoConteú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 (incluindoVARIANT
,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.
- Sintaxe
- 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.
- Tabelas Temporárias (
- 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.
- Criação de
- 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çõesUPSERT
(UPDATE ou INSERT). - Sincronizando dados de tabelas staging para tabelas de destino.
- Uso do
- 3.3. Carregamento de Dados com
COPY INTO
:- O papel dos
STAGES
(estágios) internos e externos. - Sintaxe
COPY INTO @<stage>
eCOPY INTO <table>
. - Opções de formato de arquivo (CSV, JSON, Parquet, etc.).
- Gerenciamento de erros no carregamento (
ON_ERROR
). - Carregamento incremental e idempotência.
- O papel dos
- 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
.
- O tipo de dados
- Prática: Realizar operações
INSERT
,UPDATE
,DELETE
. Utilizar oMERGE
para sincronizar dados. Carregar dados de arquivos para tabelas usandoCOPY 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
eBEFORE
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.
- Considerações de performance para
- 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.