Práticas recomendadas do Snowpipe Streaming

Otimização de custo

Como prática recomendada, recomendamos chamar o API com menos clientes que escrevem mais dados por segundo. Agregue dados de múltiplas fontes tais como dispositivos ou sensores de IoT usando um aplicativo Java ou Scala, depois chame o API para carregar dados usando o Snowflake Ingest SDK a taxas de fluxo mais altas. O API agrega eficientemente os dados em várias tabelas de destino em uma conta.

Alavancar as mesmas tabelas tanto para a ingestão de lote quanto para a ingestão de streaming também pode resultar na redução dos custos de computação do Snowpipe Streaming devido às operações de migração de arquivos capturadas.

Recomendações de desempenho

Para um ótimo desempenho em implantações de alto rendimento, recomendamos as seguintes ações:

  • Passe os valores para as colunas TIME, DATE e todas as colunas TIMESTAMP como um dos tipos suportados do pacote java.time.

  • Ao criar um canal usando OpenChannelRequest.builder, defina o OnErrorOption como OnErrorOption.CONTINUE e verifique manualmente o valor de retorno de insertRows quanto a possíveis erros de ingestão. Esta abordagem atualmente leva a um melhor desempenho do que confiar em exceções lançadas quando OnErrorOption.ABORT é usado.

  • Se você estiver carregando várias linhas, usar insertRows será mais eficiente e econômico do que chamar insertRow várias vezes, pois há menos tempo gasto em bloqueios.

  • Ao definir o nível de log padrão para DEBUG, certifique-se de que os registradores a seguir continuem fazendo o registro de log em INFO. Isso porque sua saída de DEBUG é muito detalhada, o que pode levar a uma degradação significativa do desempenho.

    • net.snowflake.ingest.internal.apache.parquet

    • org.apache.parquet