Contact

Follow

  • medium-logo-black-transparent
  • Black Twitter Icon

66 95-460-8830

©2017 by Coraline

Please reload

Recent Posts

Data Scientist กับ Data Engineer ไม่ใช่คนเดียวกัน

January 22, 2018

 

เทรนด์การใช้ข้อมูล โดยเฉพาะ Big Data กำลังมาแรง ทำให้เราเห็นตำแหน่ง Data Scientist เกิดขึ้น และดูเหมือนจะเป็นบุคคลที่หลายองค์กรอยากมีไว้ครอบครองเพราะเชื่อว่าเป็นบุคคลที่สามารถหา Insight หรือความสัมพันธ์เชิงลึกของข้อมูลได้

วันนี้ อยากให้ลองดู Job Description ของ Data Scientist ในตลาดแรงงาน เช่น
หน้าที่และความรับผิดชอบ

• เขียนโปรแกรมที่ใช้ในการเก็บรวบรวมข้อมูลเพื่อนำมาวิเคราะห์
• เขียน API เพื่อติดต่อกับส่วนงานอื่นๆ
• ใช้ ETL เป็น และเข้าใจ Database
• ออกแบบฐานข้อมูลเพื่อรองรับความต้องการในอนาคต
• สร้าง Report และทำ Data Visualization ได้

คุณสมบัติและความสามารถ
• ใช้ภาษา Python , JavaScript , HTML, R, Tableau, Javascript
• มีความเข้าใจ SQL เป็นอย่างดี และพร้อมที่จะเรียนรู้ NoSQL
• มีความรู้ความเข้าใจในหลักการทำงานของ API และสามารถประยุกต์มาใช้ในการทำงานได้
• มีความรู้ความเข้าใจในหลักการด้านสถิติและการทำนายผล
• มีความมุ่งมั่นในการเรียนรู้ด้าน Machine Learning และ AI
• หากมีประสบการณ์ด้านการเขียนโปรแกรมที่เกี่ยวข้องกับการวิเคราะห์และบริหารจัดการข้อมูลจะได้รับการพิจารณาเป็นพิเศษ
• มีความรู้ด้าน NLP, Text Mining, Graph Theory, Deep Learning
• Technical Skills : Hadoop, PySpark, Hive, Scala, Kafka, Impala etc.


จะเห็นได้ว่า งานบางส่วนของ Data Scientist ที่เขียนมานั้น มิใช่งาน Data Scientist ซะทั้งหมด แต่มีงานในส่วนของ Data Engineer และ Software Developer เข้ามาแทรกด้วย


จึงมักมีคำถามเกิดขึ้นว่า คนคนเดียว สามารถทำงานทั้งหมดนั้นได้จริงหรอ?
เป็นคำถามที่ตอบยากมาก เพราะต้องดูที่ตัวงานว่า ต้องการความเข้มข้น ล้ำลึกแค่ไหน เพราะงานที่แท้จริงของ Data Scientist คือการสร้าง Machine Learning และหาความสัมพันธ์ แบบเจาะลึก ของข้อมูล โดยตามหลักการแล้วจะมี Data Engineer เข้ามาเพื่อออกแบบระบบ Data Pipeline และ Data Flow โดยที่คนใช้ Report และวิเคราะห์สิ่งที่ได้จาก Model คือ Data Analyst อีกทีหนึ่ง


หากงานที่ว่านั้น เป็น one man show อาจมีทั้งข้อดีและข้อเสีย ก็ได้
ข้อดี คือ ไม่จำเป็นต้องจ้างหลายคน มาทำให้หลายตำแหน่ง
ข้อเสีย คือ คนนั้นอาจต้องใช้เวลาในการทำงานแต่ละส่วนมากกว่าปกติ


สำหรับ Job Offer ในต่างประเทศ หรือในองค์กรบางองค์กรของไทยนั้น จะมีการแยกตำแหน่งงานออกอย่างชัดเจน เช่น


...

JOB DESCRIPTION (Data Scientist):

  • Working with Data Engineer to implement data mining architecture

  • Must be data-driven problem solver

  • Finding & developing new insights into a new big data system

  • Developing a foundation for Data Analysts

  • Giving feedback how to enrich the current data pool

  • Working closely with software developers to build analytics dashboard


REQUIREMENTS:

  • Strong knowledge of statistical methods and how to implement using coding languages

  • Strong statistical programming skills using Python or R

  • Understanding of machine learning methodologies – at least know how to use Python, R libraries relating to machine learning

  • Strong knowledge on how to clean up data imperfections

  • Positive attitude

  • Problem solver

  • Fluency in English, both written and oral

...

มาดูส่วนของ Data Engineer กันบ้าง

JOB DESCRIPTION (Data Engineer):

  • Solid SQL/PLSQL skills and strong understanding of data quality and cleansing strategies 

  • Experience with ETL processes using ETL Tools like SAS DI, Oracle Warehouse Builder, Microsoft SSIS

  • Proficiency in areas such as metadata management, master data management, and data governance

  • Design and setup streaming data pipeline infrastructure

  • Responsible for performance, speed, scalability and extensibility of any application requiring usage of the pipeline

  • Determines database structural requirements by analyzing data-access pattern, client operations and applications; reviewing objectives with clients; evaluating current systems

  • Understand and communicate how data models can be used to support, interact and integrate with other information systems.

  • Lead the analysis of current data management technologies and platforms to detect critical deficiencies and recommend solutions for improvement. In addition, lead the impact analysis of new technologies and market trends on the current data architecture.


