کدفرند(دوست برنامه نویس من)
کدفرند(دوست برنامه نویس من)
خواندن ۴ دقیقه·۵ سال پیش

چگونه مهندس داده (Data Engineer) شویم؟ بخش دوم

در بخش اول این مقاله با وظایف و اهداف شغل مهندسی داده (Data Engineering) آشنا شدیم. در این بخش به بررسی مهارتهای مورد نیاز برای یک مهندس داده، خواهیم پرداخت. میتوانید بخش اول را از اینجا مطالعه کنید.

مهارتهای اساسی مورد نیاز برای مهندسی داده

مهم‌ ترین مهارتهای مورد نیاز در مهندسی داده، توانایی طراحی و ساخت مخزن داده‌ها میباشد که در آن تمام داده‌های خام جمع آوری، ذخیره و بازیابی میشوند. بدون مخزن‌های داده (Data warehouses) تمام کارهایی که مهندسین و تحلیلگران داده انجام میدهند، منسوخ خواهند شد. برخی دیگر از مهارتهایی که یک مهندس داده باید داشته باشد، به شکل زیر میباشد:

Data Modelling – مدلسازی داده‌ها

Data Model یک بخش حیاتی از خطوط انتقال داده (data pipeline) در از دیتا ساینس است. این فرآیند تبدیل سند طراحی یک نرم افزار پیچیده به یک دیاگرام جهت نمایش جریان داده است که میتوان آن را درک کرد. Data Model ها در هنگام تحلیل داده و فاز طراحی پروژه ساخته میشوند تا از درک کامل نیازهای جدید اپلیکیشن اطمینان حاصل شود.

انواع Data Modeling :

  • Hierarchical Data Model – این یک مدل داده با ساختار درختی مانند است.
  • Relational Data Model – این روش مدلسازی، به دلیل کاهش پیچیدگی انواع سیستم‌های مبتنی بر فایل، جایگزین روش Hierarchical شده است و همچنین نیازی به تعریف data path ها توسط برنامه‌نویس را ندارد.
  • Entity-Relationship Model – این مدل تقریبا با مدل Relational نسبت دارد. در آن از دیاگرام‌ها و فلوچارت‌ها برای نمایش عناصر دیتابیس بصورت گرافیکی استفاده شده است تا درک مدلهای اساسی را ساده‌تر کند.
  • Graph Data Model – این یک ورژن بسیار پیشرفته‌تر نسبت به مدل Hierarchical است که از آن برای توضیح روابط پیچیده درون Data Set ها استفاده میشود.

Automation – اتوماسیون

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

اتوماسیون میتواند مزایای زیر را داشته باشد:

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

در Data Science، طراحی و معماری یک مخزن داده نیاز به زمان طولانی برای تکمیل دارد. بنابراین مهندسین داده، راه حلی برای اتوماسیون مخزن داده (Data warehouse) ارائه کردند و بدین ترتیب، کار و تلاش مورد نیاز برای مدیریت آن کاهش یافت. با این حال، نیاز مهندسین داده به پیاده سازی ابزارهای اتوماسیون مخزن داده (DWA) در حال افزایش است.

Extraction, Transformation, And Load – (استخراج ، انتقال و بارگذاری (ETL))

ETL به معنی روند کپی کردن داده از یک یا چند منبع و قرار دادن آن در سیستم مقصد میباشد که در آن داده‌ها بطور متفاوت‌تر یا با سبک متفاوت‌تر نسبت به منبع‌شان نمایش داده میشوند. ETL اغلب در ذخیره‌سازی داده‌ها (data warehousing) استفاده میشود.

استخراج یا extraction داده بطور کلی روش استخراج داده از منابع همگن یا ناهمگن است. پروسه انتقال داده (data transformation) با تمیز کردن داده و انتقال آنها به یک ساختار ذخیره‌سازی مناسب جهت اعمال کوئری‌های مختلف و تحلیل صورت میگیرد. نهایتا بارگذاری داده (data loading)، افزودن داده‌ها به دیتابیس مورد نظر و عملیات مختلف با داده‌ها در دیتابیس را توصیف میکند.

در علوم داده، ETL شامل استخراج داده‌ها از سیستم‌های عملیاتی مانند MySQL یا Oracle و انتقال آنها به سیستم‌های data warehouse مانند SQL Server یا data warehouse های مدرن مانند Hadoop و RedShift و سپس فرمت آنها طوری که توسط آنالیست (تجلیلگر داده) قابل دریافت باشد.

درک محصول

مهندسین داده، به داده‌ها با دید محصولشان نگاه میکنند، بنابراین باید طوری باید روی آنها کار کنند که دیگر مهندسان توانایی استفاده از آنها را داشته باشند. اگر ما در حال ساخت Data Set هایی برای مهندسین یادگیری ماشینی یا متخصصان داده هستیم، باید درک کنیم که آنها چگونه از داده‌ها استفاده خواهند کرد و چه ماژولهایی را خواهند ساخت. همین مقدار دانش میتواند برای یک مهندس داده، اطلاعات کافی در سطح مشتری باشد.

تبدیل شدن به یک مهندس داده


  • زبانهای برنامه‌نویسی: با یادگیری زبان‌های برنامه‌نویسی مانند پایتون شروع کنید. زیرا سینتکس تمیز و خوانا دارد، همه کاره است و منابع گسترده‌ای برای یادگیری و پشتیبانی آن وجود دارد.
  • سیستم عامل: تسلط یافتن حداقل به یکی از سیستم‌ عامل‌ها مانند Linux و UNIX OS پیشنهاد میشود. همچنین RHEL سیستم عامل رایج و مورد استفاده در این صنعت است که میتوانید آنرا نیز یاد بگیرید.
  • DBMS: مهارتهای DBMS خود را افزایش دهید و حداقل دانش و تجربه خوبی در استفاده یکی از دیتابیس‌های رابطه‌ای ترجیحا MySQL یا Oracle DB را داشته باشید. علاوه برآن مهارت‌های مدیریت دیتابیس خود را مانند برنامه ریزی ظرفیت، نصب، پیکربندی، طراحی دیتابیس، نظارت بر امنیت، عیب یابی، تهیه تسخه پشتیبان و بازیابی اطلاعات افزایش دهید
  • NoSQL: مهارت بعدی که باید برای فهمیدن چگونگی کنترل داده‌های unstructured یا بدون ساختار، روی آن تمرکز کنید.
  • ETL: یادگیری چگونگی انجام عملیات استخراج، انتقال و بارگذاری داده که در همین مقاله به بررسی آن پرداختیم.
  • فریمورک‌های Big Data: مهندسین بیگ دیتا برای طراحی سیستم‌های پردازشی باید چندین فریمورک Big Data را یادبگیرند.
  • Real-time Processing Frameworks: یکی از دیگر از مهارت‌های مهم در شغل مهندسی داده، توانایی کار کردن با فریمورک‌های پردازش Real-time است.
  • Cloud: درک خوب از تکنولوژی Cloud از دیگر مهارت‌های اساسی است که میتوانیم در مهندسی داده به آن اشاره کنیم.

(دوره جامع آموزش پایتون در کدفرند)

https://codefriend.ir/2019/09/23/چگونه-مهندسی-داده-data-engineer-شویم؟-بخش-دوم/
مهندس دادهData Engineer
کدفرند یک پلتفرم آموزشی رایگان ساده و در عین حال کابردی برای کسانی است که تازه قدم به دنیای برنامه نویسی و کسب و کار گذاشته اند
شاید از این پست‌ها خوشتان بیاید