نیک آموز > وبلاگ > مهندسی داده > چطور تسک‌ های مهندسی داده خود را درک کنیم؟ ۵ راهکار عملی!
چطور تسک‌ های مهندسی داده خود را درک کنیم؟ ۵ راهکار عملی!

چطور تسک‌ های مهندسی داده خود را درک کنیم؟ ۵ راهکار عملی!

نوشته شده توسط: تیم فنی نیک آموز
تاریخ انتشار: ۲۰ آذر ۱۴۰۰
آخرین بروزرسانی: 19 اسفند 1404
زمان مطالعه: 20 دقیقه
۵
(۱)

تسک‌ های مهندسی داده برای بسیاری از افراد در ابتدای مسیر شغلی می‌توانند گیج‌کننده و چالش‌برانگیز باشند. تصور کنید پس از کلی مطالعه و تحقیق در زمینه علم داده و گذراندن مصاحبه‌های شغلی مختلف، بالاخره اولین شغل خود را در حوزه مهندسی داده به دست آورده‌اید و در یک شرکت مشغول به کار شده‌اید. در این مرحله معمولاً یک دید کلی از کسب‌وکار، معماری داده و ابزارهای مختلف این حوزه دارید؛ اما وقتی اولین تسک‌ها به شما محول می‌شود، ممکن است دقیقاً ندانید باید از کجا شروع کنید و چگونه آن را انجام دهید. در چنین شرایطی بسیاری از افراد احساس می‌کنند در شغل مهندسی داده هنوز مبتدی هستند، در میان پایگاه کدها و مؤلفه‌های ناشناخته سردرگم شده‌اند و حتی گاهی تصور می‌کنند وظایف خود را به‌خوبی انجام نمی‌دهند.

 راهکار عملی درک تسک های مهندس داده برای مهندسان داده تازه‌کار

اگر در چنین موقعیتی گیر افتادید و چالش‌های بالا شما را آزار می‌دهد برای نجات از این وضعیت پیشنهاد می‌کنم حتما این مقاله نیک آموز را تا پایان مطالعه کنید. چون برای رهایی از این وضعیت راه ‌حل‌‌هایی وجود دارد.

در این مقاله از اصطلاحات زیر استفاده می ‌کنیم:

  • فرایندهای بالا دستی: هر فرایندی که قبل از تسکی که روی آن کار می‌کنید انجام می‌شود.
  • فرایندهای پایین دستی: هر فرایندی که بعد از تسکی که روی آن کار می‌کنید اجرا می‌شود.
  • کاربر نهایی: برای سادگی، ما به هر برنامه کاربردی، فرایندهای خودکار و افرادی که از داده‌های شما به عنوان کاربر نهایی استفاده می‌‌کند تحت این عنوان اشاره خواهیم کرد.

 

تسک‌‌ های مهندسی داده خود را بفهمید

درک خوب از تسک‌ های مهندسی داده، یک شرط حیاتی در تحویل یک کار خوب است.

  • دید کلی از زیر ساخت داده

برای درک سریع زیرساخت داده شرکت خود، کامپوننت ‌ها و اینترفیس‌های موجود را شناسایی کنید.
به طور معمول، کامپوننت‌ ها عبارتند از:

  • پایگاه داده برنامه (به عنوان مثال MySQL، Postgres)
  • انبار داده (به عنوان مثال Redshift، Snowflake، BigQuery)
  • ابزار بصری‌سازی داده‌‌ها (به عنوان مثال Apache Superset، Looker)
  • موتور هماهنگ‌‌سازی خط پردازش داده (به عنوان مثال Apache Airflow، DBT، Prefect)
  • موتور اجرایی (به عنوان مثال Airflow workers، K8S tasks)
  • سیستم جریان رویداد (به عنوان مثال Apache Kafka, RabbitMQ )
  • فضای ذخیره‌سازی ابری (به عنوان مثال GCP Cloud Storage، AWS S3 )
  • سیستم پردازش توزیع شده (به عنوان مثال Apache Spark، Apache Flink، Apache Heron)

برخی از این کامپوننت‌ها ممکن است توسط یک سرویس مدیریت شوند، به عنوان مثال EMR برای Spark و Flink، Stitch برای Singer، Astronomer برای Airflow و غیره.

اینترفیس‌ها ممکن است شامل موارد زیر باشند:

  • کتابخانه‌‌ها (به عنوان مثال psycopg2, boto3, pysftp )
  • REST API‌ها

اینترفیس‌ها نحوه ارتباط اجزای زیرساخت داده را مشخص می‌کنند. کامپوننت‌‌ها همچنین می‌توانند داده‌‌هایی تولید کنند که توسط اجزای دیگر خوانده شود.
جریان داده از مبدا تا مقصد خطوط پردازش داده را دنبال کنید. در این ردگیری کامپوننت‌‌ها و اینترفیس‌‌ها را یادداشت کنید. اگر زمان کافی دارید این کار را برای تمام خطوط پردازش داده انجام دهید. در غیر این صورت، این کار را برای خط پردازش داده‌‌ای که مشابه تسکی است که در حال انجام هستید انجام دهید.

 

