Skip to content

Como Selecionar Todas as Colunas de um Estágio no Snowflake facilmente

Updated on

O Snowflake, uma plataforma de dados em nuvem revolucionária, está transformando o cenário da engenharia de dados, data warehouses, data lakes e ciência de dados. Uma das principais características do Snowflake é sua capacidade de lidar com estágios, um componente crucial na data warehousing e análise de dados. Este artigo irá levá-lo a uma imersão profunda no conceito de estágios no Snowflake e, o mais importante, como selecionar todas as colunas de um estágio.

Os estágios no Snowflake funcionam como um espaço intermediário onde os arquivos de dados são armazenados antes de serem carregados nas tabelas. Essa funcionalidade é crucial para operações de dados em massa, tornando-se um tópico essencial para engenheiros de dados e analistas que trabalham com o Snowflake. Mas antes de nos aprofundarmos nos detalhes de como selecionar todas as colunas de um estágio, vamos primeiro entender o que são os estágios do Snowflake e por que eles são importantes.

Quer visualizar facilmente os dados do Snowflake? O RATH (opens in a new tab) oferece a solução mais fácil para visualização de dados com inteligência artificial e um pacote completo para análise de dados automatizada!

Assista ao vídeo a seguir sobre como explorar facilmente insights de dados com o RATH:


Quer conectar seu banco de dados Snowflake ao RATH agora? Confira a Documentação do RATH para um guia passo a passo de integração com o Snowflake: Guia passo a passo de integração com o Snowflake.

Além do Snowflake, o RATH suporta uma ampla variedade de fontes de dados. Aqui estão algumas das principais soluções de banco de dados que você pode conectar ao RATH: Bancos de dados suportados

Interessado? Experimente o RATH agora mesmo no site do RATH (opens in a new tab).

Visualize dados do Snowflake com o RATH (opens in a new tab)

Compreendendo os Estágios do Snowflake

No Snowflake, um estágio é um objeto de banco de dados nomeado que especifica onde os arquivos de dados são armazenados para facilitar o carregamento e descarregamento em massa de dados dentro e fora das tabelas do banco de dados. Os estágios desempenham um papel fundamental no data warehousing e análise de dados, atuando como uma ponte entre os arquivos de dados brutos e as tabelas do Snowflake.

Existem dois tipos de estágios no Snowflake:

  • Estágios Internos: Estes estágios armazenam dados internamente em tabelas do Snowflake. Eles são criados automaticamente para cada tabela e esquema, e você também pode criá-los explicitamente.
  • Estágios Externos: Esses estágios armazenam dados em um local externo, como buckets do Amazon S3, buckets do Google Cloud Storage ou armazenamento de blobs do Microsoft Azure. Os estágios externos são somente leitura, o que significa que você não pode executar operações DML neles.

Compreender a diferença entre esses dois tipos de estágios é crucial ao trabalhar com o Snowflake, pois isso influencia a forma como você interage com seus dados.

Trabalhando com Metadados do Snowflake

O Snowflake gera automaticamente metadados para os arquivos nos estágios internos e externos. Esses metadados incluem nomes de arquivos, IDs de versão e propriedades associadas, fornecendo informações adicionais sobre os arquivos. Os metadados no Snowflake atuam como um mapa para localizar o conteúdo de um data warehouse, tornando-se um aspecto essencial da consulta e análise de dados.

Aqui estão as principais colunas de metadados no Snowflake que você pode consultar ou carregar em tabelas:

  • METADATA$FILENAME: Essa coluna retorna o nome do arquivo estagiado, a linha a qual ela pertence e o caminho do arquivo.
  • METADATA$FILE_ROW_NUMBER: Essa coluna retorna o número da linha para cada registro no arquivo estagiado.

Como Consultar Dados Estagiados no Snowflake

Agora que temos uma compreensão sólida dos estágios e metadados do Snowflake, vamos nos aprofundar em como consultar dados estagiados no Snowflake. Vamos percorrer um guia passo a passo sobre como consultar metadados de um estágio externo e um estágio interno, fornecendo exemplos práticos para ilustrar o processo.

Consultando Metadados de um Estágio Externo

Vamos começar com um exemplo em que temos um arquivo CSV chamado 'Cars' estagiado em um bucket externo do Amazon S3. O arquivo possui três colunas: id, name e location. Veja como você pode consultar os metadados deste arquivo estagiado:

  1. Criar um estágio Snowflake: Primeiro, você precisa criar um estágio que aponte para o bucket do Amazon S3 onde seu arquivo CSV está armazenado. Você pode fazer isso usando o comando CREATE STAGE.

  2. Criar um formato de arquivo: Em seguida, você precisa criar um formato de arquivo que descreva o formato do arquivo CSV. Você pode fazer isso usando o comando CREATE FILE FORMAT.

  3. Consultar os metadados: Por fim, você pode consultar os metadados e as colunas de dados regulares no arquivo estagiado usando uma instrução SELECT. A instrução SELECT deve incluir as colunas METADATA$FILENAME e METADATA$FILE_ROW_NUMBER, bem como as colunas de dados regulares.

Aqui está um trecho de código de exemplo que ilustra essas etapas:

-- Criar um estágio
CREATE OR REPLACE STAGE cars_stage URL = 's3://seu_bucket/caminho/';
 
