ClickHouse — מנוע האנליטיקה בזמן אמת בסטאק הפלטפורמה

← דף הבית
אנליטיקה ונתונים

ClickHouse — מנוע האנליטיקה בזמן אמת בסטאק הפלטפורמה

הסטאק של 4buildsite כולל את ClickHouse — מסד נתונים עמודתי שנבנה במיוחד לאנליטיקה בנפחים גדולים. עליו אנו בונים את מודול סטטיסטיקות התנועה והמכירות של הפלטפורמה (בפיתוח): הנתונים נשארים שלכם, והדוחות רצים על מערכת נפרדת מהאתר — כך תוכננה הארכיטקטורה.

מהו ClickHouse ולמה אנחנו משתמשים בו

ClickHouse הוא מסד נתונים עמודתי מסוג OLAP (אנליטיקה מקוונת), שנוצר ב-Yandex עבור Yandex.Metrica — אחת ממערכות האנליטיקה הגדולות בעולם — ושוחרר כקוד פתוח ב-2016 תחת רישיון Apache 2.0. הוא נבנה למטרה אחת, שאותה הוא עושה היטב במיוחד: אגרגציות מהירות על נפחי נתונים עצומים. בארכיטקטורה של 4buildsite, ClickHouse הוא המנוע שנבחר לשכבת הסטטיסטיקות: כל ביקור, קליק והזמנה הופכים לאירוע שאפשר לנתח.

הסוד הוא אחסון עמודתי: במקום לקרוא כל «שורה» במלואה, ClickHouse קורא רק את העמודות שהדוח צריך ומעבד אותן בבלוקים גדולים ווקטוריים. לכן שאלה כמו «כמה מבקרים היו לי אתמול, לפי עמוד ולפי מקור» נענית גם על פני מיליוני אירועים — משהו שמסד נתונים קלאסי מבוסס שורות מתקשה בו.

זו אינה טכנולוגיית נישה: Cloudflare משתמשת בו לניתוח תעבורת HTTP בקנה מידה עולמי, ו-Uber, eBay ו-Spotify משתמשות בו לאנליטיקה ולעיבוד לוגים בנפחים עצומים. ב-4buildsite אותו מנוע הוא חלק מסטאק הפלטפורמה — בלי שתצטרכו לשכור צוות הנדסת נתונים.

סטטיסטיקות על מערכת נפרדת מהאתר — כך תוכנן המודול

מודול הסטטיסטיקות של הפלטפורמה נמצא בפיתוח, והארכיטקטורה שלו פשוטה: אירועי תנועה נאספים באופן אסינכרוני ונכתבים ל-ClickHouse, בנפרד לחלוטין מהשרתים שמגישים את הדפים שלכם. המבקרים שלכם אינם ממתינים לאנליטיקה: הדוחות רצים על מערכת נפרדת מהדף. אין סקריפט מעקב כבד של צד שלישי — האיסוף מינימלי ו-first-party.

הדוחות ב-panel.4buildsite.net יחושבו ישירות ב-ClickHouse: תנועה לפי עמוד, מקורות מבקרים, המרות, מכירות לפי מוצר. אגרגציות תכופות מחושבות מראש באמצעות materialized views בכל כתיבה, כך שלוח הבקרה לא מפעיל חישוב כבד בכל פעם שאתם מסתכלים בו.

  • תנועה חיה: ביקורים, עמודים, מקורות והתקנים — ניתנים לשאילתה לאחר האיסוף
  • מכירות לפי מוצר, הזמנות והמרות בחנות שלכם, מאוגדות לדוחות
  • חודשים ושנים של היסטוריה בעלות נמוכה — הדחיסה העמודתית מקטינה את האחסון פי כמה לעומת הנתונים הגולמיים
  • איסוף אסינכרוני, והדוחות רצים על מערכת נפרדת מהאתר

PostgreSQL + ClickHouse: למה אנחנו משתמשים בשניהם

סטאק הפלטפורמה משלב שני מסדי נתונים כי הם עושים דברים שונים מהותית. PostgreSQL הוא פנקס העסקאות (OLTP): הזמנות, תשלומים, מלאי, חשבונות משתמשים — פעולות שחייבות להיות נכונות לחלוטין אחת-אחת, עם ערבויות טרנזקציוניות. ClickHouse הוא חדר הניתוח (OLAP): מיליוני אירועים הנקראים בבת אחת כדי לענות על השאלות שלכם על תנועה ומכירות.

