Pular para o conteúdo
Skillpedia
Machine learning48 mil · #4203

snowflake-development

Ajuda seu agente a trabalhar com o Snowflake, um banco de dados na nuvem. Ele pode criar e otimizar o armazenamento e o acesso a dados, além de usar inteligência artificial para análises. Facilita o gerenciamento de grandes volumes de informação.

O que ela faz

Este assistente ajuda você a escrever código para o Snowflake, um banco de dados na nuvem. Ele oferece dicas sobre como escrever consultas SQL eficientes, criar fluxos de dados automatizados e usar recursos avançados de IA.

Quando usar

  • ✓Quando você precisa escrever consultas SQL para o Snowflake.
  • ✓Ao criar fluxos de dados para mover e transformar informações.
  • ✓Ao usar as ferramentas de inteligência artificial do Snowflake (Cortex).

Exemplo do que pedir para a IA

“Como posso escrever uma consulta SQL para selecionar apenas colunas específicas de uma tabela chamada 'clientes'?”

Quer saber mais? Abra as seções abaixo.

Como usar

O jeito mais fácil: copie a mensagem abaixo e cole no Claude, ChatGPT, Cursor ou outra IA. Ela lê a skill e segue as instruções.

Link da skill

https://github.com/sickn33/agentic-awesome-skills/blob/main/plugins/agentic-awesome-skills-claude/skills/snowflake-development/SKILL.md

Mensagem pronta para colar

Use esta skill para me ajudar: https://github.com/sickn33/agentic-awesome-skills/blob/main/plugins/agentic-awesome-skills-claude/skills/snowflake-development/SKILL.md Leia o arquivo SKILL.md desse link e siga as instruções dele na minha tarefa.
Como funciona

O assistente aplica regras e exemplos para garantir que seu código Snowflake siga as melhores práticas. Ele verifica a formatação, o uso de funções e a estrutura geral do seu código.

Instalação

Jeito mais fácil: copie o link da skill e cole no Claude, ChatGPT ou Cursor pedindo para seguir as instruções.

No terminal (Claude Code, Codex, Cursor), na pasta do projeto:

npx skills add sickn33/agentic-awesome-skills --skill snowflake-development

Ou baixe só o arquivo:

curl -L https://raw.githubusercontent.com/sickn33/agentic-awesome-skills/main/plugins/agentic-awesome-skills-claude/skills/snowflake-development/SKILL.md -o SKILL.md
Conteúdo técnico (SKILL.md)

Tradução do texto original do autor no GitHub. Os comandos e códigos estão como no original.

Desenvolvimento Snowflake

Você é um especialista em desenvolvimento Snowflake. Aplique estas regras ao escrever SQL, construir pipelines de dados, usar Cortex AI ou trabalhar com Snowpark Python no Snowflake.

Quando Usar

  • Quando o usuário pedir ajuda com Snowflake SQL, pipelines de dados, Cortex AI ou Snowpark Python.
  • Quando você precisar de orientação específica do Snowflake para dbt, ajuste de desempenho ou reforço de segurança.

Melhores Práticas de SQL

Nomenclatura e Estilo

  • Use snake_case para todos os identificadores. Evite identificadores entre aspas duplas — eles criam nomes sensíveis a maiúsculas e minúsculas que exigem cotação constante.
  • Use CTEs (cláusulas WITH) em vez de subconsultas aninhadas.
  • Use CREATE OR REPLACE para DDL idempotente.
  • Use listas de colunas explícitas — nunca SELECT * em produção (o armazenamento colunar do Snowflake escaneia apenas as colunas referenciadas).

Stored Procedures — Regra do Prefixo de Dois Pontos

Em stored procedures SQL (blocos BEGIN...END), variáveis e parâmetros devem usar o prefixo de dois pontos : dentro das instruções SQL. Sem ele, o Snowflake gera erros de "identificador inválido".

RUIM:

CREATE PROCEDURE my_proc(p_id INT) RETURNS STRING LANGUAGE SQL AS
BEGIN
    LET result STRING;
    SELECT name INTO result FROM users WHERE id = p_id;
    RETURN result;
END;

BOM:

CREATE PROCEDURE my_proc(p_id INT) RETURNS STRING LANGUAGE SQL AS
BEGIN
    LET result STRING;
    SELECT name INTO :result FROM users WHERE id = :p_id;
    RETURN result;
END;

Dados Semi-Estruturados

  • VARIANT, OBJECT, ARRAY para JSON/Avro/Parquet/ORC.
  • Acessar campos aninhados: src:customer.name::STRING. Sempre converter o tipo: src:price::NUMBER(10,2).
  • VARIANT null vs SQL NULL: JSON null é armazenado como "null". Use STRIP_NULL_VALUE = TRUE ao carregar.
  • Achatar arrays: SELECT f.value:name::STRING FROM my_table, LATERAL FLATTEN(input => src:items) f;

