מספק הנדסת נתונים עבור למעלה Analytics

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

מדוע להעריך את המידע להנדסת Analytics

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

סוגי שחזור בפלטפורמות נתונים

קוד ה-Refactoring

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

שאמה מספקת

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

המונחים: refactoring

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

יתרונות מרכזיים של אספקת מערכת

  • (FLT:0)Query Performance:FLT:1 schemas וקוד נקי יותר להפחית את זמן הביצוע עבור שאילתות אנליטיות מורכבות. in one Engineering, Normalizing metadata לחתוך זמני שאילתת דקות מ דקות עד שניות.
  • (FLT:0) calScalability:0) פלטפורמות מוכחות להתמודד עם כמויות גדולות של נתונים ללא עלות פרופורציונלית עולה. הסרת קרטסיאן מצטרף וחלוקת קידוד מאפשר למקבץ כדי להגדיל את ההיקף ביעילות רבה יותר.
  • איכות הנתונים:0 (איור 1) שמות שדה סטנדרטיים, אכיפת סוגים, וחיסול רשומות כפולות במהלך מתן שיפור משפר את הדיוק של לוחות נתונים ומודלים למידת מכונה.
  • (FLT:0)Developer Productivity:FLT:1 Teams להוציא פחות זמן לפענח קוד מורשת ועוד זמן בבניית תכונות ניתוח חדשות. a Modular Codebase מאפשר פיתוח מקביל ומהיר יותר על גבי לוח.
  • (FLT:0)tooling Flexibilitymia:FLT:1 ממשקי ניקוי קלים יותר לשלב מנועי ניתוח חדשים, כגון מעבר ממחסן מסורתי של SQL לחנות טוראר או הוספת מעבד זרם בזמן אמת.

גישה אסטרטגית למתן

עקבו אחרי Data Lineage

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

שינויים משמעותיים

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

בדיקה אוטומטית

בדיקות יחידה אוטומטיות ובדיקות אינטגרציה הן בלתי ניתנות להשגה.שימוש בכלים כמו FLT:0Directus's Testing FrameworkFLT:1 או FLT:2dbt's Data TestingFLT 3 כדי לאמת כי שינויים מייצרים את אותם התוצאות לאחר מתן מחדש.

מסמך בלתי עקבי

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

שיטות מעשיות להנדסת נתונים

המונחים: logic

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

המונחים: Intermediate Layers

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

נורמטיבית Metadata

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

המונחים: Idempotent tubelines

צנרת מספקת כך שריצה אותם פעמים רבות מניבה את אותה התוצאה.זה חיוני עבור פיזור ולטפל בנתונים שמאוחרים מונעים. השתמש בדפוסי upsert, לוגיקה של שכפול, וסידור עקבי כדי להבטיח idempotency. in Directus, תוכל למנף את יכולת ה- API ל-FLT:0upsate פריטים 1FLT:1 להפעלה נקייה.

מקרה מחקר: מתן חיזוי תחזוקה

חברת ייצור השתמשה ב-Directus כדי לנהל את נתוני החיישן לניתוח רטט.הצנרת המקורית שלהם צצה בקבצי CSV הגולמיים, ביצעה תריסר שינויים בתסריט מונוליטי פייתון מונוליטי, ועלתה תוצאות בטבלה רחבה אחת. Analytics נגד השולחן לקח מעל 30 שניות, ומחיקת כישלונות הדרושים כדי לעבור דרך 800 שורות קוד.

במשך שלושה חודשים, הצוות הגיש בקשה לשיפוץ:

  • (ב) עיין ב[[1924]] ב[[1924]], [[1924]]]], [[1924]]]], [[1924]]]]]], [[1924]]]]]], [[1924]]]]]]
  • (FLT:0) פונקציות טרנספורמציה ממושכות (FLT:1) עבור חלון שילוב, גילוי יוצא דופן וניתוח תדירות.כל פונקציה הייתה יחידה נבדקה נגד קלט / זוגות ספאריים ידועים.
  • (ב) ב-Directus, אשר מאוחסנים נתונים גולמיים לפני טרנספורמציה, דבר שמאפשר עיבוד מחדש ללא אובדן נתונים.
  • (ב) ⁇ :0) החליפו את התסריט המונותי של ה-IIFIRLT:1 עם DAG של משימות קלות אשר עוצבו על ידי זרימת האוויר של אפאצ'י.

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

אתגרים משותפים וכיצד להתגבר עליהם

חוב טכני

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

המונחים Complexity

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

התנגדות מ- Analytics Teams

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

שיפור ה- CI/CD

מתן יעיל ביותר כאשר משולב לתוך אינטגרציה רציפה צינורות אספקה. Run schema linting (למשל, בדיקת החוזה של dbt) על כל בקשה משיכה. השתמש CLI של Directus כדי ליישם באופן מתודולוגי שינויים סכימה במהלך פריסה. בדיקות נסיגה ביצועים אוטומטיים כי להשוות את זמני השאילתה לפני ואחרי כל אינטגרציה.

משאבים חיצוניים ללמידה עמוקה יותר

  • (ב) ,0) שיפור העיצוב של קודר (קודש) 1:1 על ידי מרטין פוולר - הטקסט הבסיסי על דפוסים מספקים.
  • (ב) ,0) ,bt Data TestsFLT:1, גישה מעשית לאימות אוטומטי עבור שינויים בנתונים.
  • (FLT:0)Directus Data Model Optimization Guide (המדריך ל-Sema) 1 (Sema Design Tips) החל ישירות על פלטפורמות נתונים הנדסיות.

מסקנה

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