با دوره Data Lakehouse مقدماتی، دانش و مهارت‌های لازم برای ورود به این حوزه را کسب کنید.

 

تسک‌ های مهندسی داده  دقیقا چه کاری را از شما می‌ خواهد؟

هنگامی که سعی می‌کنید بفهمید تسک چه کاری را می‌خواهد، تسک را در یکی از موارد زیر می ‌توانید طبقه‌بندی کنید.

  1. درخواست دریافت یا ایجاد داده‌‌های جدید
  • افزودن فیلدها یا ستون‌‌های جدید به داده‌های خروجی
  • ورود داده‌‌ها از منابع دیگر به انبار داده
  1. درخواست داده‌های ETL بین سیستم‌ها
  • ساخت یا تغییر خطوط پردازش داده برای ارسال داده به مشتریان خارجی
  • ایجاد یا تغییر خطوط پردازش داده جهت داده‌‌های ETL بین پایگاه داده‌‌های برنامه، موتورهای جستجو، انبار داده و غیره
  1. تغییر زمان‌بندی خط پردازش داده
  • افزایش یا کاهش فرکانس اجرای خط پردازش داده
  • اضافه کردن منطق اجرای کد مبتنی بر زمان به خط پردازش داده
  1. تغییر نوع یا فرمت داده‌‌ها
  • رمزگذاری، فشرده‌سازی یا پارتیشن‌بندی داده‌‌ها
  • تغییرات در قالب داده یا شِما
  1. قابلیت نظارت بر داده‌‌ها
  • اضافه کردن لاگ‌ها، مانیتورینگ یا هشدار
  • ایجاد هشدار بر اساس معیارهای تجاری سفارشی
  1. بهبود عملکرد خط پردازش داده
  • افزایش حجم داده‌های پردازش شده یا سرعت پردازش
  • کاهش مشکلات خطوط پردازش داده
  1. تغییرات معماری
  • مهاجرت به یک ارائه‌دهنده جدید (مانند EMR به Databricks و غیره)
  • اضافه کردن جداول متا‌دیتا و نقاط پایانی API آن‌ها
  • خودکارسازی فرایندهای اجرا شده به صورت دستی، مانند اسکریپت‌های one-off، تسک‌های ورود داده و غیره

از این لیست به عنوان نقطه شروع استفاده کنید تا به یک دید صحیح برسید که دقیقاً تسک‌ های مهندسی داده چه کاری را از شما می‌خواهد.

مسیر تبدیل شدن به یک مهندس داده را با آموزش‌های پروژه‌محور در دوره جامع مهندسی داده آغاز کنید.

تسک مورد نظر دقیقا چرا طراحی شده؟

دانستن اینکه دقیقاً چرا یک تسک طراحی شده می ‌تواند به شما در تصمیم‌گیری در مورد طراحی کمک کند. در برخی موارد، راه حل ممکن است از قبل وجود داشته باشد اما برای کاربر نهایی ناشناخته باشد.
وقتی تسکی به شما محول می‌‌شود، سعی کنید به این سوالات زیر پاسخ دهید:

  • آیا انجام این تسک لازم است؟
  • چرا انجام این تسک ضروری است؟ چه تاثیری برای کسب و کار، تیم داده، کیفیت داده، تازگی داده ‌ها، سایر توسعه‌دهندگان، پایگاه کد و غیره دارد؟
  • آیا با استفاده از داده‌ها یا کدهای قبلی که در حال حاضر وجود دارد می ‌توان تسک را به انجام رساند؟

به عنوان مثال، اگر تسک شما اضافه کردن یک ستون جدید به مجموعه داده است، مطمئن شوید که چرا ستون مورد نیاز است و چگونه از آن استفاده خواهد شد؟ آیا می‌توان این ستون را از داده‌های موجود استخراج کرد؟
مثال بعدی، فرض کنید از شما خواسته شده است که یک فایل که در حال حاضر از حالت فشرده خارج شده است را قبل از ارسال آن به S3 فشرده کنید. این ممکن است به لحاظ بهبود عملکرد مناسب به نظر برسد. اما، اگر حجم کل فایل چند کیلوبایت باشد، بهتر است از فشرده‌‌سازی صرف‌نظر شود.
درک چرایی تسک‌ های مهندسی داده، درک مورد نیاز برای یافتن جایگزین‌های بهتر را در اختیار شما قرار می‌دهد. چنین موقعیت ‌هایی است که مهارت‌های شما در مهندسی داده و تجارت می‌ تواند شما را به عنوان یک مشارکت کننده مهم در شرکت معرفی کند.

 