-- Criar um formato de arquivo
CREATE OR REPLACE FILE FORMAT cars_format TYPE = 'CSV' FIELD_DELIMITER = ',';
 
-- Consultar os metadados e as colunas de dados
SELECT METADATA$FILENAME, METADATA$FILE_ROW_NUMBER, $1, $2, $3
FROM @cars_stage
(FILE_FORMAT => cars_format);

Esta consulta retornará o nome do arquivo, o número da linha e os dados em cada coluna para cada registro no arquivo CSV estagiado.

Consultando Metadados de um Estágio Interno

A consulta de metadados de um estágio interno segue um processo semelhante, mas com algumas diferenças. Vamos considerar um exemplo em que temos um arquivo JSON chamado 'Movies' estagiado em um estágio interno do Snowflake. O arquivo contém objetos com duas propriedades: título e ano. Veja como você pode consultar os metadados deste arquivo estagiado:

  1. Criar um estágio Snowflake: Assim como no caso do estágio externo, primeiro você precisa criar um estágio. No entanto, como este é um estágio interno, você não precisa especificar uma URL.

  2. Criar um formato de arquivo: Em seguida, você precisa criar um formato de arquivo que descreva o formato do arquivo JSON. Isso é feito usando o comando CREATE FILE FORMAT, com o tipo definido como 'JSON'.

  3. Estagiar o arquivo JSON: Você pode estagiar o arquivo JSON do seu diretório local para o estágio do Snowflake usando o comando PUT.

  4. Consultar os metadados: Por fim, você pode consultar os metadados e os objetos no arquivo estagiado usando uma instrução SELECT. A instrução SELECT deve incluir as colunas METADATA$FILENAME e METADATA$FILE_ROW_NUMBER, bem como a função PARSE_JSON para fazer o parse dos objetos JSON.

Aqui está um trecho de código de exemplo que ilustra essas etapas:

-- Criar um estágio (stage)
CREATE OR REPLACE STAGE movies_stage;
 
-- Criar um formato de arquivo
CREATE OR REPLACE FILE FORMAT movies_format TYPE = 'JSON';
 
-- Carregar o arquivo JSON para o estágio (stage)
PUT file://path_to_your_file/movies.json @movies_stage;
 
-- Consultar os metadados e as colunas de dados
SELECT METADATA$FILENAME, METADATA$FILE_ROW_NUMBER, PARSE_JSON($1)
FROM @movies_stage
(FILE_FORMAT => movies_format);
 

Esta consulta retornará o nome do arquivo, número da linha e objetos JSON analisados para cada registro no arquivo JSON em estágio.

Técnicas avançadas para consultar dados em estágio

À medida que você se familiariza mais com a consulta de dados em estágio no Snowflake, pode começar a explorar técnicas mais avançadas. Por exemplo, você pode usar o comando COPY INTO para carregar os dados de um arquivo em estágio em uma tabela do Snowflake. Esse comando permite realizar operações de dados em massa, que podem ser muito mais rápidas do que inserir os dados linha por linha.

Aqui está um exemplo de como você pode usar o comando COPY INTO para carregar os dados de um arquivo CSV em estágio em um bucket do Amazon S3 em uma tabela do Snowflake:

-- Criar uma tabela
CREATE OR REPLACE TABLE cars (id INTEGER, name STRING, location STRING);
 
-- Carregar os dados do arquivo em estágio na tabela
COPY INTO cars
FROM @cars_stage
FILE_FORMAT => cars_format;

Esse comando irá carregar todos os dados do arquivo CSV em estágio na tabela 'cars'. Em seguida, você pode consultar os dados na tabela usando comandos SQL regulares.

Perguntas frequentes

1. Posso consultar dados em estágio no Snowflake sem carregá-los em uma tabela?

Sim, você pode consultar dados em estágio diretamente no Snowflake sem carregá-los em uma tabela. Você pode fazer isso usando a instrução SELECT, conforme mostrado nos exemplos acima. No entanto, lembre-se de que consultar grandes quantidades de dados em estágio diretamente pode ser mais lento do que consultar dados carregados em uma tabela.

2. Que tipos de arquivos posso colocar em estágio no Snowflake?

O Snowflake suporta o estágio de uma variedade de tipos de arquivo, incluindo CSV, JSON, Avro, Parquet e ORC. Você pode especificar o tipo de arquivo ao criar um formato de arquivo.

3. Posso colocar dados de um arquivo local em estágio no Snowflake?

Sim, você pode colocar dados de um arquivo local em estágio no Snowflake usando o comando PUT. Este comando faz o upload do arquivo local para um estágio interno do Snowflake, de onde você pode consultar os dados ou carregá-los em uma tabela.

Conclusão

Selecionar todas as colunas de um estágio no Snowflake é uma operação poderosa que permite consultar e analisar grandes quantidades de dados de forma eficiente. Ao entender os conceitos de estágios e metadados no Snowflake e ao dominar as técnicas para consultar dados em estágio, você pode desbloquear todo o potencial de seus dados e obter insights mais profundos. Seja você um engenheiro de dados, um analista de dados ou apenas alguém interessado em ciência de dados, dominar essas habilidades certamente será uma adição valiosa ao seu conjunto de ferramentas.