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).
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.
Criação sob demanda: Você só pode visualizar ou descrever o canal (usando SHOWPIPES ou DESCRIBEPIPE) após ter sido instanciado por uma dessas chamadas.
Convenção de nomenclatura:
<TABLE_NAME>-STREAMING(por exemplo,``MY_TABLE-STREAMING``)Totalmente gerenciado pelo Snowflake: Você não pode executar CREATE, ALTER ou DROP no canal padrão.
Visibilidade: Você pode inspecionar o canal padrão usando SHOW PIPES, DESCRIBE PIPE e SHOW CHANNELS. O canal padrão também está incluído nas exibições ACCOUNT_USAGE.PIPES, ACCOUNT_USAGE.METERING_HISTORY e ORGANIZATION_USAGE.PIPES.
O canal padrão tem as seguintes limitações:
Sem transformações: O canal padrão usa
MATCH_BY_COLUMN_NAMEna 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.