تسک های مهندسی داده
تسک های مهندسی داده

 

  • وضعیت فعلی خط پردازش داده‌‌ای که قرار است روی آن کار کنید را با جزئیات درک کنید. اگر در حال ساخت یک خط پردازش داده جدید هستید، آن را با نمونه‌ های مشابه مقایسه کنید. کد را بخوانید و متغیرهای محیطی، متغیرهای کلاس، تسک‌های هم‌زمان و ناهم‌زمان، جریان داده، دسترسی‌ها، کامپوننت‌ها، اینترفیس‌ها و غیره را دنبال کنید.

به یاد داشته باشید که اگر در مورد چرایی انجام یک تسک دچار سردرگمی شده‌اید می‌توانید با همکاران با تجربه در شرکت صحبت کنید و نظر آنها را در این مورد جویا شوید. همیشه افرادی در اطرافتان هستند که می‌توانند با صرف کمترین زمان بزرگ‌ترین کمک و راهنمایی‌ها را به شما بدهند. از این نکته غافل نشوید.

  • تاثیرات انجام تسک‌ های مهندسی داده روی فرایندهای پایین دستی

هنگام اصلاح خط پردازش داده موجود، اطمینان حاصل کنید که هیچ یک از فرایندهای پایین دستی را دچار مشکل نمی‌کند. همچنین مهم است که اطمینان حاصل شود که هرگونه تغییر پیشنهادی در نوع یا شِما داده، قبل از ایجاد تغییر به کاربر نهایی اطلاع داده می‌‌شود. عدم انجام این کار ممکن است باعث مشکلات برگشت ‌ناپذیر و یا ضرر و زیان مالی شود.
به عنوان مثال، تغییر نوع داده ستون درآمد از ریال به تومان می‌تواند باعث شود که فرایندهایی که از آن داده‌ها استفاده می‌کنند، گزارش‌‌های هزینه‌ای بسیار نادرست تولید کنند.

مرحله تحویل تسک‌ های مهندسی داده

هنگامی که به درک روشنی از تسک‌ های مهندسی داده  رسیدید، زمان آن است که تسک را انجام دهید. اگر تسک‌ های مهندسی داده شما بسیار شبیه به مواردی است که از قبل در پایگاه کد شرکت وجود دارد، از آن الگو استفاده کنید. مگر اینکه رویکرد شما دستاوردهای قابل توجهی در کاهش پیچیدگی، سرعت، صرفه جویی در هزینه و غیره داشته باشد و در عین حال قادر به ارائه به موقع باشد. همیشه نیازی به اختراع مجدد چرخ نیست.

  • چگونگی انجام

اگر در حال طراحی یک خط پردازش داده جدید هستید و هیچ گونه مشابهی در پایگاه کد شرکت وجود ندارد، یک رویکرد خوب را با توجه به نکات زیر در نظر بگیرید.

  • در مورد چگونگی حل مشکلات مشابه توسط افراد دیگر تحقیق کنید. برای این کار از کتاب، مقالات آنلاین و سایت‌های مرتبط می‌توانید کمک بگیرید.
  • یک داکیومنت طراحی خط پردازش داده ایجاد کنید. به نقاط شکست، مشکلات احتمالی مکرر داده‌ها، کارایی پردازش داده‌ها و غیره توجه کنید و در صورت نیاز طرح خود را اصلاح کنید.
  • داکیومنت طراحی را به اشتراک بگذارید و قبل از شروع به کدنویسی، از مسئول تیم خود تأییدیه بگیرید.
  • اگر قادر به ارائه طرحی نیستید، با مدیر فنی یا سرپرست تیم یا مهندس ارشد خود جلسه برگزار کنید. به آن‌ها نشان دهید که چه مواردی را امتحان کرده‌اید، چه مسیرهایی را طی نموده‌اید و دقیقاً با چه موضوعی دست و پنجه نرم کرده‌اید. این موارد به آنها کمک می‌کند تا بهتر به شما کمک کنند.
  • تسک‌ های مهندسی داده خود را به زیر تسک‌ها تقسیم کنید

طراحی یا پیاده‌سازی را به گام‌های متوالی تقسیم کنید. هر گام می‌تواند یک زیر تسک باشد. اگر تسک‌ های مهندسی داده شما نسبتاً مستقل است، نیازی به تقسیم آن به زیر تسک نیست.
همان‌طور که روی یک زیر تسک کار می‌کنید، ممکن است لازم باشد تغییراتی در سایر زیر تسک‌ های مهندسی داده  ایجاد کنید. بر اساس تجربه، تقسیم یک کار به زیر تسک‌ها باعث انجام آسان‌تر خواهد شد.

  • تحویل تسک انجام شده

