HiTakeJobHiTakeJob

שאלות ראיון Data Engineer 2026 — 34 שאלות ותשובות

זמן קריאה: 8 דקות

ראיון Data Engineer בודק יכולת לבנות pipelines אמינים בקנה מידה גדול: תזמור (Airflow), עיבוד מבוזר (Spark), הזרמת נתונים (Kafka) ומידול מחסני נתונים. נכון להיום פתוחות ב-HiTakeJob 27 משרות Data Engineering, לצד 22 משרות Airflow ו-22 משרות Kafka. ריכזנו 22 שאלות אמיתיות עם תשובות.

הכלים המרכזיים ותפקידם

ראיון Data Engineer בוחן שליטה במחסנית כלים שלמה. הטבלה ממפה את הכלים לתפקידם:

כליתחוםתפקיד עיקרי
Airflowתזמורניהול DAGs ותלויות בין tasks
Sparkעיבוד מבוזרטרנספורמציה בקנה מידה גדול
Kafkaהזרמהbuffer אמין להזרמת אירועים
SQL / DWHאחסון וניתוחמידול נתונים ושאילתות אנליטיות

ETL ו-Pipelines

מה ההבדל בין ETL ל-ELT?

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

מהו Idempotency בפייפליין נתונים ולמה הוא חשוב?

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

מה ההבדל בין Batch ל-Streaming processing?

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

איך מתמודדים עם Late-arriving data?

נתונים שמגיעים באיחור מטופלים באמצעות watermarks (סף זמן שאחריו סוגרים חלון), חלונות זמן (windowing) עם grace period, ולוגיקת upsert שמעדכנת רשומות קיימות במקום ליצור כפילות.

מהו Backfill ומתי מבצעים אותו?

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

Apache Airflow ותזמור

מהו DAG ב-Airflow?

DAG (Directed Acyclic Graph) הוא ייצוג של פייפליין כגרף מכוון ללא מעגלים: כל צומת הוא task, והחצים מגדירים תלויות וסדר הרצה. Airflow מתזמן ומריץ את ה-DAG לפי הלוח והתלויות.

מה ההבדל בין Operator ל-Task ב-Airflow?

Operator הוא תבנית שמגדירה סוג עבודה (למשל PythonOperator, BashOperator). Task הוא מופע קונקרטי של Operator בתוך DAG ספציפי. במילים אחרות, Task הוא Operator עם פרמטרים בהקשר של פייפליין.

איך מטפלים בכישלון של task ב-Airflow?

מגדירים retries עם מרווח (retry_delay), התראות על כישלון, ו-SLA לניטור עיכובים. משתמשים ב-trigger rules לשליטה בהמשך הזרימה, ומוודאים שה-tasks idempotent כדי שניתן יהיה להריץ מחדש בבטחה.

מהו Idempotent task ולמה חשוב שיהיה כזה ב-Airflow?

task שהרצתו החוזרת בטוחה ולא יוצרת נתונים כפולים. חשוב כי Airflow מריץ מחדש tasks שנכשלו — לכן כתיבה מבוססת upsert או מחיקה-ואז-כתיבה של מחיצה שלמה עדיפה על הוספה עיוורת.

עיבוד מבוזר ו-Spark

מה ההבדל בין Transformation ל-Action ב-Spark?

Transformations (map, filter) הן עצלות (lazy) — בונות תוכנית חישוב אך לא מריצות. Actions (collect, count, save) מפעילות בפועל את החישוב. ה-lazy evaluation מאפשר ל-Spark לבצע אופטימיזציה של כל השרשרת.

מהו Data Skew וכיצד מתמודדים איתו?

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

מה ההבדל בין wide ל-narrow transformation?

narrow transformation (map, filter) לא דורשת ערבוב נתונים בין מחיצות. wide transformation (groupBy, join) דורשת shuffle — העברת נתונים בין nodes, שהיא הפעולה היקרה ביותר ולכן ממזערים אותה.

מהו Shuffle ולמה חשוב לצמצם אותו?

Shuffle הוא העברה ומיון של נתונים בין nodes בעת wide transformations. הוא צורך רשת, דיסק ו-CPU רבים ולכן צוואר בקבוק מרכזי. מצמצמים אותו על ידי filtering מוקדם, broadcast joins ו-partitioning נכון.

