دانشمندان داده بدون مهارت‌های مهندسی داده با حقیقت سخت مواجه خواهند شد.

شکل ۱. رویارویی با حقیقت
شکل ۱. رویارویی با حقیقت
منتشر‌شده در: towardsdatascience به تاریخ ۱۵ ژوئن ۲۰۲۱
لینک منبع Data Scientists Without Data Engineering Skills Will Face the Harsh Truth

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

با این حال، نظر من در مورد این تمایز بعد از اینکه من به عنوان یک دانشمند داده شروع به کار کردم، به طور چشمگیری تغییر کرد.

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

داده‌های مناسب همیشه برای دانشمندان داده در دسترس نیستند. در اغلب موارد، این مسئولیت دانشمند داده است که داده‌های خام را به یک فرمت مناسب تبدیل کند.

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

به هر حال چه فرقی می‌کند؟

من می‌خواهم نظر خود را در مورد رابطه بین شغل یک مهندس داده و یک دانشمند داده بیان کنم.

یک مهندس داده یک مهندس داده است. یک دانشمند داده باید هم یک دانشمند داده و هم یک مهندس داده باشد.

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

در قسمت باقیمانده مقاله، سعی می‌کنم توضیح دهم که منظور من از دانشمند داده باید هم دانشمند داده باشد و هم مهندس داده چیست.

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

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

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

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

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

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

اگر شما با پایتون و SQL آشنا باشید، زمان سختی برای عادت کردن به SPark نخواهید داشت. شما می‌توانید از ویژگی‌های «اسپارک» با «پای‌سپارک» استفاده کنید که یک API پایتون برای «اسپارک» است.

هنگامی که بحث کار با خوشه‌ها مطرح می‌شود، محیط بهینه ابر است. ارائه‌دهندگان مختلف ابری وجود دارد اما AWS Azure و Google Cloud Platform (GCP) راه‌گشا هستند.

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

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

نتیجه‌گیری

خلاصه داستان طولانی، پردازش داده بخش مهمی از کار شما به عنوان یک دانشمند داده خواهد بود. منظورم از قابل‌توجه این است که بیش از ۸۰٪ وقت شما است. پردازش داده‌ها تنها شامل تمیز کردن و دستکاری داده‌ها نیست. همچنین شامل عملیات ETL است که گمان می‌رود وظیفه یک مهندس داده باشد.

من به شدت توصیه می‌کنم که با ابزارها و مفاهیم ETL آشنا شوید. اگر فرصتی برای تمرین آن‌ها داشته باشید، کمک بزرگی خواهد بود.

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

متشکرم که مطالعه کردید.

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