Czego się dowiesz?

Ten przewodnik omawia dwie zalecane optymalizacje Snowflake dla tabeli zdarzeń Klaviyo. Te zmiany mają na celu ograniczenie szerokich skanów tabeli i pomóc Snowflake skupić się na odpowiednich rekordach zdarzeń i zakresach czasu podczas synchronizacji.

  • Włącz Search Optimization na potrzeby wyszukiwań równościowych po id. Wymaga to Snowflake Enterprise Edition lub wyższej.
  • Skup tabelę zdarzeń według daty zdarzenia. Działa to w każdej edycji Snowflake i należy to zrobić niezależnie od tego, czy możesz też ukończyć krok Optymalizacja wyszukiwania.

Kilka słów na początek

Potwierdź poniższe informacje ze swoim zespołem ds. platformy danych:

  • Niezależnie od tego, czy twoje konto Snowflake jest w edycji Enterprise lub wyższej, jeśli planujesz wykonać krok 3 (optymalizacja wyszukiwania). Klasteryzacja w kroku 4 działa w każdej edycji Snowflake i należy ją wykonać niezależnie od tego.
  • Masz uprawnienia do modyfikowania tabeli zdarzeń i włączania funkcji optymalizacji na poziomie tabeli.
  • Znasz w pełni kwalifikowaną nazwę tabeli zdarzeń Klaviyo w swoim środowisku.
  • Tabela zdarzeń zawiera kolumnę id, a kolumna znacznika czasu zdarzenia ma nazwę DATETIME lub inną równoważną nazwę.
  • Masz zaplanowane okno testowe, zwłaszcza jeśli trwa obecnie synchronizacja historyczna.

Nazwy tabel w tym przewodniku są przykładami. Zastąp <EVENTS_TABLE> dokładną nazwą bazy danych, schematu i tabeli na Twoim koncie.

Krok 1: zidentyfikuj i zweryfikuj tabelę zdarzeń

  1. Otwórz arkusz roboczy Snowflake, używając roli z wymaganymi uprawnieniami.
  2. Potwierdź dokładny identyfikator tabeli używany przez Twoją integrację z Klaviyo.
  3. Sprawdź, czy tabela zawiera oczekiwane kolumny wyszukiwania i znacznika czasu.

Na przykład:

text
DESCRIBE TABLE <EVENTS_TABLE>;

Potwierdź, że:

  • id to identyfikator zdarzenia używany do wyszukiwań równościowych.
  • DATETIME to znacznik czasu zdarzenia lub wskaż równoważną kolumnę ze znacznikiem czasu, której użyjesz w wyrażeniu klasteryzacji.

Krok 2: Utwórz punkt odniesienia (opcjonalnie)

Zanim zastosujesz zmiany, zapisz wystarczająco dużo informacji, aby później porównać wyniki:

  • Aktualny status i czas trwania synchronizacji.
  • Czy synchronizacja jest historyczna, czy przyrostowa.
  • Magazyn danych Snowflake używany przez integracje.
  • Przybliżona liczba wykorzystanych kredytów lub zasobów obliczeniowych w ramach ostatniej aktywności synchronizacji.
  • Wszelkie odpowiednie identyfikatory zapytań, komunikaty o błędach lub znaczniki czasu z historii zapytań Snowflake.

Jeśli synchronizacja historyczna trwa wyjątkowo długo, skoordynuj działania z Klaviyo, zanim ją wstrzymasz lub uruchomisz ponownie.

Krok 3: włącz optymalizację wyszukiwania dla identyfikatora zdarzenia (opcjonalnie)

Optymalizacja wyszukiwania wymaga Snowflake Enterprise Edition lub wyższej. Jeśli Twoje konto jest w wersji Standard Edition, pomiń ten krok i przejdź do kroku 4 — klastrowanie nie ma wymagań dotyczących wersji i należy je wykonać niezależnie od tego.

Uruchom poniższe polecenie po zastąpieniu symbolu zastępczego rzeczywistą nazwą tabeli:

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

Na przykład, jeśli tabela nazywa się klaviyo_events:

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

To tworzy zoptymalizowaną ścieżkę dostępu dla predykatów równościowych na id, co ma na celu zmniejszenie ilości danych z tabeli zdarzeń, które Snowflake musi skanować na potrzeby ukierunkowanych wyszukiwań.

Jeśli optymalizacja wyszukiwania jest już włączona dla identyfikatora, nie twórz zduplikowanej konfiguracji. Zamiast tego potwierdź istniejącą konfigurację z administratorem Snowflake.

Krok 4: dodaj klastrowanie oparte na dacie do tabeli zdarzeń

Zastosuj klucz klastrowania na podstawie części daty znacznika czasu zdarzenia:

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

Na przykład:

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

Użyj kolumny znacznika czasu potwierdzonej w kroku 1. Jeśli Twoja kolumna ma inną nazwę, podstaw tę kolumnę w wyrażeniu.

Klastrowanie oparte na dacie ma pomóc Snowflake odfiltrowywać niepowiązane zakresy czasu zamiast skanować całą tabelę zdarzeń.

Krok 5: Pozwól, aby konserwacja Snowflake została ukończona

Po pomyślnym wykonaniu obu instrukcji:

  1. Daj Snowflake czas na zbudowanie lub utrzymanie struktur wyszukiwania i klastrowania.
  2. Unikaj oceniania wyniku na podstawie pierwszego zapytania od razu po wykonaniu instrukcji DDL.
  3. Kontynuuj monitorowanie użycia magazynu i wydajności zapytań, podczas gdy tabela jest konserwowana.

Wymagany czas zależy od rozmiaru tabeli, istniejącego układu danych i obciążenia Snowflake.

