معناشناسی مهندسی داده را باید در بخش مهندسی آن جستوجو کرد. درست به همان صورتی که مهندسان وظیفه طراحی و ساخت را بر عهده دارند، مهندسان داده نیز روندها و خطوط انتقال دادهها را طراحی میکنند تا بتوان دادهها را ذخیرهسازی و تبدیل کرده و انتقال داد؛ بهگونهای که اطلاعات بهشکل بهینه و بدون مشکل به دست دانشمندان داده برسد و قابل استفاده باشد. امروزه، دادهها از منابع مختلفی بهدست میآیند و در انبار دادهای ذخیرهسازی میشوند تا دسترسی به اطلاعات از طریق یک منبع داده قابل اعتماد قابل استفاده باشند. یکی از تفاوتهای مهمی که شغل مهندسی دادهها با مشاغل دیگر حوزه فناوری اطلاعات دارد، در پویایی آن مستتر است. با توجه به اینکه ماهیت اطلاعات دائما در حال تغییر است، شرح وظایف و فهرست مهارتهای مورد نیاز یک مهندس داده، متغیر است. از اینرو، مهندسان داده باید بهشکل مستمر بهفکر یادگیری مهارتهای جدید باشند.
مهندسی که دادهها را مهندسی میکند
مهندس داده، متخصص فناوری اطلاعات است که وظیفه اصلی او گردآوری دادهها برای کاربردهای تحلیلی یا عملیاتی است. این مهندسان نرمافزار ضمن گردآوری دادهها، مسئولیت ساخت خطوط انتقال داده برای گردآوری دادهها از منابع مختلف را دارند. آنها دادهها را ادغام، سازماندهی و پاکسازی میکنند تا امکان استفاده از آنها در کاربردهای تحلیلی وجود داشته باشد. به بیان دقیقتر، دادهها را ساختارمند میکنند. بر همین اساس، مهندسان داده با هدف دسترسی آسان به دادهها و بهینهسازی اکوسیستم کلانداده جذب سازمانها میشوند.
مقدار دادههایی که یک مهندس با آنها کار میکند، بستگی به حوزه کاری و بزرگی یا کوچکی یک سازمان دارد. هرچه سازمانی بزرگتر باشد به معماری تحلیلی پیچیدهتری نیاز دارد و مهندس مسئولیت رسیدگی به حجم بیشتری از دادهها را بر عهده دارد. صنایع خاصی مثل بهداشت و درمان، خرده فروشی و خدمات مالی از جمله صنایعی هستند که بالاترین حجم دادهها را تولید میکنند. مهندس دادهای که جذب چنین صنایعی شود مسئولیت زیادی را بر عهده میگیرد و طبیعی است که باید دستمزد بیشتری دریافت کند.
بهطور کلی، مهندسی داده به مجموعه مهارتها و تخصصهایی اشاره دارد که با هدف شفافسازی تحلیل دادهها به کسبوکارها کمک میکند تا تصمیمات تجاری قابل اعتمادی بگیرند.
نقش مهندس داده
مهندسان داده بر جمعآوری و آمادهسازی دادههایی که قرار است توسط دانشمندان و تحلیلگران داده مورد استفاده قرار گیرند، متمرکز هستند. بهطور معمول، مهندسان داده به سه روش زیر جذب سازمانها میشوند:
- حالت عمومی: مهندسان داده در قالب تیمهای کوچک کار میکنند و هدفشان جمعآوری، دریافت و پردازش دادهها است. آنها ممکن است مهارت بیشتری نسبت به برخی از دانشمندان داده داشته باشند، اما دانش کمتری نسبت به معماران سیستم دارند.
- حالت پروژهای: یک مهندس داده ممکن است با شرکتی قراردادی منعقد کند تا دادههای مربوط به فروش یا نحوه استفاده کاربران از سرویسهای آن شرکت را گردآوری کرده و برای تحلیل آماده کند. علاوه بر این، ممکن است مسئول ساخت داشبوردهایی شود که دسترسی به دادهها را ساده میکنند و با تحلیل دادههای موجود، پیشبینیهایی در مورد اتفاقات آینده ارائه میدهند.
- مهندسان خط انتقال داده: این مهندسان داده در قالب تیمی از متخصصان، وظیفه جمعآوری و تبدیل دادهها در پروژههای متوسط، و وظیفه پیادهسازی سیستمهای توزیعشده در پروژههای پیچیدهتر را بر عهده دارند. بهطور معمول، شرکتهای متوسط و بزرگ به دنبال جذب این مدل مهندسان داده هستند.
بهطور مثال، یک شرکت تحویل غذا در منطقهای ممکن است یک پروژه خط انتقال داده را با هدف دسترسی ساده دانشمندان داده و تحلیلگران به ابردادههای مرتبط با تحویل غذا نیاز داشته باشد. این شرکت ممکن است تمایل به دانستن این مسئله داشته باشد که مسافت طیشده و زمان مورد نیاز برای تحویل غذا در ماه گذشته به چه صورتی بوده است. سپس، از این دادهها در یک الگوریتم پیشگویانه استفاده کند تا ببیند بر مبنای چه راهکاری قادر است فعالیتهای تجاری خود را حفظ کرده و گسترش دهد.
- مهندسان پایگاه داده-محور: این مهندسان داده وظیفه پیادهسازی، نگهداری و پر کردن پایگاههای داده تحلیلی را بر عهده دارند. این نقش معمولا در شرکتهای بزرگی وجود دارد که دادههای آنها در چند پایگاه داده توزیع شدهاند. در این شرکتها مهندسان با خطوط انتقال داده در ارتباط هستند، پایگاههای داده را برای تحلیل کارآمد تنظیم میکنند و طرحوارههای جداول را با استفاده از روشهای استخراج، تبدیل و بارگذاری (ETL) ایجاد میکنند. لازم به توضیح است که ETL فرآیندی است که در آن دادهها از چند منبع در یک سیستم مقصد واحد کپی میشوند.
بهطور کلی، بانکهای اطلاعاتی که قرار است در پروژههای دادهمحور مورد استفاده قرار گیرند، معماری پیچیدهای دارند و طراحی آنها بهشکل خاصی انجام میشود. علاوه بر ایجاد پایگاه داده، مهندس داده وظیفه دارد کدهایی را بنویسد که دادهها را از منابع مختلفی مثل پایگاه دادههای اختصاصی برنامههای کاربردی جمعآوری کرده و به پایگاه داده تحلیلی ارسال کند.
چرا مهندسی داده ابداع شد؟
در یک دهه گذشته، تقریبا تمامی شرکتها تحول دیجیتال را تجربه کردهاند. به این معنا که در حال تولید حجم عظیمی از دادههای ساختیافته یا بدون ساختار هستند. دادههایی که ماهیت پیچیدهتری نسبت به گذشته پیدا کردهاند و با سرعت زیادی تولید میشوند. بهطور معمول، دانشمندان داده تنها در صورتی قادر به انجام درست وظایف خود هستند که مفهوم دادهها را بهدرستی درک کنند و به دادههای طبقهبندیشده و پالایششده دسترسی داشته باشند. برای آنکه یک دانشمنده داده توانایی کار با این دادهها را داشته باشد، به متخصصی نیاز است که کیفیت، قابل اعتماد و کاربردی بودن دادهها را تضمین کند تا امکان یافتن الگوها و تحلیلها وجود داشته باشد.
هنگامی که برای اولین بار مفهوم کلانداده به دنیای فناوری اطلاعات وارد شد، فرآیند ساخت گذرگاههای انتقال داده بر عهده دانشمند داده بود، اما بهدلیل اینکه از مهارتهای ضروری دانشمندان داده بهشمار نمیرفت، فرآیند مدلسازی دادهها بهخوبی انجام نمیشد. این مسئله باعث بروز مشکلاتی مثل دوبارهکاری و ناپایداری دادهها میشد. بهطوریکه، شرکتها قادر نبودند بهدرستی از دادهها استفاده کنند و برخی از پروژههای دادهمحور با شکست روبهرو میشدند. روند افزایش غیرقابل تصور دادهها توسط فناوریهایی مثل اینترنت اشیاء و رقابت بر سر دادهمحور شدن، باعث شد تا شرکتها نیازمند مهندسان دادهای شوند که مهارت لازم در زمینه طراحی زیرساختهای موردنیاز پروژههای داده را داشته باشند، بهطوری که دانشمندان داده بهشکل سادهای از دادهها استفاده کنند.
همانگونه که اشاره کردیم، مهندس داده روی ساخت گذرگاه انتقال داده کار میکند. در شکل ۱، نمونهای از این گذرگاههای انتقال داده را مشاهده میکنید. در این شکل نمونه سادهشدهای از یک خط لوله انتقال دادهها را مشاهده میکنید. در این خط، دادهها از منابع مختلف بهدست میآیند، وارد دریاچه داده میشوند، در ادامه مدل داده یکپارچهای ایجاد میشود، دادههای تکراری حذف میشوند، یکبار دیگر مدل داده یکپارچه ایجاد میشود و در آخر وارد پایگاه داده محصول میشود. بهطور معمول، دادهها از منابع مختلفی بهدست میآیند که از مهمترین آنها به موارد زیر باید اشاره کرد:
- ابزارهای اینترنت اشیاء
- تلهمتری خودروها (Telemetry)
- وبسایتهای متعلق به خردهفروشیها
- شبکههای اجتماعی و برنامههای پیامرسان
- فعالیت کاربران در یک اپلیکیشن وب
- هرگونه ابزاری که با هدف اندازهگیری مورد استفاده قرار میگیرد
شکل 1
مسئولیتهای یک مهندس داده چیست؟
مهندسان داده اغلب بهعنوان بخشی از یک تیم تحلیلی در کنار دانشمندان داده کار میکنند. این متخصصان، دادهها را در قالبهای قابل استفاده در اختیار دانشمندان دادهای قرار میدهند که محاورهها و الگوریتمهایی را مینویسند که قابلیت اجرا روی این اطلاعات را دارند. الگوریتمهایی که با هدف ارائه تحلیلهای پیشبینیکننده مورد استفاده قرار میگیرند و امکان استفاده از آنها در زمینه یادگیری ماشین و برنامههای دادهکاوی وجود دارد. علاوه بر این، مهندسان داده وظیفه دارند تا دادههای جمعآوریشده را در اختیار مدیران، تحلیلگران کسبوکار و کاربران نهایی قرار دهند تا بتوانند از آنها در زمینه تجزیهوتحلیل و اتخاذ تصمیمات تجاری بهتر استفاده کنند.
بهطور کلی، رشته مهندسی داده با دادههای ساختاریافته و بدون ساختار سروکار دارد. دادههای ساختاریافته اطلاعاتی هستند که میتوانند در یک مخزن قالببندیشده مانند پایگاه داده سازماندهی شوند. دادههای بدون ساختار مثل متن، تصاویر، فایلهای صوتی و تصویری با مدلهای داده معمولی مطابقت ندارند. به همین دلیل، متخصصان این حوزه باید شناخت دقیقی در مورد معماری داده و برنامههای کاربردی برای مدیریت هر دو نوع داده داشته باشند.
مهندسی داده با چه فناوریها و ابزارهایی عجین شده است؟
بهطور معمول، رشتههای دادهمحور مثل مهندسی داده ارتباط نزدیکی با زبانهای برنامهنویسی دارند و در نتیجه متخصصان این حوزه باید توانایی کار با زبانهای برنامهنویسی مثل سیشارپ، جاوا، پایتون، آر، روبی، اسکالا و اسکیوال را داشته باشند. با اینحال، پایتون، آر و اسکیوال سه زبان مهمی هستند که متخصصان این حوزه بهشکل گسترده از آن استفاده میکنند. در کنار زبانهای برنامهنویسی نباید از ابزارهای مکمل مثل ETL و REST API غافل شد. این ابزارها دسترسی به مجموعه دادههای آماده را برای تحلیلگران داده و کاربران تجاری ساده میکنند. هنگامی که دادهها از منابع مختلف دریافت میشوند باید در مکانهایی که معروف به انبارهای داده و دریاچههای داده هستند، ذخیرهسازی شوند. بهطور مثال، هدوپ با هدف پردازش و ذخیرهسازی انبارهای داده سازمانی توسعه پیدا کردهاند و به مهندسان داده کمک میکنند تا کلاندادهها را بهشکل ساختیافتهای ذخیرهسازی کنند. یکی از فناوریهایی که نقش مهمی در حوزه مهندسی داده دارد، پایگاههای داده NoSQL و سیستمهای آپاچی اسپارک (Apache Spark) هستند که تبدیل به بازیگران بزرگ این حوزه شدهاند. البته، هنوز هم سیستمهای پایگاه داده رابطهای مثل MySQL و PostgreSQL در این حوزه مورد استفاده قرار میگیرند. خوشبختانه، معماری لامبدا (Lambda) از خطوط انتقال داده یکپارچه برای پردازش دستهای و بلادرنگ پشتیبانی میکند. امروزه، پلتفرمهای هوش تجاری (BI) و توانایی پیکربندی آنها نقش مهمی در دنیای مهندسی داده دارند و تقریبا کار مهندسان داده در این زمینه را ساده کردهاند. پلتفرمهای هوش تجاری به مهندسان داده اجازه میدهند بین انبارهای داده، دریاچههای داده و سایر منابع داده ارتباط موثر برقرار کنند. به همین دلیل، مهندسان داده سعی میکنند در کنار مهارتهای کاربردی، نحوه کار با داشبوردهای تعاملی را که پلتفرمهای هوش تجاری ارائه میکنند یاد بگیرند.
یکی از موضوعات مهمی که پیرامون رشته مهندسی داده مطرح است این است که آیا ارتباطی میان مهندسی داده و یادگیری ماشین، در شرایطی که یادگیری ماشین یکی از مهارتهایی است که دانشمندان داده یا مهندسان یادگیری ماشین به آن نیاز دارند، وجود دارد؟ واقعیت این است که مهندسان داده باید آشنایی خوبی با یادگیری ماشین داشته باشند تا بتوانند دادهها را برای پلتفرمهای یادگیری ماشین آماده کنند. آنها باید بدانند که چگونه الگوریتمهای یادگیری ماشین را به کار گیرند و از آنها بینش مورد نیاز را بهدست آورند. نکته ظریفی که باید در مورد مهندسی داده به آن اشاره کنیم، پلتفرمی است که مهندسان از آن استفاده میکنند. بهطور معمول، مهندسان داده حرفهای از سیستمعاملهای مبتنی بر یونیکس استفاده میکنند. آمارها نشان میدهند که سیستمعاملهای لینوکسمحور مثل اوبونتو، سولاریس و نمونههای مشابه، در این حوزه عملکرد بهتری نسبت به سیستم عامل مک و ویندوز دارند. توزیعهای لینوکسی کنترل بیشتری برای نظارت بر سیستمعامل در اختیار کاربر قرار میدهند که برای مهندسان داده مفید است.
گواهینامههای مرتبط با مهندسی داده
از آنجایی که شغل مهندس داده جذابیت بیشتری نسبت به گذشته پیدا کرده است، شرکتهایی مانند آیبیام گواهینامههای تخصصی برای متخصصان این حوزه آماده کردهاند. درست شبیه به بیشتر گواهینامههای فناوری اطلاعات، گواهینامههای مهندسی داده اغلب بر مبنای محصولات یک فروشنده خاص هستند و آموزشها و آزمونها بر مبنای استفاده از این نرمافزارها متمرکز است. از گواهینامههای محبوب مهندس داده به موارد زیر باید اشاره کرد:
- Certified Data Professional: موسسه صدور گواهینامه متخصصان محاسباتی (ICCP)، این مدرک را آماده کرده و بیانگر این موضوع است که یک متخصص داده، دانش کافی برای کار با پایگاههای داده عمومی دارد.
- Cloudera Certified Professional Data Engineer: این مدرک نشان میدهد که فرد توانایی دریافت، تبدیل، ذخیرهسازی، تجزیهوتحلیل دادهها در محیطهای دادهمحور را دارد. داوطلبان میتوانند بهشکل مستقیم برای شرکت در این دوره و دریافت مدرک آن ثبتنام کنند و باید حداقل به 70 درصد پرسشها بهدرستی پاسخ دهند.
- Google Cloud Professional Data Engineer: این مدرک نشان میدهد که متخصصان توانایی استفاده از مدلهای یادگیری ماشین، تضمین کیفیت دادهها، ساخت و طراحی سیستمهای پردازش داده و آزمایش آنها را دارند. آزمونی که گوگل برای این منظور در نظر گرفته، دوساعته و چندگزینهای است. هیچ پیشنیاز رسمیای برای شرکت در این دوره وجود ندارد، اما گوگل توصیه میکند قبل از شرکت در این دوره تجربه کار با Google Cloud Platform را داشته باشید.
نکته مهمی که باید به آن دقت کنید این است که گواهینامهها بهتنهایی برای احراز شغل مهندسی داده کافی نیستند و شما باید تجربه عملی لازم را داشته باشید. بهطور معمول، مهندسان داده از روشهای زیر برای کسب تجربه استفاده میکنند:
- مدارک دانشگاهی مرتبط: پیشنهاد ما این است که بهفکر دریافت مدارک لیسانس در ریاضیات کاربردی، علوم کامپیوتر، فیزیک یا مهندسی باشید. همچنین، مدرک کارشناسی ارشد در علوم کامپیوتر یا مهندسی کامپیوتر میتواند شما را از دیگر متقاضیان احراز این شغل متمایز کند.
- دورههای آنلاین: دورههای آنلاین ارزان یا رایگان، راه خوبی برای کسب مهارتهای مهندسی داده هستند. امروزه، ویدیوهای آموزشی زیادی به زبان پارسی و انگلیسی و همچنین دورهها و منابع آنلاین رایگان زیادی در دسترس قرار دارند. بهطور مثال، Codecademy’s Learn Python دانش پایتون را به مهندسان داده میآموزد که یکی از مهارتهای مهم در این زمینه است. کورسا (Coursera) یکی دیگر از منابع خوب در زمینه مدیریت و امنیت سرور لینوکس است. GitHub SQL Cheatsheet مخزنی روی سایت گیتهاب است که بهطور مداوم با نمونه محاورههای SQL بهروز میشود. علاوه بر این، ناشران مختلفی مثل O’Reilly کتابهای الکترونیکی در زمینه مهندسی داده منتشر میکنند که پیرامون معماری کلانداده و مباحث مهندسی داده است. در نهایت یودمی (Udacity) یکی از جامعترین پلتفرمهای ویدیویی است که خوشبختانه، فیلمهای این موسسه روی سایتهای پارسیزبان موجود است. ویدیوهای این موسسه آموزشی، مباحث مرتبط با مهندسی داده را به دقیقترین شکل ممکن آموزش میدهند. در کنار این منابع آموزشی، یادگیری پروژهمحور و کار عملی را جدی بگیرید. پروژههای عملی کمک میکنند تا مهارتهای مهندسی داده را به بهترین شکل بیاموزید و سطح مهارتهای خود را ارتقاء دهید. رویکرد پروژهمحور راه خوبی برای حفظ انگیزه و یادگیری اصولی مباحث مهم است.
کلام آخر
همانگونه که مشاهده کردید، مهندسی داده یکی از مهارتهای مهمی است که باعث شده مهندسان داده و دانشمندان داده در قالب یک تیم روی پروژههای دادهمحور و یادگیری ماشین کار کنند. مهندسی داده، دادههایی را که شرکتها در پایگاههای داده و سایر فرمتها در اختیار دارند، آماده و سازماندهی میکنند. خطوط انتقال دادهای را تعریف میکند تا دانشمندان داده بهشکل سادهای به دادهها دسترسی پیدا کنند. تنها در این صورت است که دانشمندان داده قادر هستند از دادهها برای تجزیهوتحلیل و بهسرانجام رساندن پروژهها استفاده کنند. با اینحال، نباید از این نکته غافل شویم که دانشمندان داده و مهندسان داده شرح وظایف متفاوتی دارند. مهندسان داده تلاش میکنند تا دانش و مهارتهای خود در زمینه کار با فناوریهای مختلف را کامل کنند؛ از اینرو، تمرکزشان روی بهبود سطح مهارتها تنها منحصر به یک مهارت خاص نیست. در مقابل، دانشمندان داده اغلب روی حوزههای تخصصی متمرکز هستند. آنها باید تجزیهوتحلیل دادهها را بهشکل دقیقی انجام دهند. به بیان دیگر، دانشمندان داده با مشکلات و پروژههای پیچیده بزرگ روبهرو هستند، در حالی که مهندسان داده باید اطلاعات موردنیاز دانشمندان داده را گردآوری و پالایش کرده و در مکان مشخصی قرار دهند تا این متخصصان توانایی کار با آنها را داشته باشند.
ماهنامه شبکه را از کجا تهیه کنیم؟
ماهنامه شبکه را میتوانید از کتابخانههای عمومی سراسر کشور و نیز از دکههای روزنامهفروشی تهیه نمائید.
ثبت اشتراک نسخه کاغذی ماهنامه شبکه
ثبت اشتراک نسخه آنلاین
کتاب الکترونیک +Network راهنمای شبکهها
- برای دانلود تنها کتاب کامل ترجمه فارسی +Network اینجا کلیک کنید.
کتاب الکترونیک دوره مقدماتی آموزش پایتون
- اگر قصد یادگیری برنامهنویسی را دارید ولی هیچ پیشزمینهای ندارید اینجا کلیک کنید.
نظر شما چیست؟