วิศวกรข้อมูล: ตำนานกับความเป็นจริง

เผยแพร่แล้ว: 2018-05-10

ตั้งแต่รถยนต์ที่ขับเคลื่อนด้วยตนเองไปจนถึงการติดแท็กอัตโนมัติในรูปภาพ วิทยาศาสตร์ข้อมูลมาไกลมาก นักวิทยาศาสตร์ข้อมูลและนักวิเคราะห์ได้กลายเป็นส่วนสำคัญขององค์กรใดๆ เนื่องจากมูลค่าที่เพิ่มขึ้น แต่ด้วยความสัตย์จริง Data Scientist ดีพอๆ กับข้อมูลที่พวกเขาทำงานด้วย องค์กรส่วนใหญ่ในปัจจุบันมีการจัดเก็บข้อมูลในรูปแบบต่างๆ และข้ามแพลตฟอร์มจำนวนมาก ความต้องการวิศวกรข้อมูลมาถึงแล้ว!

วิศวกรข้อมูลคือคนที่ทำให้ข้อมูลนี้ใช้งานได้สำหรับนักวิทยาศาสตร์ข้อมูลและนักวิเคราะห์ วิศวกรข้อมูลมีหน้าที่รับผิดชอบในการสร้างไปป์ไลน์ที่เปลี่ยนกองข้อมูลให้อยู่ในรูปแบบที่นักวิทยาศาสตร์ข้อมูลสามารถใช้ได้ พวกเขาส่วนใหญ่ทำงานอยู่เบื้องหลังและด้วยเหตุนี้จึงปราศจากความเย้ายวนใจของนักวิทยาศาสตร์ข้อมูล/นักวิเคราะห์ – แต่โปรดทราบว่าสิ่งเหล่านี้มีความสำคัญเท่าเทียมกัน (ถ้าไม่มาก) ต่อการทำงานขององค์กรใดๆ
หากนักวิทยาศาสตร์ข้อมูลเป็นนักแข่งรถ วิศวกรข้อมูลก็คือผู้สร้างรถแข่ง อดีตได้รับความตื่นเต้นในการเร่งไปตามเส้นทางและความตื่นเต้นในการชนะต่อหน้าฝูงชนปรบมือ ในทางกลับกัน ได้รับความสุขจากการปรับแต่งเครื่องยนต์และสร้างเครื่องจักรที่ทรงพลังและทนทาน ผู้สร้างรถแข่งทำให้งานของผู้ขับขี่ง่ายขึ้นมาก (หรือยากขึ้น ขึ้นอยู่กับคุณภาพของผู้สร้าง)
คุณจะเปลี่ยนไปใช้ Data Analytics ได้อย่างไร

ในแง่นี้ วิศวกรข้อมูลเป็นฮีโร่ที่ไม่ค่อยมีใครรู้จักของทีมวิเคราะห์ข้อมูล หากไม่มีวิศวกรข้อมูลที่ดี นักวิทยาศาสตร์ด้านข้อมูลจะเพียงแค่เกาหัวเพื่อหาเบาะแสในข้อมูลที่ไม่ได้จัดรูปแบบ
เรามาดูกันว่าหน้าที่ของวิศวกรข้อมูลทั้งหมดทำอะไรบ้าง
เพื่อความเข้าใจที่ดีขึ้น สมมติว่าคุณเป็นวิศวกรข้อมูลของคู่แข่งของ Swiggy (เรียกกันว่า Twiggy) คุณมีแอปที่ผู้ใช้สามารถใช้กับอุปกรณ์ใดก็ได้และเข้าถึงบริการของคุณ พวกเขาสั่งอาหาร คำสั่งจะถูกเปลี่ยนเส้นทางไปยังร้านอาหารที่เหมาะสม อาหารถูกหยิบขึ้นมาจากที่นั่น และถึงมือคุณ
เพื่อให้บริการนี้ตรงกัน คุณจะต้อง:

  • แอพมือถือสำหรับผู้ใช้
  • แอพมือถือสำหรับเจ้าของร้านอาหาร
  • เซิร์ฟเวอร์ที่แข็งแกร่งเพื่อรองรับคำขอหลายรายการพร้อมกัน