Krok 6: Powiadom Klaviyo

Prześlij do Klaviyo następujące informacje:

  • W pełni kwalifikowana nazwa tabeli zdarzeń.
  • Znacznik czasu, kiedy każde polecenie zostało zastosowane.
  • Potwierdzenie, że optymalizacja wyszukiwania została włączona dla id.
  • Potwierdzenie, że zastosowano klastrowanie oparte na dacie.
  • Konto/region Snowflake i magazyn użyte do synchronizacji.
  • Wszelkie istotne ID synchronizacji, ID zapytania lub szczegóły błędu.

Klaviyo sprawdzi, czy po stronie eksportu jest wymagana jakakolwiek konfiguracja, aby w pełni wykorzystać optymalizację tabeli zdarzeń.

Krok 7: uruchom kontrolowaną synchronizację walidacyjną (opcjonalnie)

W miarę możliwości zweryfikuj to za pomocą synchronizacji przyrostowej lub innej ograniczonej synchronizacji przed ponownym uruchomieniem dużego historycznego uzupełniania.

Porównaj nowe uruchomienie z punktem odniesienia z kroku 2:

  • Czas rozpocząć przetwarzanie.
  • Całkowity czas trwania synchronizacji.
  • Zachowanie postępu w interfejsie użytkownika Klaviyo.
  • Liczba przeskanowanych bajtów w Snowflake.
  • Zużyte kredyty magazynu danych.
  • Czy synchronizacja kończy się bez ponownych prób lub powtórzeń pracy.

Najmocniejszym sygnałem jest poprawa zarówno czasu trwania synchronizacji, jak i wykorzystania zasobów obliczeniowych Snowflake, a nie jednej metryki rozpatrywanej osobno.

Krok 8: monitoruj kolejne synchronizacje

Śledź kilka kolejnych synchronizacji, zamiast polegać na pojedynczym uruchomieniu. Zwróć uwagę na:

  • Stabilne lub malejące zużycie zasobów obliczeniowych, gdy tabela zdarzeń rośnie.
  • Mniej szerokich skanów danych historycznych.
  • Bardziej przewidywalny czas trwania synchronizacji.
  • Brak wzrostu liczby nieudanych lub powtórzonych zapytań.

Udostępnij wyniki Klaviyo, uwzględniając identyfikatory zapytań przed i po (jeśli są dostępne).

Rozwiązywanie problemów

Instrukcja optymalizacji wyszukiwania nie działa

Sprawdź, czy:

  • Konto Snowflake obsługuje tę funkcję.
  • Rola wykonawcza ma uprawnienia do modyfikowania tabeli.
  • Nazwa tabeli i kolumna identyfikatora są prawidłowe.
  • Optymalizacja wyszukiwania nie jest jeszcze skonfigurowana dla żądanej kolumny.

Instrukcja klastrowania nie powiodła się

Sprawdź, czy:

  • Nazwa tabeli jest poprawna.
  • Kolumna znacznika czasu istnieje i jest zgodną wartością znacznika czasu lub daty.
  • Rola wykonująca może zmienić tabelę.
  • Wyrażenie klastrowania jest zgodne z rzeczywistym polem znacznika czasu zdarzenia.

Synchronizacja nadal jest wolna lub wygląda na zawieszoną

Wyślij do Klaviyo:

  • Dokładne definicje tabel i użyte instrukcje.
  • Czas zastosowania każdej zmiany.
  • Godzina rozpoczęcia synchronizacji i bieżący status.
  • Identyfikatory zapytań Snowflake i użycie magazynu danych.
  • Wszelkie dowody na to, że status w interfejsie użytkownika nie postępuje.

Nie usuwaj optymalizacji tylko dlatego, że pierwsza synchronizacja nie przynosi poprawy. Najpierw potwierdź, że Snowflake ukończył odpowiednie prace konserwacyjne i że Klaviyo zweryfikowało konfigurację po stronie eksportu.

Lista kontrolna ukończenia

  • Zidentyfikowano poprawną tabelę zdarzeń.
  • Kolumny id i znacznika czasu zdarzenia potwierdzone.
  • Zapisano bazowe metryki synchronizacji i obliczeń (opcjonalnie).
  • Optymalizacja wyszukiwania włączona dla wyszukiwań równościowych po identyfikatorze (opcjonalnie).
  • Tabela zdarzeń pogrupowana według daty zdarzenia.
  • Klaviyo powiadomiono o zmianach.
  • Zakończono synchronizację kontrolowanej walidacji.
  • Dalsza wydajność synchronizacji i wykorzystanie zasobów obliczeniowych zostały sprawdzone (opcjonalnie).
Czy ten artykuł był pomocny?
Ten formularz służy tylko do przesyłania opinii na temat artykułów. Dowiedz się, jak skontaktować się z zespołem ds. pomocy.

Dowiedz się od Klaviyo więcej

Społeczność
Nawiązuj kontakty z osobami na podobnych stanowiskach, partnerami oraz ekspertami i ekspertkami Klaviyo – inspirujcie się nawzajem, wymieniajcie spostrzeżeniami i pomagajcie szukać odpowiedzi na nurtujące Was pytania.
Partnerzy
Zatrudnij certyfikowanego eksperta Klaviyo, który pomoże Ci w konkretnym zadaniu lub w ciągłym zarządzaniu marketingiem.
Pomoc

Uzyskaj wsparcie za pośrednictwem konta.

E-mail do zespołu ds. pomocy (konta w bezpłatnym okresie próbnym oraz konta płatne) Całodobowa dostępność

Czat/wirtualna pomoc
Dostępność różni się w–zależności od lokalizacji i typu planu.