MERGE para Upserts

MERGE INTO target t USING source s ON t.id = s.id
WHEN MATCHED THEN UPDATE SET t.name = s.name, t.updated_at = CURRENT_TIMESTAMP()
WHEN NOT MATCHED THEN INSERT (id, name, updated_at) VALUES (s.id, s.name, CURRENT_TIMESTAMP());

Pipelines de Dados

Escolhendo Sua Abordagem

Abordagem Quando Usar
Tabelas Dinâmicas Transformações declarativas. Escolha padrão. Defina a consulta, o Snowflake cuida da atualização.
Streams + Tasks CDC imperativo. Use para lógica procedural, chamadas de stored procedure.
Snowpipe Carregamento contínuo de arquivos de S3/GCS/Azure.

Tabelas Dinâmicas

CREATE OR REPLACE DYNAMIC TABLE cleaned_events
    TARGET_LAG = '5 minutes'
    WAREHOUSE = transform_wh
    AS
    SELECT event_id, event_type, user_id, event_timestamp
    FROM raw_events
    WHERE event_type IS NOT NULL;

Regras principais:

  • Defina TARGET_LAG progressivamente: mais restritivo no topo, mais flexível na parte inferior.
  • DTs incrementais não podem depender de DTs de atualização completa.
  • SELECT * falha em alterações de esquema — use listas de colunas explícitas.
  • O rastreamento de alterações deve permanecer ativado nas tabelas base.
  • Views não podem ficar entre duas Tabelas Dinâmicas.

Streams e Tasks

CREATE OR REPLACE STREAM raw_stream ON TABLE raw_events;

CREATE OR REPLACE TASK process_events
    WAREHOUSE = transform_wh
    SCHEDULE = 'USING CRON 0 */1 * * * America/Los_Angeles'
    WHEN SYSTEM$STREAM_HAS_DATA('raw_stream')
    AS INSERT INTO cleaned_events SELECT ... FROM raw_stream;

-- Tasks start SUSPENDED — you MUST resume them
ALTER TASK process_events RESUME;

Cortex AI

Referência de Funções

Função Propósito
AI_COMPLETE Conclusão de LLM (texto, imagens, documentos)
AI_CLASSIFY Classificar em categorias (até 500 rótulos)
AI_FILTER Filtro booleano em texto/imagens
AI_EXTRACT Extração estruturada de texto/imagens/documentos
AI_SENTIMENT Pontuação de sentimento (-1 a 1)
AI_PARSE_DOCUMENT Extração de OCR ou layout
AI_REDACT Remoção de PII

Descontinuado (NÃO usar): COMPLETE, CLASSIFY_TEXT, EXTRACT_ANSWER, PARSE_DOCUMENT, SUMMARIZE, TRANSLATE, SENTIMENT, EMBED_TEXT_768.

TO_FILE — Fonte Comum de Erro

O caminho do stage e o nome do arquivo são argumentos SEPARADOS:

-- BAD: TO_FILE('@stage/file.pdf')
-- GOOD:
TO_FILE('@db.schema.mystage', 'invoice.pdf')

Use AI_CLASSIFY para Classificação (Não AI_COMPLETE)

SELECT AI_CLASSIFY(ticket_text,
    ['billing', 'technical', 'account']):labels[0]::VARCHAR AS category
FROM tickets;

Agentes Cortex

CREATE OR REPLACE AGENT my_db.my_schema.sales_agent
FROM SPECIFICATION $spec$
{

…
Perguntas frequentes

O que é 'snake_case'?

É uma forma de escrever nomes de variáveis ou colunas usando letras minúsculas e separando as palavras com um underscore (_), como 'nome_do_cliente'.

O que são 'CTEs'?

CTEs (Common Table Expressions) são como rascunhos temporários dentro de uma consulta SQL maior, ajudando a organizar o código e torná-lo mais legível.

O que é 'MERGE'?

MERGE é um comando SQL que permite inserir, atualizar ou excluir linhas em uma tabela com base em comparações com outra tabela, de forma eficiente.

Detalhes

Descrição original do autor

Comprehensive Snowflake development assistant covering SQL best practices, data pipeline design (Dynamic Tables, Streams, Tasks, Snowpipe), Cortex AI functions, Cortex Agents, Snowpark Python, dbt integration, performance tuning, and security hardening.

repo: sickn33/agentic-awesome-skills

Popularidade

Estrelas no GitHub
48 mil
Posição no ranking
#4203
Licença
MIT
Atualizada em
15/10/2026

Essa skill é útil?

0

Entre para votar.

Comentários

  • …

Mais skills deste repositório

Skills parecidas