ตามที่คุณอาจเข้าใจแล้วในตอนนี้ แอปพลิเคชันนี้จะสร้างข้อมูลจำนวนมหาศาล นอกจากนี้ คุณจะต้องมีที่เก็บข้อมูล:

  • ฐานข้อมูลที่มีรายละเอียดของผู้ใช้และร้านอาหาร
  • บันทึกการเข้าถึงเซิร์ฟเวอร์ สิ่งเหล่านี้จะรวมถึงคำขอใด ๆ ที่ส่งไปยังเซิร์ฟเวอร์จากแอพ
  • บันทึกข้อผิดพลาดของเซิร์ฟเวอร์ที่มีข้อผิดพลาดฝั่งเซิร์ฟเวอร์ทั้งหมด
  • บันทึกเหตุการณ์ของแอป ข้อมูลเหล่านี้จะมีข้อมูลเกี่ยวกับการกระทำของผู้ใช้หรือเจ้าของร้านอาหารในแอปพลิเคชัน
  • บันทึกข้อผิดพลาดของแอปที่มีข้อผิดพลาดตามแอป
  • ฐานข้อมูลบริการลูกค้า ซึ่งจะมีข้อมูลเกี่ยวกับปฏิสัมพันธ์ของคุณกับลูกค้าของคุณ

ในตอนนี้ สมมติว่านักวิทยาศาสตร์ข้อมูลในทีมของคุณต้องการวิเคราะห์พฤติกรรมของผู้ใช้ในบริการของคุณและดูว่าการดำเนินการใดที่สัมพันธ์กับผู้ใช้ที่มีการใช้จ่ายสูง เพื่อช่วยสร้างสิ่งนี้ คุณจะต้องรวมข้อมูลทั้งหมดจากบันทึกการเข้าถึงเซิร์ฟเวอร์และบันทึกเหตุการณ์ของแอป
คุณจะต้อง:

  • รวบรวมบันทึกการวิเคราะห์แอปเป็นประจำ
  • รวมบันทึกการวิเคราะห์แอปกับรายการบันทึกของเซิร์ฟเวอร์สำหรับผู้ใช้ที่เกี่ยวข้อง
  • พัฒนา API ที่ส่งคืนประวัติเหตุการณ์ของผู้ใช้

งานเยอะมากที่นั่น!
ในการดำเนินการทั้งหมดนี้ คุณจะต้องสร้างไปป์ไลน์ที่สามารถนำเข้าบันทึกแอปมือถือและบันทึกของเซิร์ฟเวอร์แบบเรียลไทม์ แยกวิเคราะห์ และเชื่อมโยงไปยังผู้ใช้ที่เหมาะสม นอกจากนี้ คุณจะต้องจัดเก็บบันทึกที่แยกวิเคราะห์ไว้ในฐานข้อมูลเพื่อให้ API สามารถสืบค้นได้อย่างง่ายดาย จะมีเซิร์ฟเวอร์จำนวนมากที่คุณจะต้องหมุนอยู่เบื้องหลังโหลดบาลานเซอร์เพื่อแยกวิเคราะห์บันทึกที่เข้ามา
ปัญหาส่วนใหญ่ที่คุณจะพบจะเกี่ยวกับระบบแบบกระจายและความน่าเชื่อถือ หากคุณมีอุปกรณ์หลายล้านเครื่องที่จะรวบรวมบันทึกและความต้องการแบบไดนามิก (ในช่วงบ่าย คุณจะได้รับรายการบันทึกจำนวนมาก แต่มีไม่มากในช่วงเที่ยงคืน) คุณจะต้องพัฒนาระบบที่สามารถปรับขนาดการนับเซิร์ฟเวอร์ขึ้นและลงได้โดยอัตโนมัติ ขึ้นอยู่กับการจราจร
ขั้นตอนสำคัญสู่การเรียนรู้วิทยาศาสตร์ข้อมูล

โดยทั่วไป การดำเนินการในไปป์ไลน์วิศวกรรมข้อมูลทั่วไปมีขั้นตอนดังต่อไปนี้:

  • การกลืนกิน: การรวบรวมข้อมูลที่จำเป็น
  • การประมวลผล: การประมวลผลข้อมูลเพื่อให้ได้ผลลัพธ์ที่ต้องการ
  • การจัดเก็บ: จัดเก็บผลลัพธ์เพื่อการเรียกค้นที่รวดเร็วยิ่งขึ้น
  • การเข้าถึง: เปิดใช้งานเครื่องมือเพื่อเข้าถึงผลลัพธ์ของไปป์ไลน์ข้อมูล