הזרמת נתונים ו-Kafka

מהו Kafka ומה תפקידו בארכיטקטורת נתונים?

Kafka הוא פלטפורמת הזרמת אירועים מבוזרת, שמשמשת כ-buffer אמין בין מפיקים (producers) לצרכנים (consumers). היא מנתקת בין מקורות ליעדים ומאפשרת עיבוד בזמן אמת בקנה מידה גבוה.

מה תפקיד ה-Partition ב-Kafka?

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

מה ההבדל בין at-least-once ל-exactly-once delivery?

at-least-once מבטיח שכל הודעה תגיע אך עלולה להגיע יותר מפעם אחת, ולכן דורש טיפול בכפילות. exactly-once מבטיח הגעה יחידה ומדויקת, אך מורכב יותר ויקר יותר בביצועים.

מידול נתונים ומחסנים

מהי סכמת כוכב (Star Schema)?

מבנה מחסן נתונים שבו טבלת עובדות מרכזית (facts) מוקפת בטבלאות מימד (dimensions). היא מפשטת שאילתות אנליטיות ומאיצה אותן, ולכן נפוצה מאוד ב-Business Intelligence.

מה ההבדל בין Fact table ל-Dimension table?

Fact table מכילה מדדים מספריים ואירועים עסקיים (מכירות, קליקים) עם מפתחות זרים. Dimension table מכילה מאפיינים תיאוריים (לקוח, מוצר, זמן) שלפיהם מנתחים את העובדות.

מהו Slowly Changing Dimension (SCD)?

שיטה לטיפול בשינויים בערכי מימד לאורך זמן. SCD Type 1 דורס את הערך הישן, ו-Type 2 שומר היסטוריה על ידי יצירת שורה חדשה עם תוקף תאריכים — כדי לאפשר ניתוח היסטורי מדויק.

מהי חשיבות של Data Quality בפייפליין?

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

אחסון ופורמטים

מה ההבדל בין Data Lake ל-Data Warehouse?

Data Lake מאחסן נתונים גולמיים בכל פורמט (schema-on-read), גמיש וזול לאחסון המוני. Data Warehouse מאחסן נתונים מובנים ומעובדים (schema-on-write), מותאם לשאילתות אנליטיות מהירות. Lakehouse משלב בין השניים.

מדוע פורמט עמודי (columnar) עדיף לאנליטיקה?

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

מהו Partitioning ולמה הוא חשוב?

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

מהו Data Catalog ומה תפקידו?

מאגר מטא-דאטה שמתעד אילו datasets קיימים, מבנה הסכמה, בעלות, ומקורות. הוא מאפשר גילוי נתונים (discovery), אכיפת ממשל (governance), ומעקב אחר lineage — מאיפה הגיע כל שדה.

שאלות מעשיות

איך תעצב פייפליין שמושך נתונים ממקור חיצוני מדי יום?

מתזמנים DAG יומי ב-Airflow, מושכים בצורה אינקרמנטלית (רק מה שהשתנה מאז ההרצה הקודמת) לפי חותמת זמן או מזהה, כותבים למחיצה לפי תאריך, ומוודאים idempotency כדי שהרצה חוזרת תדרוס מחיצה במקום לשכפל. מוסיפים בדיקות איכות והתראות על כשל.

איך תתמודד עם שינוי סכמה במקור (schema evolution)?

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

איך תבנה deduplication בפייפליין?

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

איך תנטר את בריאות הפייפליין?

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

Batch מול Streaming — טבלת החלטה

הבחירה בין batch ל-streaming היא שאלה נפוצה. הטבלה מסכמת מתי מתאים כל אחד:

קריטריוןBatchStreaming
זמן תגובהדקות עד שעותשניות ומטה
מורכבותנמוכה יותרגבוהה יותר
עלותנמוכה יותרגבוהה יותר
מתאים לדוחות, ETL ליליזיהוי הונאות, ניטור בזמן אמת

טעויות נפוצות בראיון Data Engineer