אילו דוחות כבדים רצו על אותו מסד נתונים שמעבד הזמנות, כל דוח היה מתחרה בלקוחות ששילמו באותו רגע. ההפרדה בין OLTP ל-OLAP מבטלת את הקונפליקט: הזמנה של לקוח לא ממתינה לדוח שלכם, והדוח שלכם לא ממתין להזמנות של אחרים. כל מנוע עושה בדיוק את מה שנבנה לעשות.

  • PostgreSQL: הזמנות, תשלומי Stripe, מלאי, לקוחות — נכונות טרנזקציונית
  • ClickHouse: אירועי תנועה, דוחות, סטטיסטיקות — אגרגציה בנפח גדול
  • התכנון משכפל נתונים טרנזקציוניים רלוונטיים אל ClickHouse כאירועים, כך שדוחות מכירות לעולם לא נוגעים במסד הנתונים שמשרת את החנות שלכם

אנליטיקה first-party ידידותית לפרטיות — במקום Google Analytics

העיקרון של מודול הסטטיסטיקות: נתוני האתר שלכם נשארים בתשתית הפלטפורמה. הם לא נשלחים ל-Google או לרשתות פרסום אחרות, לא נמכרים ולא מצולבים עם פרופילי משתמשים חיצוניים. זו אנליטיקה first-party במובן המילולי: הנתונים על המבקרים שלכם הם שלכם.

מכיוון שהגישה אינה משתמשת בעוגיות מעקב של צד שלישי, העמידה ב-GDPR הופכת לפשוטה בהרבה. הקשר חשוב: ב-2022 רשויות הגנת המידע באוסטריה, בצרפת ובאיטליה קבעו ששימוש ב-Google Analytics אינו תואם ל-GDPR בשל העברות נתונים לארה״ב. באנליטיקה first-party המתארחת באירופה, כל קטגוריית הסיכון הזו נעלמת כבר בהתחלה.

יש גם יתרון מעשי ישיר: דוחות שמחושבים ב-ClickHouse אינם מדוגמים, בניגוד למה שקורה לא פעם בדוחות הסטנדרטיים של כלי אנליטיקה חינמיים.

דוחות חנות ו-marketplace — מה המודול יספק

בחנות מקוונת, ClickHouse יפרוש תשובות לשאלות החשובות: אילו מוצרים נמכרים, אילו מקורות מביאים לקוחות שאכן קונים, איפה עגלות נזנחות. ב-marketplace מרובה מוכרים, אותן אגרגציות ירוצו על כל ההזמנות: היקף לפי מוכר, עמלות, מוצרים מובילים לפי קטגוריה — בלי ייצוא ידני ובלי גיליונות אלקטרוניים.

ובקנה מידה גדול, הדברים נשארים זולים. הדחיסה העמודתית מקטינה את הנתונים פי כמה לעומת הפורמט הגולמי, כך שאפשר לשמור שנים של היסטוריה בעלות אחסון נמוכה. כשהתנועה גדלה מאלפים למיליוני אירועים, האגרגציות נשארות על אותו מנוע — המנוע תוכנן מלכתחילה למיליארדי שורות, ולא הותאם לכך בדיעבד.

יתרונות וחסרונות

יתרונות

  • אגרגציות על מיליוני אירועים במנוע עמודתי.
  • האנליטיקה רצה על מערכת נפרדת מזו שמגישה את הדפים.
  • נתוני התנועה שלכם נשארים שלכם, בתשתית הפלטפורמה — בלי העברה ל-Google או לרשתות פרסום.
  • בלי עוגיות מעקב של צד שלישי — עמידה פשוטה יותר ב-GDPR.
  • דחיסה עמודתית חזקה — שנים של היסטוריה בעלות אחסון נמוכה.
  • קוד פתוח (Apache 2.0), בלי רישיונות לפי נפח — העלות לא מזנקת כשהתנועה גדלה.

מגבלות

  • אינו מסד נתונים טרנזקציוני — עדכון או מחיקה של שורות בודדות היא פעולה כבדה; לכן הזמנות ותשלומים נשמרים ב-PostgreSQL.
  • מותאם לכתיבות גדולות באצוות; הרבה הכנסות קטנות ותכופות דורשות איגוד לאצוות — הפלטפורמה מטפלת בכך, אך זו מגבלה אמיתית של המנוע.
  • JOIN מורכבים גמישים פחות מאשר ב-PostgreSQL — את סכמת האירועים צריך לתכנן לאנליטיקה מלכתחילה.
  • שליפת שורה בודדת (point lookup) איטית יותר מאשר במסד OLTP עם אינדקסים — הוא אינו מחליף את מסד הנתונים הראשי של החנות.