วิศวกรข้อมูลคาดว่าจะมีความรู้ในโดเมนต่อไปนี้

  • คลังข้อมูล:
    • RDBMS เช่น MySQL, MS SQL Server เป็นต้น
    • ฐานข้อมูล NoSQL เช่น HBase, MongoDB, CouchDB, Cassandra เป็นต้น
  • การเก็บรวบรวมข้อมูล:
    • RESTful APIs
    • ความรู้เกี่ยวกับการสร้างแบบจำลองข้อมูลและความเชี่ยวชาญใน SQL
  • การแปลงข้อมูล:
    • เครื่องมือ ETL เช่น Informatica, Datastage, Redpoint เป็นต้น
    • ภาษาสคริปต์ใด ๆ เช่น Python, Ruby, Perl เป็นต้น

มาดูตำนานและความเข้าใจผิดเกี่ยวกับชีวิตและงานของวิศวกรข้อมูลเหล่านี้กัน

สารบัญ

ตำนาน #1: วิศวกรข้อมูลดึงคุณค่าจากข้อมูลที่รวบรวม

มีหลายสิ่งหลายอย่างที่เข้ามาระหว่างการรวบรวมข้อมูลและการดึงความรู้ วิศวกรข้อมูลมีหน้าที่หลักในการแปลงข้อมูลให้อยู่ในรูปแบบที่เหมาะสมสำหรับนักวิทยาศาสตร์ในการวิเคราะห์และดำเนินการ ในแง่นี้ พวกมันไม่ได้ดึงค่าใดๆ ออกจากข้อมูล อันที่จริง พวกเขานำเสนอข้อมูลบนจานแก่นักวิทยาศาสตร์ข้อมูลที่จะค้นพบคุณค่าจากข้อมูลนั้น

ตำนาน #2: วิศวกรข้อมูลจำเป็นต้องทำให้ข้อมูลทั้งหมดมีความบริสุทธิ์

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

ความเชื่อผิดๆ #3: วิศวกรข้อมูลถ่ายโอนข้อมูลไปยังเครื่องมือสำเร็จรูป และเพลิดเพลินไปกับข้อมูลที่สะอาด/ใช้การได้เป็นผลลัพธ์

โปรดอย่าพูดออกมาดังๆ ต่อหน้าวิศวกรข้อมูลใดๆ เคย. ไม่มีวิศวกรข้อมูลที่เคารพตนเองคนใดจะทนต่อการดูถูกที่โจ่งแจ้งเช่นนี้ เช่นเดียวกับวิศวกรอื่นๆ (ซอฟต์แวร์ เครื่องกล เคมี ฯลฯ) วิศวกรข้อมูลจำเป็นต้องมีส่วนสำคัญในการคิดอยู่ตลอดเวลา ไม่มีแนวทางใดที่เหมาะกับทุกคนในวิศวกรรมข้อมูล และวิศวกรข้อมูลจำเป็นต้องสร้างอัลกอริธึมให้เหมาะสมกับกรณีการใช้งานอย่างต่อเนื่อง พวกเขาจำเป็นต้องตระหนักถึงเทคนิคและวิธีการล่าสุดในการทำงานเพื่อให้แน่ใจว่ามีประสิทธิภาพที่สมบูรณ์แบบ

ตำนาน #4: วิศวกรข้อมูลเป็นเพียงวิศวกรซอฟต์แวร์ที่ทำงานเกี่ยวกับ Big Data

วิศวกรซอฟต์แวร์ทำงานเกี่ยวกับการพัฒนาแอพมือถือ/เว็บแอพ งานของพวกเขาเกี่ยวข้องกับปัญหาที่หลากหลาย และความยากลำบากคือการจัดการงาน เช่น คิด สื่อสาร และจัดระเบียบโค้ด ในทางกลับกัน วิศวกรข้อมูลมักมีปัญหาน้อยกว่า แต่ปัญหาส่วนบุคคลนั้นยากกว่ามากในทางเทคนิค จากมุมมองสู่ชุดทักษะ ทุกสิ่งทุกอย่างสำหรับวิศวกรข้อมูลแตกต่างจากวิศวกรซอฟต์แวร์อย่างสิ้นเชิง
ใครคือ Data Scientist, Data Analyst และ Data Engineer?

รับ ใบรับรองวิทยาศาสตร์ข้อมูล จากมหาวิทยาลัยชั้นนำของโลก เรียนรู้หลักสูตร Executive PG Programs, Advanced Certificate Programs หรือ Masters Programs เพื่อติดตามอาชีพของคุณอย่างรวดเร็ว

Data Engineering คล้ายกับบทบาท IT แบบคลาสสิกหรือไม่?

