Tabelas Externas e Iceberg

Automação de Pipelines de Dados no Snowflake

Emily Melhuish

Technical Curriculum Developer, Snowflake

O que é uma Tabela Externa?

Caso de uso:

  • A Harbr recebe arquivos de dezenas de parceiros diariamente
  • Carregar tudo na Snowflake não faz sentido

tabela externa.png

Tabelas Externas

  • Dados ficam no S3, GCS ou Azure Blob — não entram na Snowflake
  • A Snowflake guarda metadados: caminhos de arquivos, schemas
  • Lê os arquivos na hora da consulta
Automação de Pipelines de Dados no Snowflake

Criando uma Tabela Externa

CREATE EXTERNAL TABLE logistics.supplier_inventory
  WITH LOCATION = @harbr_stage/inventory/
  FILE_FORMAT = (TYPE = 'PARQUET')
  AUTO_REFRESH = TRUE;
Automação de Pipelines de Dados no Snowflake

Quando usar Tabelas Externas

  • Dados pertencem ao parceiro — consulta sem assumir a gestão
  • Arquivos grandes e pouco consultados — evite carregar o que roda 1x por mês
  • Dados não podem mover por compliance — devem ficar na origem
  • Explorar antes de decidir — leia bruto antes de escolher o que carregar
-- Consultar inventário do parceiro
SELECT supplier_id,
       COUNT(*)       AS file_count,
       SUM(quantity)  AS total_units
FROM logistics.supplier_inventory
WHERE delivery_date >= '2024-01-01'
GROUP BY supplier_id;
Automação de Pipelines de Dados no Snowflake

Tabelas Externas vs Carga de Dados

Tabelas externas

  • Zero custo de storage na Snowflake
  • Sempre reflete o estado atual do storage na nuvem
  • Ideal para dados arquivados e pouco consultados
-- Consultar direto, sem carga
SELECT * FROM 
logistics.supplier_inventory
WHERE supplier_id = 'SUP-042';

Carregar com COPY INTO

  • Performance total de consulta na Snowflake
  • Melhor para dados frequentes e ativos
-- Carrega uma vez, consulta rápido
COPY INTO logistics.delivery_events
FROM @harbr_stage/events/;
Automação de Pipelines de Dados no Snowflake

Tabelas Apache Iceberg

  • Como garantir leitura correta de S3, Azure Blob ou GCS?

    • Apache
  • Apache = formato aberto de tabela: dados não presos a um único engine

    • Arquivos Parquet + camada de metadados (time travel, histórico de schema, partições)
    • confiabilidade nível banco de dados

Captura de tela 11/05/2026 às 12:14:31 PM.png

1 * Materiais de aprendizagem da Snowflake
Automação de Pipelines de Dados no Snowflake

Gerenciado pela Snowflake vs Externo

Gerenciado pela Snowflake

  • A Snowflake possui e escreve os metadados do Iceberg
  • Acesso total de leitura e escrita via SQL
CREATE ICEBERG TABLE 
logistics.shipments
  CATALOG = 'SNOWFLAKE'
  EXTERNAL_VOLUME = 'harbr_s3_vol'
  BASE_LOCATION = 'iceberg/shipments/';

Gerenciado externamente

  • Catálogo externo possui os metadados — AWS Glue, Apache Polaris
CREATE ICEBERG TABLE 
logistics.partner_data
  CATALOG = 'glue_catalog'
  EXTERNAL_VOLUME = 'harbr_s3_vol'
  CATALOG_TABLE_NAME = 
  'partner.deliveries';
Automação de Pipelines de Dados no Snowflake

Vamos praticar!

Automação de Pipelines de Dados no Snowflake

Preparing Video For Download...