סיכום קצר

ClickHouse הוא הבחירה הנכונה לאנליטיקה בנפח גדול: סטטיסטיקות תנועה ומכירות, עם הנתונים שלכם, על מערכת נפרדת מהאתר. להזמנות, תשלומים ומלאי נשאר PostgreSQL — ולכן הסטאק של 4buildsite משלב את שניהם, כל אחד במה שהוא עושה הכי טוב. מודול הסטטיסטיקות שנבנה על ClickHouse נמצא בפיתוח.

טבלת מפרט

יכולתמגבלה / סףשימוש טיפוסי
אגרגציות אנליטיותאגרגציות על מיליוני אירועים (עמודתי + ווקטורי)איטי בשליפת שורה בודדת — לא מתאים ל-point reads של OLTPדוחות תנועה ומכירות (מודול הסטטיסטיקות, בפיתוח)
קליטת אירועיםנפחים גבוהים, נכתבים באצוותהכנסות קטנות ותכופות דורשות batching / async insertאיסוף pageviews, קליקים, הזמנות
אחסון ודחיסהדחיסה עמודתית (LZ4/ZSTD), פי כמה מתחת לנפח הגולמינתונים אקראיים מאוד נדחסים פחותחודשים ושנים של היסטוריית אירועים, בעלות נמוכה
עדכונים ומחיקותmutations אסינכרוניות לתיקונים מזדמניםלא מתאים ל-UPDATE תכופים של שורות בודדותמחיקות לפי GDPR (נתוני משתמש אחד, לפי בקשה)
Materialized viewsאגרגטים מחושבים מראש בכל כתיבהאת האגרגטים יש להגדיר מראש, לכל דוחלוחות בקרה: מכירות לפי יום, מוצר, מקור
עדכון נתוניםאירועים ניתנים לשאילתה לאחר שקרואינו מערכת streaming ברמת אלפיות שנייהסטטיסטיקות תנועה והמרות

ClickHouse מול PostgreSQL מול Google Analytics / BigQuery — לאנליטיקה

קריטריוןClickHouse (4buildsite)PostgreSQL (לאנליטיקה)Google Analytics / BigQuery
מהירות אגרגציה בנפח גדולאגרגציה מהירה על מיליוני שורותיורד באופן ניכר על פני עשרות מיליוני שורות (אחסון שורות)BigQuery מהיר; ל-GA4 יש דוחות סטנדרטיים מחושבים מראש, בלי שאילתות חופשיות
בעלות על הנתונים / GDPRהנתונים שלכם, בתשתית הפלטפורמה, באירופההנתונים שלכם, בשרתים שלכםהנתונים אצל Google; העברות GA לארה״ב נקבעו כבלתי תואמות ל-GDPR בידי רשויות באיחוד האירופי ב-2022
עוגיות והסכמהבלי עוגיות מעקב של צד שלישיתלוי במימוש שלכםדורש באנר הסכמה למעקב
עדכון נתוניםנתונים ניתנים לשאילתה לאחר האיסוףאפשרי, אך דוחות כבדים מעמיסים על מסד הנתונים הטרנזקציונידוחות סטנדרטיים ב-GA4 יכולים להתעכב בשעות; streaming ב-BigQuery עולה כסף נוסף
עלות בנפח גדולקוד פתוח — העלות היא רק תשתית, הכלולה במנויגדלה עם אינדקסים, vacuum וחומרה בנפחים גבוהיםBigQuery גובה לפי נפח שאילתות; שכבת ה-enterprise של GA יקרה
השפעה על מהירות האתראיסוף אסינכרוני, דוחות על מערכת נפרדתדוחות עלולים להתחרות בהזמנות על אותו מסד נתוניםסקריפט צד שלישי (gtag.js) בדף — JavaScript נוסף ובקשות חיצוניות

שאלות נפוצות

האם ClickHouse מאט את האתר או החנות שלי?

