O que você vai aprender

Saiba como aplicar 2 otimizações recomendadas do Snowflake à tabela de eventos exportada do Klaviyo. Essas alterações têm o objetivo de reduzir varreduras amplas de tabela e ajudar o Snowflake a se concentrar nos registros de eventos e intervalos de tempo relevantes durante a sincronização.

  • Ative a otimização de pesquisa para buscas de igualdade em id. Isso exige o Snowflake Enterprise Edition ou superior.
  • Agrupe a tabela de eventos pela data do evento. Isso funciona em todas as edições do Snowflake e deve ser feito independentemente de você também conseguir concluir a etapa de Otimização de pesquisa.

Antes de começar

Confirme o seguinte com sua equipe de plataforma de dados:

  • Você tem um destino do Snowflake configurado para exportar eventos do Klaviyo. Para instruções de configuração, consulte Entenda a sincronização do data warehouse na Klaviyo.
  • Se a sua conta do Snowflake estiver no Enterprise Edition ou superior, se você planeja concluir a Etapa 3 (Otimização de pesquisa). O clustering na Etapa 4 funciona em todas as edições do Snowflake e deve ser feito independentemente disso.
  • Sua função tem OWNERSHIP na tabela events e USAGE ou OWNERSHIP no banco de dados e no esquema dela. Se você ativar a Otimização de pesquisa, sua função também precisa de ADD SEARCH OPTIMIZATION no esquema.
  • Você sabe o nome totalmente qualificado da tabela de eventos do Klaviyo no seu ambiente.
  • A tabela de eventos contém uma coluna id, e a coluna de carimbo de data/hora do evento se chama DATETIME ou tem um nome equivalente.
  • Você tem uma janela de teste planejada, especialmente se uma sincronização histórica estiver em andamento no momento.

Os nomes das tabelas neste guia são exemplos. Substitua <EVENTS_TABLE> pelo nome exato do banco de dados, do esquema e da tabela na sua conta. Substitua <EVENTS_SCHEMA> pelo banco de dados e pelo esquema que contêm essa tabela, por exemplo, MY_DATABASE.PUBLIC.

Revise os custos do Snowflake com a equipe da sua plataforma de dados antes de aplicar essas alterações. A Otimização de pesquisa e o agrupamento automático podem adicionar cobranças de configuração e de manutenção contínua, além de custos de armazenamento. Veja os custos de Otimização de pesquisa e os custos de agrupamento, especialmente antes de otimizar uma tabela grande.

Etapa 1: identificar e validar a tabela de eventos

  1. Abra uma planilha do Snowflake usando uma função com as permissões necessárias.
  2. Confirme o identificador exato da tabela usado pela sua integração com o Klaviyo.
  3. Verifique se a tabela contém as colunas de pesquisa e de carimbo de data/hora esperadas.

Por exemplo:

text
DESCRIBE TABLE <EVENTS_TABLE>;

Confirme que:

  • id é o identificador do evento usado para consultas de igualdade.
  • DATETIME é o carimbo de data/hora do evento ou identifique a coluna de carimbo de data/hora equivalente para usar na expressão de clustering.

Etapa 2: capturar uma linha de base (opcional)

Antes de aplicar as alterações, registre informações suficientes para comparar os resultados depois:

  • Status e duração atuais da sincronização.
  • Se a sincronização é histórica ou incremental.
  • Warehouse do Snowflake usado pela integração.
  • Créditos aproximados ou computação usados pela atividade de sincronização recente.
  • Quaisquer IDs de consulta, mensagens de erro ou carimbos de data/hora relevantes do histórico de consultas do Snowflake.

Se uma sincronização histórica estiver sendo executada por um tempo anormalmente longo, coordene com a Klaviyo antes de pausá-la ou reiniciá-la.

Etapa 3: ativar a otimização de pesquisa no ID do evento (opcional)

A Otimização de pesquisa requer o Snowflake Enterprise Edition ou superior. Se sua conta estiver no Standard Edition, pule esta etapa e vá para a etapa 4 — o clustering não tem nenhum requisito de edição e deve ser feito de qualquer forma.

Antes de ativar a Otimização de pesquisa, revise a configuração existente:

