บทความนี้เป็นการแชร์มุมมองจากประสบการณ์ทำงานของ Data Scientist (Soner Yıldırım) คนหนึ่ง ที่มาค้นพบว่า ในโลกของการทำงานจริงนั้น Data Scientists ที่ขาดทักษะ Data Engineering อาจต้องเจอความจริงที่โหดร้าย เรามาดูกันว่า ความจริงที่ว่านั้นคือเรื่องอะไร
คุณอาจเคยอ่านบทความเกี่ยวกับความแตกต่างระหว่าง Data Scientists และ Data Engineer ซึ่งคุณ Soner คิดเสมอว่า ความแตกต่างของ 2 ตำแหน่งมันช่างชัดเจน เพราะ Data Engineer จะทำให้ Data พร้อมใช้งาน จากนั้น Data Scientists ก็จะทำงานกับ Data เหล่านั้น แต่สุดท้าย สิ่งที่เขาคิดกลับเปลี่ยนไป หลังจากที่เขาเริ่มทำงานเป็น Data Scientist
ทุกอย่างใน Data Science เริ่มต้นด้วย Data อย่างแน่นอน Machine Learning Model ของคุณสำคัญพอ ๆ กับ Data ที่ถูกป้อนเข้าไป ถ้าสิ่งที่ป้อนเข้าไปผิด ผลลัพธ์ที่ออกมาก็ย่อมผิดตามไปด้วย Data Scientist ไม่สามารถทำสิ่งมหัศจรรย์เพื่อสร้าง Product ที่มีประโยชน์ได้ หากไม่มี Data ที่เหมาะสมเพียงพอ
Data มักไม่ค่อยพร้อมใช้งานสำหรับ Data Scientist ซึ่งในหลายกรณี มักจะเป็นความรับผิดชอบของ Data Scientist ที่จะต้องเป็นคนแปลง Raw Data (ข้อมูลดิบ) ให้อยู่ในรูปแบบที่เหมาะสม
เว้นเสียแต่คุณจะทำงานให้กับ Tech Company ขนาดใหญ่ ที่มีทีม Data Engineers และทีม Data Scientists แยกจากกันชัดเจน ดังนั้น คุณควรมีความสามารถและทักษะในการจัดการงานบางอย่างในด้าน Data Engineering ได้ โดยงานเหล่านั้นครอบคลุมไปถึง Operations ต่าง ๆ
แล้วทั้ง 2 ตำแหน่งงาน แตกต่างกันอย่างไร
“Data Engineer ก็คือ Data Engineer
แต่ Data Scientist ควรเป็นทั้ง Data Scientist และ Data Engineer”
อาจดูเหมือนเป็นคำพูดที่หลายคนเกิดคำถามอยู่ในใจ แต่คุณ Soner ก็ต้องการเน้นย้ำว่า ความคิดเห็นของเขาเปลี่ยนแปลงไป เพราะก่อนที่จะเริ่มทำงานเป็น Data Scientist เขาเคยคิดว่า Data Engineer และ Data Scientist เป็นงานที่แยกจากกันอย่างเด็ดขาด
แล้วทำไม Data Scientist ถึงควรเป็นทั้ง Data Scientist และ Data Engineer
ตัวอย่างเช่น Data Engineer จะดำเนินการในส่วนของ Operations ที่เรียกว่า ETL (Extract, Transform, Load) มันครอบคลุมไปถึงขั้นตอนในการรวบรวม Data จาก Source หนึ่งหรือหลาย ๆ Sources, มีการใช้ Transformation บ้าง และจากนั้นก็ Load ลงใน Sources อื่น ๆ
แต่มันก็ไม่น่าแปลกใจนัก ถ้า Data Scientist จะถูกคาดหวังให้ทำในส่วนของ ETL Operations ด้วย เพราะ Data Science ยังคงพัฒนาขึ้นเรื่อย ๆ และบริษัทส่วนใหญ่ก็ไม่ได้แยกบทบาทของ Data Engineer และ Data Scientist อย่างชัดเจน ด้วยเหตุนี้ Data Scientist จึงอาจต้องสามารถทำงานบางอย่างใน Data Engineering ได้
หากคุณคาดหวังว่าจะทำงานเฉพาะกับ Machine Learning Algorithms ที่มี Data ที่พร้อมใช้งานแล้วล่ะก็ คุณจะต้องเผชิญกับความจริงที่โหดร้ายในไม่ช้า หลังจากที่คุณเริ่มทำงานเป็น Data Scientist
คุณอาจต้องเขียน Stored Procedures ใน SQL เพื่อเตรียม Client Data ให้พร้อมนำไปใช้ อาจเป็นไปได้ว่า คุณได้รับ Client Data จาก Sources ที่หลากหลาย ซึ่งเป็นหน้าที่ของคุณในการ Extract และ Combine พวกมันเข้าด้วยกัน จากนั้น คุณจะต้อง Load มันลงใน Source เดียว ในการเขียน Stored Procedures ที่มีประสิทธิภาพ คุณจะต้องมีทักษะเกี่ยวกับ SQL ที่ดีพอสมควร
ในส่วนของการ Transform ของ ETL Procedures เกี่ยวข้องกับขั้นตอน Data Cleaning และการจัดการ Data เป็นจำนวนมาก ซึ่ง SQL อาจไม่ใช่ตัวเลือกที่ดีที่สุดหากคุณต้องทำงานกับ Data ที่มีขนาดใหญ่ Distributed Computing ดูจะเป็นทางเลือกที่ดีกว่าในกรณีนี้ ดังนั้น Data Scientist จึงควรคุ้นเคยกับเรื่อง Distributed Computing ด้วย
เพื่อนที่ดีที่สุดของคุณในเรื่อง Distributed Computing น่าจะเป็น Spark ซึ่งมันเป็นเครื่องมือวิเคราะห์ที่ใช้สำหรับการประมวลผล Data ที่มีขนาดใหญ่ เราสามารถกระจายทั้ง Data และ Computations ผ่าน Clusters เพื่อเพิ่มในเรื่องประสิทธิภาพ
หากคุณคุ้นเคยกับ Python และ SQL คุณจะไม่ต้องลำบากในการทำความคุ้นเคยกับ Spark คุณสามารถใช้ Spark Features กับ PySpark ซึ่งเป็น Python API สำหรับ Spark
เมื่อต้องทำงานกับ Clusters แล้ว Environment ที่เหมาะสมคือ Cloud ซึ่งอันที่จริงก็มี Cloud Providers หลายราย แต่ AWS, Azure และ Google Cloud Platform (GCP) ดูจะได้รับความนิยมเป็นอันดับต้น ๆ
แม้ว่า PySpark Code จะดูเหมือนกันสำหรับ Cloud Providers ทั้งหมด แต่วิธีการ Setup Environment และสร้าง Clusters กลับมีความแตกต่างกันไปสำหรับแต่ละ Cloud Providers
Distributed Computing บน Clusters ถือเป็นอีกโลกที่แตกต่างไปจากเดิมอย่างสิ้นเชิง มันไม่เหมือนกับการวิเคราะห์ใน Computer ของคุณ มันมี Dynamics ที่แตกต่างกันมาก การประเมินประสิทธิภาพของ Cluster และการเลือกจำนวนของผู้ปฏิบัติงานที่เหมาะสมที่สุดสำหรับ Cluster นั้น น่าจะเป็นสิ่งที่คุณควรให้ความสำคัญอย่างมาก
สรุป
โดยรวมแล้ว Data Processing จะเป็นส่วนที่สำคัญในงานของคุณในฐานะ Data Scientist นั่นหมายถึง อาจมากกว่า 80% ของเวลาทำงานของคุณ อีกทั้ง Data Processing ไม่ได้เป็นเพียงการ Clean Data และจัดการกับ Data เท่านั้น แต่ยังเกี่ยวข้องกับ ETL Operations ซึ่งหลายคนมักจะคิดว่า มันเป็นงานของ Data Engineer
ขอแนะนำอย่างยิ่งให้คุณทำความคุ้นเคยกับ Tools และ Concepts ของ ETL เพราะมันจะช่วยคุณได้อย่างมาก ถ้าคุณมีโอกาสได้ฝึกฝนมัน
หากคุณสนใจงานด้าน Data Science สามารถส่ง Resume ของคุณมาได้ที่ https://www.ismtech.net/submit-your-resume แล้วคุณจะพบว่าโอกาสดี ๆ กำลังรอคุณอยู่
ISM เชี่ยวชาญในธุรกิจ IT Recruitment & IT Outsourcing โดยเฉพาะ เปิดทำการมากว่า 30 ปี มีพนักงานทุกสายและทุกระดับทางด้าน IT ที่ได้ร่วมงานกับลูกค้าองค์กรใหญ่ที่มีชื่อเสียงและบริษัทข้ามชาติมากมาย
Source: https://towardsdatascience.com/