GH GambleHub

נתוני ריפוי עצמי

1) הגדרה ומטרות

נתוני ריפוי עצמי (באנגלית: Self-Realing Data) היא גישה להנדסת נתונים בה מגלים פגמים באופן אוטומטי, ופעולות מתקנות (תיקון, שיגור מחדש, גיבוש מחדש, חידוש אינדקסים) מבוצעות ללא התערבות אנושית או עם התערבות מינימלית (אדם בלולאה למקרים רגישים).
מטרות: MTTR נתונים נמוכים יותר, אמון מוגבר, עמידות להיסחפות וכישלון, עלות צפויה של בעלות.

2) תקלות טיפוסיות שיש לטפל בהן

מזימות וחוזים: שינויים לא מתאימים, עמודות חסרות, קונפליקטים מהסוג.
איכות/יושר: שכפולים, השמטות, הפרות תקינות ייחודיות/הפניות.
זמן ורעננות: עיכובי הזרקה, ”חורים” בחלונות, דסינכרוניזציה של TZ/locales.
מזהים ומפתחות: שינוי מחולל הזיהוי, התנגשויות, צף מפתחות טבעיים.
סדר האירועים: אירועים מאוחרים, הזמנה מחדש, משלוח מחדש (לפחות פעם אחת).
חסימות: השפלה של חבורות, קבצים שבורים/בלוקים, עיוות של כיווץ.
זכויות/ביטחון: מסכות לא נכונות/הצפנה, דליפות מח "ש בעליות.

3) עמודי ריפוי עצמי

1. חוזי נתונים (סכמות + כללים) עם בדיקות אוטומטיות.
2. צינורות אידמפוטנטים (הפעלה מחדש ללא אפקטים כפולים).
3. יומן ורבייה (גלם/ברונזה בלתי ניתנים לשינוי, שושלת).
4. מנגנוני תיקון (הילוך חוזר, הילוך אחורי, דחיסה, מיזוג-תיקון, בנייה מחדש).
5. יכולת תצפית ו-SLO (רעננות, שלמות, ייחודיות, איחור).
6. מדיניות קבלת החלטות (כשאנחנו מתקנים אוטומטית, כשאנחנו מחריפים).

4) חוזים ומבחני איכות

החוזה מתאר: סכימה, טווחים מקובלים, ייחודיות, RLS/מיסוך, רעננות SLA.

דוגמה (סגנון YAML):
yaml dataset: payments schema:
- name: txn_id; type: string; unique: true
- name: user_id; type: string; not_null: true
- name: amount; type: decimal(18,2); min: 0
- name: created_at; type: timestamp; tz: UTC freshness_sla: 15m constraints:
- "count(distinct txn_id) = count()"
- "pct_null(user_id) < 0. 1%"
privacy:
- mask: card_pan -> BIN6LAST4 actions_on_violation:
- auto_quarantine_partition
- backfill_missing_window
- notify_owner_and_open_ticket

בדיקות מבוצעות בכל שלב: הזרקת # היערכות תצוגה. הפרת הכללים מפעילה תיקון אוטומטי (ראה להלן) ו/או הסגר.

5) אידמפוטנטיות ודטרמיניזם

Upsert/Merge על ידי מפתחות יציבים (SCD2 להיסטוריה, SCD1 לפרוסות).
טרנספורמציות דטרמיניסטיות: קלט אחד = פלט אחד עם אותם פרמטרים.
Versioning - תקן את גרסת הקוד/סכימה/שכבה ואת תווית המידע (סימן מים).
כיור אידמפוטנטי: הקלטה באמצעות היערכות + החלפה/שינוי שם אטומי.
בדיוק פעם אחת במשמעות: מקובלת ”לפחות פעם אחת” תחבורה + מקלט אידמפוטנטי.

6) תיקון ערכת כלים