REQUIREMENTS:

  • Able to building large-scale distributed products

  • Experience with the Big Data technologies and their ecosystem

  • Experience with distributed computing frameworks, Apache Spark in particular, and its underlying internals

  • Experience with various database technologies (e.g. time series/metrics databases, column-oriented datastores, key-value datastores)

  • Innovative problem solving skills with the ability to identify and resolve complex architectural issues

  • Knowledge of cloud computing technologies particularly Amazon Web Services and Google Cloud Platform

  • Scala and/or other functional programming language experience or at least desire to learn

...

เพราะอะไร เขาถึงต้องแยกอย่างชัดเจน?

เพราะวัตถุดิบที่เรากำลังพูดถึงนั้น มีขนาดใหญ่มาก และส่วนใหญ่มักจะไม่เป็น Structure และมีรูปแบบของข้อมูลซับซ้อนเนื่องจากมีแหล่งที่มาของข้อมูลหลายแหล่ง การมีแค่ Data Scientist คนเดียว ไม่สามารถทำให้งานทั้งหมดเกิดได้อย่างราบรื่น เพราะ Skill หลักๆ ของ Data Scientist คือ การทำ Data Modeling and Machine Learning ไม่ใช่การทำ Data Structure หรือ Data Infrastructure

หน้าที่ดังกล่าวนี้ คือ หน้าที่ของ Data Engineer ซึ่งเป็นผู้เชี่ยวชาญในการบริหารข้อมูล เพราะเมื่อเริ่มทำ Big Data Project ต้องมีการเตรียมความพร้อมในการดึงข้อมูล ที่มักจะมาจากหลายหน่วยงาน หลายระบบ อีกทั้งแต่ละระบบก็มีรูปแบบ และขนาดของข้อมูลต่างกัน ข้อมูลบางอย่างเก็บใน Database ข้อมูลบางอย่างเก็บอยู่ใน File จึงต้องมีการออกแบบเพื่อให้ได้ Data ที่มีคุณภาพ Clean และไม่ซ้ำซ้อน รวมถึงจะใช้เครื่องมืออะไรในการจัดการ ระบบที่จะเอามาประมวลผลเพื่อจัดการข้อมูลในส่วนนี้ต้องมี Performance ในระดับไหน คำถามเหล่านี้จะเกิดขึ้นมากมายเมื่อองค์กรต้องการนำข้อมูลไปประมวลผลต่อ

ยังไม่หมดแค่นั้น เมื่อ Data Scientist สร้างโมเดลจนสำเร็จแล้ว คนที่ช่วยออกแบบระบบการใช้งาน หรือ Front -End ก็คือ Data Engineer อีกเช่นเคย 

ความรู้ที่ Data Engineer ควรจะมี จึงคือ

  1. Bash script

  2. ความรู้เกี่ยวกับ Data warehousing ,ETL Process

  3. เข้าใจ Hadoop-Based Analytics
    (HBase, Hive, Pig, MapReduce, Spark, Kafka etc.)

  4. ความรู้ด้าน Database RDBMS และ NoSQL

  5. SQL, Scala, Java etc.

  6. Cloud technology

  7.  Python และ R เป็น Option เสริม เพื่อสามารถต่อยอดงานของ Data Scientist ได้

ไม่ได้หมายความว่าคนจะเป็น Data Engineer จะต้องรู้ทั้งหมดตามที่เขียนมา แต่ควรจะต้องรู้ว่าจะต้องใช้อะไรให้เหมาะสมกับงานไหนและสามารถนำทักษะต่างมาประยุกต์ใช้ร่วมกันได้ บางส่วนอาจจำเป็นต้องมี Software Developer มาช่วยเสริมทัพด้วย

โดยเครื่องมือหลัก ของ Data Scientist คือ Python และ R เพื่อทำหน้าที่ออกแบบ Model และทำ Machine Learning and Analysis อาจจะดูไม่เยอะเท่าของ Data Engineer แต่ต้องอาศัยพื้นฐานความรู้ด้านคณิตศาสตร์ วิทยาศาสตร์ สถิติ และความน่าจะเป็นขั้นสูง นี้คือเหตุผลว่า ทำไม Data Scientist เปรียบดั่งมนุษย์ทองคำ เพราะคุณค่าของงาน Data Science นั้นมากมายจนเราอาจไม่สามารถคาดการณ์ได้

ดังนั้น องค์กรใหญ่ๆ ระดับโลก หรือบริษัทที่มีวิสัยทัศน์ในการใช้ Big Data หรือ สร้าง Artificial Intelligence จริงๆ จะมีการรับสมัครพนักงานมี Skill ชัดเจน และแบ่งหน้าที่กันอย่างเป็นระบบ เพื่อส่งเสริมให้แต่ละคนสามารถต่อยอดงานของตัวเองได้ และแบ่งเวลาเพื่อเรียนรู้เพิ่มเติม ต่อยอดจากสิ่งเดิมที่ตนเองถนัด

สุดท้ายนี้ก็คงอยู่ที่การวาง Position ของแต่ละองค์กร ว่าจะให้แต่ละคนทำงานแค่ไหน และ scope ของแต่งานแค่ไหน ส่วนคนที่สมัครงานเองก็ต้องกลับมาทำการบ้านหนักหน่อยว่า แท้จริงแล้ว Skill หลักๆ ของคุณ คืออะไร


#BigData
#DataScience
#Optimization
#ProductivityImprovement

#Coraline ให้คำปรึกษาการทำ Data Science and Data Modeling เพื่อเพิ่มศักยภาพของธุรกิจ

 

Share on Facebook
Share on Twitter
Please reload

Please reload