לא. ClickHouse רץ על מערכת נפרדת מזו שמגישה את הדפים שלכם — כך תוכננה הארכיטקטורה. אירועי תנועה נשלחים באופן אסינכרוני, והדוחות לעולם לא נוגעים במסד הנתונים של החנות.

למה לא פשוט להשתמש ב-Google Analytics?

משלוש סיבות. הנתונים נשארים שלכם, בתשתית הפלטפורמה ולא אצל Google. אין צורך בעוגיות מעקב של צד שלישי, ולכן העמידה ב-GDPR פשוטה יותר — ב-2022 רשויות באוסטריה, בצרפת ובאיטליה קבעו ש-GA אינו תואם ל-GDPR. והדוחות מלאים, לא מדוגמים.

מה ההבדל בין ClickHouse ל-PostgreSQL — ולמה שניהם?

PostgreSQL הוא מסד הנתונים הטרנזקציוני (OLTP): הוא מעבד הזמנות, תשלומים ומלאי אחד-אחד, עם ערבויות נכונות. ClickHouse הוא מסד הנתונים האנליטי (OLAP): הוא קורא מיליוני אירועים בבת אחת עבור דוחות. ההפרדה גורמת לכך שדוח כבד אינו רץ על מסד ההזמנות של הלקוחות שלכם.

האם נתוני התנועה שלי בטוחים ותואמים ל-GDPR?

כן — מעצם התכנון. הסטטיסטיקות הן first-party: הן שוכנות בתשתית הפלטפורמה, באירופה, ולעולם לא נמכרות ולא משותפות עם רשתות פרסום. הגישה אינה משתמשת בעוגיות מעקב של צד שלישי, ואת נתוני המשתמש אפשר למחוק לפי בקשה, בהתאם ל-GDPR.

עד כמה הסטטיסטיקות עדכניות?

אירוע — ביקור, קליק, הזמנה — נעשה גלוי בדוחות לאחר שקרה. אגרגציות על פני תקופות ארוכות (חודשים, שנים) עדיין נענות היטב, כי ClickHouse נבנה בדיוק לסוג כזה של שאילתות.

האם אצטרך להגדיר משהו כדי לקבל סטטיסטיקות באתר שלי?

לא תצטרכו. מודול הסטטיסטיקות נמצא בפיתוח ונבנה כחלק מהפלטפורמה: ברגע שיעלה לאוויר בפאנל הניהול, האיסוף יתחיל אוטומטית עבור אתרים שפורסמו — בלי סקריפטים להתקנה ובלי חשבונות חיצוניים.

4b2b.net
אקוסיסטם עסקי
4conta.ro
הנהלת חשבונות
4invoices.net
אפליקציית חשבוניות
4expenses.net
ניהול הוצאות
4notify.net
התראות
4hosting.net
אחסון אתרים
4database.net
מסדי נתונים
4buildsite.net
בונה אתרים
4myapp.net
בונה אפליקציות
4avatars.net
אווטארים מבוססי AI
4chaty.net
צ׳אטבוט AI
4webagency.net
תוכנה לסוכנויות דיגיטל
4softedu.net
אתרים לחינוך
4softcrm.net
פלטפורמת CRM
4softerp.net
מערכת ERP
4softhr.net
ניהול משאבי אנוש
4mystaff.net
פורטל עובדים
4myprojects.net
מנהל פרויקטים
4mycontracts.net
חוזים
4docs.net
ניהול מסמכים
4appointments.net
תורים והזמנות
4marketingonline.net
שיווק
4insurance.net
ביטוח
4property.net
נדל"ן
4lawyers.net
תוכנה משפטית
4mygarage.net
מוסך
4driving.net
בתי ספר לנהיגה
4fleet.net
ניהול צי רכב
4myevents.net
אירועים
4therapy.net
טיפול
4clinics.net
מרפאות
4dental.net
מרפאות שיניים
4restaurants.net
מסעדות
4beautify.net
מכוני יופי
4gym.net
חדרי כושר
4guards.net
חברות אבטחה
4softvet.net
מרפאות וטרינריות
4softauto.net
תוכנה לעסקי רכב
4construct.net
חברות בנייה
4marketplace.net
מרקטפלייס
4shopy.net
חנות מקוונת
4pricing.net
השוואת מחירים
4salefood.net
משלוחי אוכל
4rentify.net
השכרות
4transports.net
הובלה
4agencytravel.net
סוכנות נסיעות
4hotel.net
ניהול מלונות
4ong.net
ניהול עמותות