'วิศวกรข้อมูล' และ 'วิศวกรซอฟต์แวร์' อาจฟังดูใช้แทนกันได้สำหรับผู้ที่อยู่นอกภาคส่วนคอมพิวเตอร์ เนื่องจากทั้งคู่ต้องอาศัยทักษะการเขียนโปรแกรมเป็นส่วนใหญ่ แต่แท้จริงแล้วพวกเขาเป็นผู้เชี่ยวชาญในสาขาต่างๆ เป้าหมายหลักของวิศวกรซอฟต์แวร์คือการสร้างเว็บไซต์ที่เป็นมิตรกับผู้ใช้ วิศวกรข้อมูลสร้างระบบสำหรับการจัดเก็บ การรวม และการดึงข้อมูล ซึ่งนักพัฒนาซอฟต์แวร์จะใช้เพื่อสร้างระบบและแอปพลิเคชัน วิศวกรข้อมูลอาจสร้างและรักษาไปป์ไลน์การผสานรวมและการส่งมอบอย่างต่อเนื่อง (CI/CD) สำหรับข้อมูลองค์กรทั้งหมด รวมถึงระบบควบคุมเวอร์ชันเพื่อให้มั่นใจในคุณภาพของข้อมูลทั่วทั้งโครงสร้างพื้นฐาน

จำเป็นต้องมีการศึกษาระดับวิทยาลัยหรือระดับสูงเพื่อที่จะเป็นวิศวกรข้อมูลหรือไม่?

ในการทำงานเป็นวิศวกรข้อมูล คุณไม่จำเป็นต้องมีวุฒิการศึกษา แม้ว่านายจ้างบางรายอาจชอบผู้สมัครที่มีวุฒิปริญญาตรีเป็นอย่างน้อย ไม่มีหลักสูตรวิชาการหรือหลักสูตรออนไลน์ใดที่สามารถเตรียมคุณให้พร้อมสำหรับการสร้างระบบข้อมูลที่สามารถย้ายข้อมูลจากแหล่งที่หลากหลาย แก้ไข และจัดเก็บเพื่อการวิเคราะห์ได้ ความจริงก็คือวิศวกรข้อมูลที่ประสบความสำเร็จมากที่สุดเรียนรู้มากมายจากงานในขณะที่ปฏิบัติงานในโลกแห่งความเป็นจริงกับลูกค้าจริง แต่ใช่ เป็นสิ่งสำคัญสำหรับ Data Engineer ที่จะต้องมีทักษะที่ดีในการทำงานกับเครื่องมือบางอย่าง เช่น Amazon Athena, Amazon Redshift, Apache Spark เป็นต้น และรับความรู้เกี่ยวกับแนวทางปฏิบัติที่ดีที่สุดสำหรับการจัดการข้อมูล

จะเป็น Data Engineer ที่ประสบความสำเร็จได้อย่างไร

สำหรับธุรกิจที่ขับเคลื่อนด้วยข้อมูล วิศวกรรมข้อมูลเป็นสิ่งสำคัญ แต่วิศวกรข้อมูลทำอะไรกันแน่ นี่คือเส้นทางสู่การเป็น Data Engineer ที่ประสบความสำเร็จ

1. มีความเชี่ยวชาญในการเขียนโปรแกรม: หากคุณต้องการเป็น Data Engineer ที่ประสบความสำเร็จ อันดับแรก ให้เริ่มต้นด้วยการปัดฝุ่นพื้นฐานการเขียนโปรแกรมของคุณ Python และ Scala เป็นเทคโนโลยีที่ใช้กันมากที่สุดในภาคส่วนนี้
2. เรียนรู้วิธีทำให้เป็นอัตโนมัติและเขียนสคริปต์: การเรียนรู้อัตโนมัติเป็นสิ่งสำคัญสำหรับวิศวกรข้อมูล เนื่องจากมีงานหลายอย่างที่ต้องดำเนินการกับข้อมูลซึ่งอาจเป็นที่น่าเบื่อหรืออาจเกิดขึ้นเป็นประจำ เครื่องมือที่สำคัญบางประการสำหรับการทำงานอัตโนมัติ ได้แก่ การเขียนสคริปต์ของเชลล์และการประมวลผลข้อมูลในเชลล์
3. รู้วิธีใช้ฐานข้อมูลของคุณ: สามารถทำได้โดยการเรียนรู้ SQL และการสร้างแบบจำลองข้อมูล
4. เทคนิคการประมวลผลข้อมูลอย่างเชี่ยวชาญ: หากต้องการเชี่ยวชาญเทคนิคการประมวลผลข้อมูล จำเป็นต้องเรียนรู้วิธีประมวลผลข้อมูลเป็นชุดและสตรีม ก่อนที่จะโหลดผลลัพธ์ในฐานข้อมูลเป้าหมาย