O objeto PIPE

O objeto PIPE é a camada de processamento do lado do servidor para Snowpipe Streaming. Cada ingestão de streaming flui por um canal, que lida com a validação do esquema, as transformações de dados opcionais em andamento e o pré-clustering opcional antes de confirmar os dados na tabela de destino.

O objeto PIPE fornece os seguintes recursos:

  • Transformações em andamento: filtrar linhas, reordenar colunas, converter tipos e aplicar expressões durante a ingestão usando a sintaxe de transformação do comando COPY. Isso permite limpar e reformular os dados no momento da ingestão, sem precisar da etapa ETL.

  • Pré-clustering: classifique os dados durante a ingestão com base nas chaves de clustering de tabelas para otimizar o desempenho das consultas.

  • Validação do esquema no lado do servidor: valide os dados recebidos em relação ao esquema definido no canal antes de confirmar.

  • Suporte ao recurso de tabela: lida com a ingestão em tabelas com chaves de clustering definidas, colunas de valor DEFAULT e colunas AUTOINCREMENT (ou IDENTITY).

    Objeto PIPE para Snowpipe Streaming

Para configurar rapidamente, o Snowflake cria automaticamente um canal padrão para cada tabela. O canal padrão lida com a ingestão sem precisar de DDL manual. Para casos de uso avançados que exigem transformações ou pré-clustering, você pode criar um canal nomeado personalizado. Para obter mais informações, consulte CREATE PIPE.

Canal padrão

O Snowflake fornece um canal padrão para cada tabela de destino. O canal padrão é criado sob demanda após a primeira chamada de informações do canal ou de canal aberto feita na tabela de destino. Isso permite que você comece a transmitir dados imediatamente, sem precisar executar manualmente as instruções CREATE PIPE DDL.

O canal padrão tem as seguintes limitações:

  • Sem transformações: O canal padrão usa MATCH_BY_COLUMN_NAME na instrução de cópia. Ele não oferece suporte a transformações de dados específicas.

  • Sem pré-clustering: o canal padrão não oferece suporte a pré-clustering para a tabela de destino.

Se seu fluxo de trabalho exigir transformações ou pré-clustering, crie seu próprio canal nomeado. Para obter mais informações, consulte CREATE PIPE.

Quando você configura o SDK ou a API REST do Snowpipe Streaming, pode referenciar o nome do canal padrão na configuração do seu cliente para iniciar o streaming. Para obter mais informações, consulte Tutorial: introdução ao SDK da arquitetura de alto desempenho do Snowpipe Streaming e Tutorial: introdução à API REST do Snowpipe Streaming usando cURL e um JWT:.

Pré-clustering de dados durante a ingestão

O Snowpipe Streaming pode fazer um clustering de dados em uso durante a ingestão, o que melhora o desempenho das consultas em suas tabelas de destino. Esse recurso classifica seus dados diretamente durante a ingestão antes de serem confirmados.

Para usar o pré-clustering, sua tabela de destino precisa ter chaves de clustering definidas. Depois, você pode ativar esse recurso definindo o parâmetro CLUSTER_AT_INGEST_TIME como TRUE na instrução COPY INTO ao criar ou substituir o canal do Snowpipe Streaming.

Para obter mais informações, consulte CLUSTER_AT_INGEST_TIME.

Importante

Ao usar o recurso de pré-clustering, não desabilite o recurso de clustering automático na tabela de destino. Desativar o clustering automático pode levar à degradação do desempenho da consulta ao longo do tempo.