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 oOnErrorOption
comoOnErrorOption.CONTINUE
e verifique manualmente o valor de retorno deinsertRows
quanto a possíveis erros de ingestão. Esta abordagem atualmente leva a um melhor desempenho do que confiar em exceções lançadas quandoOnErrorOption.ABORT
é usado.Se você estiver carregando várias linhas, usar
insertRows
será mais eficiente e econômico do que chamarinsertRow
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