עבור SQL, או מדוע אני כל כך מגן על אנשי הנתונים שלי

צומת המקור: 1013409

עבור SQL, או מדוע אני כל כך מגן על אנשי הנתונים שלי

תגיות: SQL

For decades, SQL has been the foundation for how humans interact with data. Alternate approaches seem to continually attempt to replace this powerful language. However, while much progress remains in the techniques and tools for the curation and management of data, the skilled craftspeople who work with data — through the lens of SQL — are likely to be around for decades more.


By פדרם נאוויד, ראש מחלקת נתונים ב-Hightouch.

נראה ששוב SQL מת. חלקנו זוכרים מתי NoSQL הבטיח לשחרר אותנו מהמשאבים של SQL. ראינו את MongoDB, Redis, DynamoDB ואחרים מופיעים בתור רוצחי SQL. אנשים נהרו לפתרונות האלה אבל אז הבינו במהרה שאולי אכפת להם מדברים כמו עקביות, עסקאות ACID, ולא לאבד את כל הנתונים שלך. אולי SQL לא מת אז, אבל תמיד יהיו אחרים שינסו להרוג אותו. נראה שזו אחת מהפעמים האלה.

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

אני לא מטיל ספק שיש עולם שבו:

churn[['State','Score']].groupby('State').mean().sort_values(by='Score', ascending=False) 

שימושי יותר מ:

SELECT state, AVG(score) FROM churn GROUP BY state סדר לפי ניקוד; 

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

בחר x2 מקבוצת foo ב-x+1 כ-x2; 

ולמרות שהוא מציג כמה מקרים תקפים בכל הנוגע ליכולת קומפוזיציה, כלים כמו dbt עזרו לגשר על הפער הזה והביאו את הכוח של תבנית ג'ינג'ה ל-SQL תוך מתן אפשרות ל-DAGs האהובים על כל הזמן, שמפעילים כל מחסן ששווה את משקלו.

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

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

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

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

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

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

זה הכל עבודה מסיבית בתהליך, והעבודה לא פחות חשובה מבניית אתר אינטרנט, יישום אחורי או תשתית. אתה רק צריך להסתכל ב-dbt #jobs-posting slack כדי לראות כמה חברות מנסות למלא תפקידים של אנליסטים ומהנדסי נתונים כדי לעזור לפתור בעיות עסקיות קריטיות הקשורות לנתונים. רמת התחכום והכלים במהלך השנים האחרונות התפוצצה, וכך גם ציפיות הלקוחות להתאמה אישית - הכל מונע על ידי נתונים.

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

אז, למרות שאולי יש אנשים שם בחוץ נגד SQL, דעו שיש הרבה מאיתנו שהם מאוד עבור SQL. והעולם טוב יותר בשביל זה.

מְקוֹרִי. פורסם מחדש באישור.

מידע נוסף:

מקור: https://www.kdnuggets.com/2021/08/for-sql-data-people.html

בול זמן:

עוד מ KDnuggets