הילוך חוזר/הילוך אחורי: Revelivery for windown not tuffice [ T0, T1 ] 'from understable log (raw).
פיוס: השוואה של אגרגטים/מפתחות בין שכבות (↔ גולמי ↔ מארט) ובין מערכות (מקור ↔ DWH).
Dauplication: חלונות-dedup by key (txn_id, event_id) + watch heuristic (מטושטש עבור מפתחות מלוכלכים).
דחיפה: העברת קבצים קטנים לצדדים גדולים (Parquet/ORC), אינדקס מחדש.
תיקון מיזוג: כאשר רשומות הקונפליקט, עדיפות חוזה (על ידי מקור/זמן/גרסה).
לבנות מחדש אינדקסים/חומרות: חישוב מחדש של אגרגטים/קובייה/גלגול.
הסגר/צל: צדדים חשודים לבודד את עצמם; צרכנים קוראים חוט ”נקי”.
תיווך סכימה: סלקטור הקרנה אוטומטי (מילוי ברירות מחדל, עמודות חישוביות) לשינויים קלים.

7) הגנה על אחסון ויושרה

בדוק כמויות ואימות בלוקים (CRC, זוגיות).
אחסון מניין (מערכות תואמות RAFT/Paxos, מניין קורא/כותב).
קידוד מחיקה עבור יתירות עלות-אפקטיבית.
אחסון אובייקט versioning (ביטול).
Atomic process Lakehouse (log transaction, ACID-trough family: Delta/Iceberg/Hudi).

8) סדר אירועים ו ”מציאות מלוכלכת” ‏

אירועים מאוחרים: לשמור על חלון איחור, להשתמש בסימן מים "ו; חישוב מחדש של חלונות.
Redelivery: dedup by global 'event _ id', idempotency-keys tables.
זמן קיזוז: מנרמל את TZ, לאחסן את _ at 'and' event _ time.
event_time-based צבירה עם התאמת סימני מים.

9) היגיון החלטה (מנוע מדיניות)

חוק: ”מה אנומליה = מה פעולה = מה סף = מי הוא הבעלים”.

דוגמה (פסאודו):
yaml policy: payments_freshness detect: freshness_delay > 15m auto_actions:
- trigger: backfill(last_60m)
- if: gap_persisted > 30m then: quarantine_partition(date=today, hour=current_hour)
escalate:
- if: gap_persisted > 60m -> page_oncall:data guardrails:
- do_not_expose_unverified_to_marts

10) יכולת תצפית ו ־ SLO לנתונים

סט SLO:
  • רעננות של ארגזי תצוגה עם 15 דקות.
  • שלמות> 99. 5% על שדות מפתח.
  • ייחודיות: שכפול <0. 01%.
  • חישוב: p95 <5 min.
  • תיקון יציבות: MTTR-Data <30 דקות.

מטריצות והתראות: מוצג בפרומתאוס/גראפנה; לבנות קלטת עדיפות של תקריות נתונים.

11) פיוס (מעשים)

בדוק אגרגטים: ”ספירה/סכום/מין/מקס” בין שכבות/מערכות על חלון הזזה.
פיוס מפתח: הפרש סימטרי של Sets 'Tonny = (A\B) toother (B\A).
”עבודת ביקורת” תקופתית: השוואה עם המקור, בדיקה סלקטיבית של המקור.
תשלומים/מימון: רישום כפול, פיוס מנותק יומי, רישום התאמה.

12) ניהול מעגל ואבולוציה

SEMVER לתרשימים: MAJOR (שברים )/MINOR (מוסיפים )/PATCH (תיקונים).
חוזים ב CI/CD: סכימה-diff, תאימות, אוטוגנרציה של נדידה.
הוו אחורי: עם MINOR הוספת ברירות מחדל/שדות מחושבים, חישוב מחדש של תצוגות.
תחזיות גמישות: קוראים קוראים תת ־ מערכות של טורים; לאסור על ”בחר”.

13) ביטחון, פרטיות, ציות

RLS/CLS: מסנני שורה/עמודה, במיוחד בענפי תיקון ויצוא.
אסימונים מבוססי PII לבידול בר קיימא.
ביקורת גישה/ייצוא: מי ראה מה הם ייצאו, לאן הם שלחו אותו.
DSAR/Retition: מחיקה אוטומטית/אנונימיות בתהליכי תיקון; שוחד לקחת בחשבון דרישות משפטיות.