هنگامی که تسک را کامل کردید، تست ‌های لازم را روی خروجی انجام دهید و پس از آن، به کاربر یا کاربران نهایی اجازه دسترسی بدهید. اجازه دسترسی به داده‌ها برای کاربران نهایی بدون آزمایش کافی کیفیت داده‌ها، می‌تواند باعث تاثیرات مخرب پایین‌دستی داده‌‌ها شود. همان‌‌طور که بالاتر اشاره شد. عدم اطلاع رسانی در مورد تغییرات انجام شده به کاربر نهایی، می‌تواند باعث مشکلات جبران ناپذیری شود.

سخن پایانی تسک‌ های مهندسی داده

 

امیدواریم این مقاله به شما ایده خوبی درباره نحوه درک و ارائه هر تسک مهندسی داده بدهد. شروع به کار در جایگاه یک مهندس داده می ‌تواند در بدو امر کمی طاقت فرسا باشد. یک نمای کلی خوب از زیرساخت داده و درک چیستی و چرایی تسک می ‌تواند شما را به سمت یک طراحی عالی راهنمایی کند.
دفعه بعد که با  تسک‌ های مهندسی داده مواجه شدید، مراحل نشان داده شده در بالا را دنبال کنید. شما قادر خواهید بود تسک خود را به بهترین نحو ممکن انجام دهید، و به عضوی ارزشمند در شرکت خود تبدیل شوید.

 

سوالات متداول تسک‌ های مهندسی داده

۱. چرا ممکن است مهندسان داده تازه‌کار در ابتدای کار دچار سردرگمی شوند؟

در شروع کار، بسیاری از مهندسان داده با زیرساخت‌ها، ابزارها و پایگاه کد گسترده‌ای مواجه می‌شوند که هنوز شناخت کاملی از آن ندارند. همین موضوع می‌تواند باعث شود احساس کنند در میان مؤلفه‌ها و کدهای مختلف غرق شده‌اند و ندانند تسک محول‌شده را از کجا باید شروع کنند.

۲. برای درک سریع زیرساخت داده یک شرکت چه کارهایی باید انجام داد؟

برای شناخت زیرساخت داده لازم است ابتدا کامپوننت‌ها و اینترفیس‌های موجود شناسایی شوند. سپس جریان داده از مبدأ تا مقصد در خطوط پردازش داده دنبال شود تا مشخص شود هر بخش از سیستم چگونه با سایر اجزا ارتباط برقرار می‌کند.

۳. تسک‌های مهندسی داده معمولاً شامل چه نوع فعالیت‌هایی هستند؟

این تسک‌ها می‌توانند شامل کارهایی مانند ایجاد یا دریافت داده‌های جدید، اضافه کردن ستون یا فیلد به داده‌ها، انتقال داده‌ها بین سیستم‌ها، ساخت یا تغییر خطوط پردازش داده، تغییر زمان‌بندی پردازش‌ها، بهبود عملکرد پردازش داده یا ایجاد قابلیت‌های مانیتورینگ و هشدار باشند.

۴. چرا درک دلیل طراحی یک تسک در مهندسی داده اهمیت دارد؟

دانستن دلیل انجام یک تسک کمک می‌کند تصمیم‌های بهتری در طراحی و پیاده‌سازی گرفته شود. در برخی موارد ممکن است راه‌حلی از قبل در سیستم وجود داشته باشد یا بتوان با استفاده از داده‌ها و کدهای موجود همان هدف را به شکل ساده‌تر داده چه نکتری انجام داد.

۵. هنگام ایجاد تغییر در یک خط پردازش داده چه نکته‌ای باید در نظر گرفته شود؟

هر تغییر در خطوط پردازش داده باید با دقت انجام شود تا فرایندهای پایین‌دستی دچار مشکل نشوند تغییر همچنین اگر تغییراتی در نوع داده یا ساختار آن ایجاد شود، لازم است پیش از اعمال تغییر به کاربرانی که از این داده‌ها استفاده می‌کنند اطلاع داده شود.

 

 

 

منبع

 

 

چه رتبه ای می‌دهید؟

میانگین ۵ / ۵. از مجموع ۱

اولین نفر باش

title sign
دانلود مقاله
چطور تسک‌ های مهندسی داده خود را درک کنیم؟ ۵ راهکار عملی!
فرمت PDF
6 صفحه
حجم 1 مگابایت
دانلود مقاله
title sign
معرفی نویسنده
تیم فنی نیک آموز
مقالات
414 مقاله توسط این نویسنده
تیم فنی نیک آموز
title sign
معرفی محصول
دوره Data Lakehouse مقدماتی
حسن احمدخانی

دوره آنلاین Data Lakehouse مقدماتی

طلایی
55,750,000 تومان39,025,000 تومان
نقره‌ای
15,750,000 تومان11,025,000 تومان
title sign
دیدگاه کاربران