text
DESCRIBE SEARCH OPTIMIZATION ON <EVENTS_TABLE>;

Se a saída incluir uma entrada EQUALITY com atividade para id, mantenha a configuração existente e ignore as instruções ALTER TABLE nesta etapa. Caso contrário, confirme a configuração com o administrador do Snowflake antes de adicioná-la.

Execute a instrução a seguir depois de substituir o placeholder pelo nome real da sua tabela:

text
ALTER TABLE <EVENTS_TABLE>
ADD SEARCH OPTIMIZATION ON EQUALITY(id);

Por exemplo, se a tabela se chama klaviyo_events:

text
ALTER TABLE klaviyo_events
ADD SEARCH OPTIMIZATION ON EQUALITY(id);

Isso cria um caminho de acesso otimizado para predicados de igualdade em id, o que tem a intenção de reduzir a quantidade da tabela de eventos que o Snowflake precisa escanear em consultas direcionadas.

Etapa 4: Adicionar clustering com base em data à tabela de eventos

Antes de definir a chave de clustering, execute o seguinte comando e encontre sua tabela de eventos na saída:

text
SHOW TABLES IN SCHEMA <EVENTS_SCHEMA>;

Revise cluster_by. Se já especificar TO_DATE() na coluna de carimbo de data/hora do evento, mantenha essa chave e pule as instruções ALTER TABLE nesta etapa. Se especificar uma chave diferente, revise a alteração com sua equipe de plataforma de dados primeiro: CLUSTER BY substitui a chave existente.

Use a coluna de carimbo de data/hora confirmada na Etapa 1. Se a sua coluna tiver um nome diferente, substitua essa coluna na expressão.

Aplique uma chave de clustering com base na parte da data do carimbo de data/hora do evento:

text
ALTER TABLE <EVENTS_TABLE>
CLUSTER BY (TO_DATE(DATETIME));

Por exemplo:

text
ALTER TABLE KLAVIYO_EVENT
CLUSTER BY (TO_DATE(DATETIME));

O agrupamento por data serve para ajudar o Snowflake a eliminar intervalos de tempo não relacionados, em vez de varrer a tabela de eventos inteira.

Etapa 5: permitir que a manutenção do Snowflake seja concluída

Depois que as declarações executadas forem bem-sucedidas ou que você confirmar que as configurações necessárias já estão em vigor:

  1. Dê um tempo para o Snowflake criar ou manter as estruturas de pesquisa e clustering.
  2. Evite avaliar o resultado com base na primeira consulta imediatamente após as instruções DDL.
  3. Continue monitorando o uso do warehouse, as cobranças de manutenção de otimização e o desempenho das consultas enquanto a tabela está sendo mantida.

O tempo necessário depende do tamanho da tabela, do layout dos dados existentes e da carga de trabalho do Snowflake.

Antes de comparar o desempenho da sincronização, execute SHOW TABLES novamente e verifique a linha da sua tabela de eventos:

text
SHOW TABLES IN SCHEMA <EVENTS_SCHEMA>;
  • Se Search Optimization estiver ativado, confirme se search_optimization está ON e se search_optimization_progress atingiu 100 antes de avaliar o desempenho.
  • Confirme se cluster_by mostra a expressão de data esperada e se o automatic_clustering está ON. Se estiver OFF, peça ao administrador do Snowflake para retomar o Automatic Clustering. A configuração ON mostra que a manutenção está ativada, não que o reclustering inicial foi concluído. Peça ao seu administrador para verificar a atividade de reclustering antes de comparar os resultados.

Etapa 6: notificar a Klaviyo

Envie à Klaviyo os seguintes detalhes:

  • O nome totalmente qualificado da tabela de eventos.
  • Quais declarações você executou e quando, ou quais configurações já estavam em vigor.
  • Se a Otimização de pesquisa estiver ativada para o id ou se você tiver pulado a etapa 3.
  • Confirmação de que o clustering baseado em data está configurado na coluna de carimbo de data/hora do evento.
  • A conta/região do Snowflake e o warehouse usado para a sincronização.
  • Qualquer ID de sincronização, ID de consulta ou detalhes de erro relevantes.