הנה הדפוסים שמפילים מועמדים גם כשהידע הטכני קיים:

  • התעלמות מ-idempotency: תיאור פייפליין שיוצר כפילות בכל ריצה חוזרת מסגיר חוסר ניסיון עם כשלים אמיתיים.
  • חשיבה רק על ה"happy path": מראיין רוצה לשמוע איך תטפלו בכשל, בנתונים חסרים ובאיחור — לא רק בזרימה התקינה.
  • הזנחת איכות נתונים: פייפליין בלי בדיקות איכות עלול להזרים נתונים פגומים בשקט — נקודה קריטית בעיני מראיין.
  • בזבוז shuffle ב-Spark: אי-הבנה שההבדל בין narrow ל-wide transformation קובע ביצועים.
  • שכחת עלות: בענן, סריקה של Data Lake שלם במקום partition pruning יכולה לעלות הון — התעלמות מכך נראית לא בוגרת.

צ'קליסט הכנה לראיון Data Engineer

ודאו כיסוי של הנקודות הבאות לפני הראיון:

  • לשלוט ב-SQL מתקדם: JOINs, window functions ואופטימיזציה.
  • לבנות פרויקט מקצה לקצה: מקור, טרנספורמציה ב-Spark, תזמור ב-Airflow, וטעינה למחסן.
  • להסביר idempotency, backfill וטיפול ב-late-arriving data.
  • להבין את מודל Kafka: topics, partitions ואחריות ל-delivery.
  • לרענן מידול נתונים: star schema, fact/dimension ו-SCD.
  • להכיר פורמטים עמודיים, partitioning, ושיקולי עלות בענן.

איך להתכונן לראיון Data Engineer

מעבר לתיאוריה, כדאי להכיר פרויקט אמיתי מקצה לקצה: מקור, טרנספורמציה, טעינה וניטור. פרויקט אישי שמושך נתונים אמיתיים, מעבד אותם ב-Spark ומתזמן ב-Airflow ממחיש יכולת הרבה מעבר לתשובות מילוליות. הביקוש בישראל גבוה — ראו משרות Data Engineering, משרות Kafka, ואת כלל המשרות. להבנת מסלול הכניסה המלא ראו קריירת Data Engineer בישראל, ולחיזוק היסודות ראו שאלות ראיון SQL.

שאלות נפוצות

אילו כלים הכי חשוב לדעת לראיון Data Engineer?

SQL חזק, Python, Spark לעיבוד מבוזר, Airflow לתזמור ו-Kafka להזרמה. עם 27 משרות Data Engineering ו-25 משרות Kafka פתוחות בישראל, שליטה בכלי pipeline היא הדרישה המרכזית, לצד מידול נתונים.

האם צריך רקע בפיתוח כדי להיות Data Engineer?

כן, ברמה טובה. Data Engineering הוא תפקיד תוכנה לכל דבר: כתיבת קוד נקי ב-Python, בדיקות, ניהול גרסאות ו-CI/CD. השילוב של הנדסת תוכנה עם הבנת נתונים הוא הליבה של התפקיד.

מה ההבדל בין Data Engineer ל-Data Analyst בראיון?

ראיון Data Engineer מתמקד בבניית תשתיות ו-pipelines בקנה מידה, ואילו Data Analyst מתמקד בניתוח, SQL ותובנות עסקיות. ה-Engineer בונה את הצנרת, וה-Analyst שותה מהמים שזורמים בה.

כמה SQL צריך לראיון Data Engineer?

הרבה. SQL הוא כלי היסוד, וכמעט כל ראיון כולל משימת כתיבת שאילתה — לרוב עם JOINs, אגרגציות ו-window functions. שליטה חלשה ב-SQL היא סיבה נפוצה לפסילה גם למועמדים עם ידע רחב בכלים.

האם שואלים שאלות System Design בראיון Data Engineer?

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

האם צריך לדעת Cloud לראיון Data Engineer?

ברוב המשרות כן — לפחות ספק אחד (AWS, GCP או Azure) ושירותי הדאטה שלו. הבנה של אחסון אובייקטים, מחסן ענני ותמחור לפי סריקה נחשבת כיום ידע בסיסי לתפקיד.

מאמרים נוספים

המשרות באתר