Optimeringsguide för Snowflakes händelsetabell
Du kommer att lära dig
Den här guiden går igenom två rekommenderade Snowflake-optimeringar för Klaviyo händelsetabell. Dessa ändringar är avsedda att minska omfattande tabellskanningar och hjälpa Snowflake att fokusera på relevanta händelseposter och tidsintervall under synkronisering.
- Aktivera sökoptimering för equality lookups på id. Detta kräver Snowflake Enterprise Edition eller högre.
- Klustra händelsetabellen efter händelsedatum. Det här fungerar i alla Snowflake-utgåvor och bör göras oavsett om du även kan slutföra steget för sökoptimering.
Innan du börjar
Bekräfta följande med ditt team för dataplattformen:
- Oavsett om ditt Snowflake-konto använder Enterprise Edition eller högre, om du planerar att slutföra steg 3 (sökoptimering). Klustering i steg 4 fungerar i alla Snowflake-utgåvor och bör göras oavsett.
- Du har behörighet att ändra händelsetabellen och aktivera optimeringsfunktioner på tabellnivå.
- Du känner till det fullständiga namnet för Klaviyo händelsetabell i din miljö.
- Händelsetabellen innehåller en id-kolumn och kolumnen för händelsetidsstämpel heter DATETIME eller har ett motsvarande namn.
- Du har ett planerat testfönster, särskilt om en historisk synkronisering körs just nu.
Tabellnamnen i den här guiden är exempel. Ersätt <EVENTS_TABLE> med det exakta databas-, schema- och tabellnamnet i ditt Konto.
Steg 1: identifiera och validera händelsetabellen
- Öppna ett Snowflake-kalkylblad med en roll som har de behörigheter som krävs.
- Bekräfta den exakta tabellidentifieraren som används av din Klaviyo-integration.
- Verifiera att tabellen innehåller de förväntade uppslags- och tidsstämpelkolumnerna.
Till exempel:
DESCRIBE TABLE <EVENTS_TABLE>; Bekräfta att:
- id är händelseidentifieraren som används för uppslag av likhet.
- DATETIME är händelsens tidsstämpel, eller identifiera den motsvarande tidsstämpelkolumnen som ska användas i klustringsuttrycket.
Steg 2: Fastställ en baslinje (valfritt)
Innan du tillämpar ändringarna ska du dokumentera tillräckligt med information för att kunna jämföra resultaten efteråt:
- Aktuell synkroniseringsstatus och varaktighet.
- Om synkroniseringen är historisk eller inkrementell.
- Snowflake-data warehouse som används av integrationen.
- Ungefärliga krediter eller beräkning som använts av nylig synkaktivitet.
- Alla relevanta fråge-ID:n, felmeddelanden eller tidsstämplar från Snowflake Query History.
Om en historisk synkronisering körs under ovanligt lång tid ska du samordna med Klaviyo innan du pausar eller startar om den.
Steg 3: aktivera sökoptimering för händelse-ID:t (valfritt)
Sökoptimering kräver Snowflake Enterprise Edition eller senare. Om ditt Konto är på Standard Edition hoppar du över det här steget och går till steg 4 – klustring har inget editionskrav och bör göras oavsett.
Kör följande sats efter att du har ersatt platshållaren med ditt faktiska tabellnamn:
ALTER TABLE <EVENTS_TABLE>
ADD SEARCH OPTIMIZATION ON EQUALITY(id); Till exempel, om tabellen heter klaviyo_events:
ALTER TABLE klaviyo_events
ADD SEARCH OPTIMIZATION ON EQUALITY(id); Detta skapar en optimerad åtkomstsökväg för likhetspredikat på id, vilket är avsett att minska mängden i händelsetabellen som Snowflake måste skanna för riktade uppslagningar.
Om sökoptimering redan är aktiverat för id ska du inte skapa en dubblettkonfiguration. Bekräfta den befintliga konfigurationen med din Snowflake-administratör i stället.
Steg 4: Lägg till datum-baserad klustring i händelsetabellen
Tillämpa en klustringsnyckel baserad på datumsdelen av händelsetidsstämpeln:
ALTER TABLE <EVENTS_TABLE>
CLUSTER BY (TO_DATE(DATETIME)); Till exempel:
ALTER TABLE KLAVIYO_EVENT
CLUSTER BY (TO_DATE(DATETIME)); Använd tidsstämpelkolumnen som bekräftades i steg 1. Om din kolumn har ett annat namn ersätter du den kolumnen i uttrycket.
Datumklustring är avsedd att hjälpa Snowflake att gallra bort orelaterade tidsintervall i stället för att skanna hela händelsetabellen.
Steg 5: låt Snowflake-underhållet slutföras
När båda satserna lyckas:
- Ge Snowflake tid att bygga upp eller underhålla sök- och klustringsstrukturerna.
- Undvik att bedöma resultatet från den första frågan direkt efter DDL-satserna.
- Fortsätt att övervaka lageranvändning och frågeprestanda medan tabellen underhålls.
Hur lång tid som krävs beror på tabellstorleken, den befintliga datalayouten och Snowflakes arbetsbelastning.
Steg 6: Meddela Klaviyo
Skicka följande uppgifter till Klaviyo:
- Det fullständigt kvalificerade tabellnamnet för events.
- Tidsstämpeln när varje statement tillämpades.
- Bekräftelse på att sökoptimering aktiverades för id.
- Bekräftelse på att datumklustring har tillämpats.
- Snowflake-kontot/regionen och lagret som används för synkroniseringen.
- Eventuellt relevant synk-ID, fråge-ID eller feluppgifter.
Klaviyo kommer att verifiera om någon konfiguration på exportsidan krävs för att dra full nytta av optimeringen av händelsetabellen.
Steg 7: kör en kontrollerad valideringssynkronisering (valfritt)
Om möjligt, validera med en inkrementell eller på annat sätt begränsad synk innan du startar om en stor historisk backfill.
Jämför den nya körningen med baslinjen från steg 2:
- Dags att börja bearbeta.
- Total synkroniseringstid.
- Förloppsbeteende i Klaviyo-gränssnittet.
- Snowflake-byte som skannats.
- Lagerkrediter förbrukade.
- Om synkroniseringen slutförs utan nya försök eller upprepat arbete.
Den starkaste signalen är en förbättring i både synkroniseringstid och Snowflake-beräkning, snarare än ett enskilt mättal isolerat.
Steg 8: övervaka de kommande synkroniseringarna
Spåra flera efterföljande synkroniseringar i stället för att förlita dig på en enda körning. Leta efter:
- Stabil eller minskande beräkning när händelsetabellen växer.
- Färre breda genomsökningar av historiska data.
- Mer förutsägbar synkroniseringsvaraktighet.
- Ingen ökning av misslyckade eller upprepade frågor.
Dela resultaten med Klaviyo, inklusive fråge-ID:n före och efter när det är möjligt.
Felsökning
Utsagan för sökoptimering misslyckas
Kontrollera att:
- Snowflake-Kontot stöder funktionen.
- Den exekverande rollen har behörighet att ändra tabellen.
- Tabellnamnet och ID-kolumnen är korrekta.
- Search Optimization är inte redan konfigurerat för den begärda kolumnen.
Klustringsuttrycket misslyckas
Kontrollera att:
- Tabellnamnet är korrekt.
- Tidsstämpelkolumnen finns och är en kompatibel tidsstämpel- eller datumtyp.
- Den exekverande rollen kan ändra tabellen.
- Klustringsuttrycket matchar det faktiska fältet för händelsetidsstämpel.
Synkningen är fortfarande långsam eller verkar ha fastnat
Skicka Klaviyo:
- De exakta tabelldefinitionerna och de statements som användes.
- Tiden då varje ändring tillämpades.
- Synkroniseringens starttid och aktuell status.
- Snowflake-fråge-ID:n och warehouse-användning.
- Alla tecken på att statusen i användargränssnittet inte går framåt.
Ta inte bort optimeringarna enbart för att den första synkningen inte blir bättre. Bekräfta först att Snowflake har slutfört relevant underhåll och att Klaviyo har verifierat sin konfiguration på exportsidan.
Checklista för slutförande
- Korrekt händelsetabell identifierad.
- Kolumnerna id och händelsetidsstämpel bekräftade.
- Grundläggande synk- och beräkningsmättal registrerade (valfritt).
- Search Optimization aktiverat för likhetsuppslag på id (valfritt).
- Händelsetabell klustrad efter händelsedatum.
- Klaviyo har informerats om ändringarna.
- Kontrollerad valideringssynk har slutförts.
- Följ upp synkprestanda och granskat beräkningsresultat (valfritt).