Peça para a Klaviyo confirmar se a exportação do seu evento precisa de uma alteração de configuração para usar a correspondência baseada em data com a coluna de carimbo de data/hora em cluster.

Etapa 7: execute uma sincronização de validação controlada (opcional)

Coordene uma execução de validação controlada com a Klaviyo. Sempre que possível, valide com uma sincronização incremental ou outra sincronização limitada antes de reiniciar um backfill histórico grande.

Se você capturou uma linha de base na Etapa 2, compare execuções com volumes de dados semelhantes usando o mesmo data warehouse. Revisar:

  • Hora de começar o processamento.
  • Duração total da sincronização.
  • Comportamento do progresso na IU do Klaviyo.
  • Bytes verificados do Snowflake.
  • Créditos do Snowflake consumidos, incluindo o uso de warehouses e as cobranças de manutenção de otimização.
  • Se a sincronização é concluída sem novas tentativas ou trabalho repetido.

Avalie juntos a duração da sincronização, os bytes verificados e os custos totais do Snowflake. Reduzir apenas o uso do warehouse não garante economia de custos se os custos de manutenção da otimização ou de armazenamento aumentarem.

Etapa 8: monitorar as próximas sincronizações

Acompanhe várias sincronizações subsequentes em vez de depender de uma única execução. Procure por:

  • Custos do Snowflake estáveis ou em queda para volumes de dados comparáveis, incluindo cobranças de manutenção e armazenamento.
  • Menos varreduras amplas de dados históricos.
  • Duração da sincronização mais previsível.
  • Nenhum aumento em consultas com falha ou repetidas.

Compartilhe os resultados com a Klaviyo, incluindo os IDs de consulta antes e depois quando disponíveis.

Solução de problemas

A instrução de Otimização de pesquisa falha

Verifique se:

  • A conta do Snowflake está na edição Enterprise ou superior.
  • A função de execução tem OWNERSHIP na tabela.
  • O nome da tabela e a coluna de ID estão corretos.
  • A função de execução tem ADD SEARCH OPTIMIZATION no esquema que contém a tabela.

A instrução de clustering falha

Verifique se:

  • O nome da tabela está correto.
  • A coluna de carimbo de data/hora existe e é um valor de data ou carimbo de data/hora compatível.
  • A função em execução tem OWNERSHIP na tabela e USAGE ou OWNERSHIP no banco de dados e no esquema dela.
  • A expressão de clustering corresponde ao campo de timestamp real do evento.

A sincronização ainda está lenta ou parece travada

Enviar para a Klaviyo:

  • As definições exatas das tabelas e as instruções usadas.
  • O horário em que cada mudança foi aplicada.
  • O horário de início da sincronização e o status atual.
  • IDs de consulta do Snowflake e uso do warehouse.
  • Qualquer evidência de que o status da UI não está progredindo.

Não remova as otimizações apenas porque a primeira sincronização não melhora. Primeiro, confirme que a Snowflake concluiu a manutenção relevante e que a Klaviyo verificou a configuração do lado da exportação.

Checklist de conclusão

  • Tabela de eventos correta identificada.
  • Colunas de id e carimbo de data/hora do evento confirmadas.
  • Sincronização de referência e métricas de computação registradas (opcional).
  • Otimização de pesquisa ativada para pesquisas de igualdade em id (opcional).
  • Tabela de eventos clusterizada por data do evento.
  • Klaviyo notificado sobre as alterações.
  • Sincronização de validação controlada concluída (opcional).
  • Desempenho da sincronização de acompanhamento e computação revisados (opcional).
Esse artigo foi útil?
Use esse formulário somente para dar feedback sobre os artigos. Saiba como entrar em contato com o suporte.

Saiba mais sobre a Klaviyo

Community
Conecte-se com colegas, parceiros e especialistas da Klaviyo para ter ideias, compartilhar insights e tirar dúvidas.
Parceiros
Contrate um especialista certificado pela Klaviyo para ajudá-lo com uma tarefa específica ou para gerenciamento contínuo de marketing.
Suporte

Acesse o suporte na sua conta.

Suporte por e-mail (teste gratuito e contas pagas) Disponível 24 horas

Chat/assistência virtual
A disponibilidade varia conforme o local e o tipo de plano