14) עלות וביצועים

הילוך אחורי מודע עלות: הגבלת רוחב החלונות (לדוגמה, גלישה 3-7 ימים).
חומרנות ומטמונים: חישוב מחדש של חבורות שונות בלבד (incremental).
עדיפות: תצוגות ביקורתיות ראשונות (פיננסים, סיכונים), ואז אנליטיות.
תיקונים מחוץ לשיא: חלונות לילה/עדיפות נמוכה בלוח הזמנים.

15) בדיקות וסימולציות אירוע

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

16) תרופות אנטי ־ פטריות

תיקוני ”בלתי נראים”: ערכות שקטות ללא ביקורת או דיווח.
מילואים שלא נבדקו: אין מקור אמת/נוסחה.

בקשות כבדות בשידור חי ל-OLTP במהלך התיקונים:
  • בחר בצרכנים: הפסקות עם כל שינוי קטן.
  • המפתח היחיד לשכפול הוא היעדר מפתחות פלק/חשיש חתימות.

17) מימוש מפת דרכים

1. גילוי: סטים/מדדים קריטיים, סיכונים, בעלים; מפת התלות.
2. חוזים ובדיקות: לארגן תוכניות/כללים במצ "ח; לפרסם גלוסרי.
3. אידמפוטנטיות: לשכתב צינורות מפתח באופסרט/מיזוג, כיור אטומי.
4. רישום גולמי ושושלת: שכבה בלתי ניתנת לשינוי, מטא-נתונים מלאים, סימן מים 'ו.
5. מכניקת תיקון: הילוך אחורי/הילוך חוזר, dedup, compaction, הסגר; מנוע מדיניות.
6. לוח מחוונים איכותי, התראות, קלטת עדיפות.
7. כאוס-נתונים ואימונים: תרגילים רגילים + runbook 'ו.
8. אופטימיזציה עלויות: חישובים מחודשים, עדיפות חלונות.

18) רשימת בדיקות טרום שחרור

[ חוזי ] דאטה ובדיקות איכות מכסים סטים קריטיים.
[ ] צינורות הם אידמפוטנטים; יש התחייבות אטומית ופולמוסים.
[ ] Backfill/Replay והסגר מוגדרים, מדיניות הסלמה מאויתת.
[ ] רעננות/שלמות/ייחודיות/מדדי איחורים והתראות בפרוד.
[ ] כולל ביקורת עריכה/תיקונים; מאחסן גרסאות של נוסחאות וחנויות.
[ ] DSAR/Resurvation הוא אחריו לתיקונים וגלגולים.

יש ספר ריצות 'ו, תרגילים שנערכו, MTTR-היעד קבוע.

[ ] עלות המילואים מוגבלת ע "י שומרי התקציב.

19) דוגמאות לפעולות אוטומטיות (תבניות)

”כשל רענן בחלון X” * backfill (last_2h) # אם לא בסדר תוך 30 דקות * הסגר + בעמוד התורן.
”שכפול txn_id ספייק” = = ”dedup + source pysiliance” = = = ”dedup + source pysilation” = = =.
‏ ”schema change change” = = ליצור שדה מחדל מחושב = לבנות מחדש אגרגטים.
”אובדן חבורות” = לשחזר אימות של כמות הצ 'ק מהאובייקט המפוזר.

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

Contact

צרו קשר

פנו אלינו בכל שאלה או צורך בתמיכה.אנחנו תמיד כאן כדי לעזור.

Telegram
@Gamble_GC
התחלת אינטגרציה

Email הוא חובה. Telegram או WhatsApp — אופציונליים.

השם שלכם לא חובה
Email לא חובה
נושא לא חובה
הודעה לא חובה
Telegram לא חובה
@
אם תציינו Telegram — נענה גם שם, בנוסף ל-Email.
WhatsApp לא חובה
פורמט: קידומת מדינה ומספר (לדוגמה, +972XXXXXXXXX).

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