דלג לתוכן הראשי

בינה מלאכותית ולמידת מכונה

תכנון צינורות נתונים: אמינות, סקיילביליות וטיפול בשגיאות

בניית צינורות נתונים – גולמי מול מעובד, אידמפוטנטיות, תורי שגיאות (DLQ), ניטור ואבולוציית סכמה.

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

הנחיתו דאטה גולמי לפני שסומכים על טרנספורמציות. אזורים גולמיים בלתי משתנים (אחסון עם מחיצות, לוגים append-only) מאפשרים replay כשכללי עסק משתנים או באגים נשלחים. שכבה מעובדת ניתנת לבנייה מחדש; אובדן גולמי לעיתים בלתי הפיך.

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

אידמפוטנטיות מאפשרת שינה טובה. מפתחות עסקיים טבעיים, סמנטיקת merge/upsert וחלונות דה-דופליקציה הופכים "לפחות פעם אחת" לתוצאה נכונה. תעדו מהי "כפילות" — מזהה אירוע, מפתח עסקי או hash קובץ — ואכפו ביציריות.

לחץ חזרה ו-retries הם פרוטוקול, לא טלאים. exponential backoff עם רנדומליזציה מונע herd thundering; DLQ ושולחנות בידוד שומרים על הזרימה הראשית בלי להחביא כאב. לכל פריט DLQ צריך כלים: replay, צפייה ופתיחת כרטיס.

נטרו צינורות כמו שירותים. SLA על רענון ("המחסן עדכני בתוך 30 דקות"), שלמות ("מונה שורות בטווח סביל") ותוקף ("שיעור null על סף") עדיפים על סימון ירוק בלי בדיקת השמטות שקטות. אנומליות על מונים לוכדות חילוצים שבורים לעיתים ראשונות.

אבולוציית סכמה היא גם חברתית: פרסמו כללי תאימות — תוספות לפני שבירות, ברירות מחדל בטוחות, חלונות הוצאה משימוש והודעות לצרכנים. לאירועים הצמידו סכמות (Avro/Protobuf/JSON Schema) ומצבי תאימות ב-CI.

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

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

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

משילות עלות אמיתית: סריקת פטה-בייטים לתשובה קטנה בזבוז כסף. pruning של מחיצות, מודלים אינקרמנטליים, אשכולות, ותצוגות מוכנות מראש (materialized) שומרים על מחסנים מהירים בלי אשכולות מוגזמים.

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

חזרה למרכז הידע