หน้าที่หลักและความสามารถที่ Data Engineer ต้องมีมีอะไรบ้าง

บทความนี้แอดสรุปเนื้อหาอย่างละเอียดจากคอร์ส Data Engineering for Everyone ของ DataCamp ถ้าอยากรู้ว่า data engineer ทำงานอะไรบ้าง และแตกต่างจาก data scientist และ data analyst ยังไง อ่านต่อได้เลยคร้าบ

สำหรับเพื่อนๆที่สนใจ คอร์สเรียนนี้ใช้เวลาเรียนประมาณ 2 ชั่วโมง ประกอบด้วย 11 วีดีโอ 32 แบบฝึกหัด สอนโดย Hadrien Lacroix เนื้อหาแบ่งออกเป็นสามบท อธิบายคอนเซ็ปต์และคำศัพท์พื้นฐานของงาน data engineer

  1. Data Engineer คืออะไร
  2. Storing Data การเก็บข้อมูล
  3. Moving and Processing Data การย้ายและจัดการข้อมูล

ส่วนตัวแอดคิดว่าคอร์สนี้สอน concept โอเคเลย ได้เห็นภาพรวมของงาน data engineer และเข้าใจศัพท์เทคนิคที่เราใช้กันเยอะมากในสายงาน data เช่น data warehouse, databases, data lake, ETL pipeline เป็นต้น

Data Workflow

มาเริ่มกันที่ Data (Analytics) Workflow หรือกระบวนการไหลของข้อมูลจากต้นจบจบ ออกมาเป็น data products หรือง่ายสุดคือ models โดย data engineer (หรือ DE) จะทำงานที่ phase 1 เป็นหลักคือเรื่อง data collection & storage แปลไทยว่าการรวบรวมและจัดเก็บข้อมูลนั่นเอง

หน้าที่หลักและความสามารถที่ Data Engineer ต้องมีมีอะไรบ้าง
Data Workflow การไหลของข้อมูล (ที่มา DataCamp)

ถ้า DE เตรียมข้อมูลมาดี คนอื่นๆในบริษัท (Data Scientist/ Data Analyst) ก็จะสามารถทำงานได้สะดวกขึ้นมาก จริงๆต้องบอกว่าถ้าไม่มี DE คนอื่นๆจะทำงานต่อไม่ได้เลย (หรือถ้าต้องทำ data workflow เอง ก็จะเสียเวลามาก)

Data Scientist (DS) และ Data Analyst (DA) จะอยู่ที่ท้ายๆของ data workflow งานส่วนใหญ่สามารถเขียน SQL เพื่อดึงข้อมูลออกมาใช้งานได้เลย เช่น การทำ exploration/ visualization ไปจนถึงการทดลองและสร้างโมเดล

What is Data Engineer?

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

✔️ Data engineer delivers the correct data in the right formto the right people as efficiently as possible. (keywords คือคำที่แอดไฮไลท์ไว้)

หน้าที่หลักของ DE คือการย่อย (ingest v.) ข้อมูลจากหลายแหล่งที่บริษัทเราเก็บมา เช่น ข้อมูลการใช้งานของลูกค้า ข้อมูลจาก Facebook, Twitter, YouTube หรือ social media อื่นๆ ข้อมูลจากร้านค้าทั้งแบบออนไลน์และออฟไลน์ และเซนเซอร์รูปแบบต่างๆ (Internet of Things)

พอย่อยข้อมูลเสร็จแล้ว DE จะทำความสะอาดข้อมูล จัดการ missing values ปรับหน้าตาข้อมูลเบื้องต้น หรือทำ data aggregation ตามความต้องการของธุรกิจนั้นๆ (business requirements) และโหลดข้อมูลใส่ data warehouse/ databases ให้กับ users คนอื่นๆใช้งานต่อไป ขั้นตอนที่แอดสรุปมาเรียกว่าการทำ ETL Pipeline หรือ Extract > Transform > Load เป็นขั้นตอนการทำงานมาตรฐานของ data engineer

หน้าที่หลักและความสามารถที่ Data Engineer ต้องมีมีอะไรบ้าง

Note – ภาษาอังกฤษเราใช้คำว่า data ingestion คือกระบวนการรวบรวมข้อมูล (obtain/ extract) เพื่อทำ processing อื่นๆต่อไป ในบทความนี้แอดแปล ingest ว่า “ย่อย” ใครมีคำดีกว่านี้ ช่วยแนะนำด้วยนะคร้าบ 555+

Big Data

ปัจจัยสำคัญที่ทำให้ data engineer เป็นที่ต้องการมากในตลาดคือปริมาณข้อมูลที่เพิ่มขึ้นอย่างต่อเนื่อง และข้อมูลที่มีความหลากหลายมาจากหลาย sources ทุกวันนี้เราเรียกข้อมูลขนาดใหญ่ว่า “Big Data

คอร์สเรียนของ DataCamp สรุปคุณลักษณะของ Big Data ไว้ 5 ข้อ ดังนี้

  • Volume ขนาด
  • Variety ความหลากหลาย
  • Velocity ความเร็วที่ข้อมูลถูกสร้างขึ้นมา
  • Veracity ความน่าเชื่อถือของแหล่งที่มา ตรวจสอบได้ไหม
  • Value ประโยชน์ที่ได้จากข้อมูลนั้นๆ

อันนี้นอกเรื่อง Hadley Wickham เคยเขียนไว้ว่าโปรเจ็ค Big Data ส่วนใหญ่หลังจากที่เรา process & transform ข้อมูลเสร็จแล้ว มันก็ไม่ได้ใหญ่อย่างที่คิด 555+ ตัวอย่างเช่น ลูกค้าดีแทคแบบรายเดือน 5 ล้านคน เตรียมข้อมูลไว้ 50 คอลัมน์ ถ้าเราจะเทรนโมเดลในคอมพิวเตอร์ตัวเอง จริงๆก็สามารถทำได้ อาจจะใช้เวลานานหน่อยแต่ได้ผลลัพธ์เหมือนกัน

สำหรับเพื่อนๆที่อยากมาสาย data engineer จะต้องมีความรู้ความเข้าใจเกี่ยวกับเทคโนโลยี Big Data หลายตัวด้วยกัน เช่น Spark, Airflow, Snowflake (เรื่องเทคโนโลยีจะขึ้นอยู่กับบริษัทที่เราไปทำงานด้วย รู้ภาพรวมคร่าวๆก็ดีครับ) รวมถึงผู้ให้บริการ cloud platform ต่างๆ เช่น Amazon AWS, Google Cloud Platform และ Microsoft Azure

Data Engineers Enables Data Scientists

ส่วนตัวแอดชอบประโยคนี้มาก “Data engineers enable data scientists” โฟกัสที่คำว่า “enable” (V.) งาน data science จะเกิดขึ้นไม่ได้เลยถ้าไม่มีทีมวิศวกรข้อมูลดีๆ แอดสรุปความแตกต่างของ DE vs. DS ในตารางด้านล่าง

Data Engineer Data Scientist
รวบรวม ย่อย จัดเก็บข้อมูล นำข้อมูลมาใช้งานทางธุรกิจ
สร้างฐานข้อมูล databases เข้าใช้งาน databases
สร้าง data pipelines ใช้ข้อมูลที่ได้จาก pipelines ของ DE
ความรู้ด้าน software engineering ความรู้สถิติและการวิเคราะห์ข้อมูล

สรุปง่ายๆจากตารางนี้ DE คือคนวางระบบข้อมูล ส่วน DS/ DA เป็นคนนำข้อมูลมาใช้ต่อ (หรือจะเรียกว่า users ก็ได้)

DE ยังมีหน้าที่ทำพวก optimization อีกด้วย เช่น การปรับจูนฐานข้อมูลให้ทำงานได้เร็วขึ้น นำเทคโนโลยีใหม่ๆมาช่วยทีม DS/ DA ให้ทำงานได้มีประสิทธิภาพมากขึ้น ตามนิยามที่เราอธิบายมาก่อนหน้านี้คือ as efficiently as possible โดยคำว่า efficient มีสามด้านคือ performance, time และ cost

Automated Data Pipeline

ตะกี้แอดมีเกริ่นเรื่อง Data Pipeline มาคร่าวๆ ต้องบอกว่าคำนี้เป็นศัพท์ที่สำคัญที่สุดของงาน data engineer เลย อธิบายง่ายๆเป็นภาษาไทยคือการย้ายข้อมูลจากที่หนึ่งไปอีกที่หนึ่ง (pipe n. แปลว่า ท่อ เหมือนท่อการไหลของข้อมูล) โดยข้อมูลจะถูกไหลไปใส่ databases/ data warehouse

หน้าที่หลักและความสามารถที่ Data Engineer ต้องมีมีอะไรบ้าง
ที่มา Google Cloud Platform

ลองนึกภาพทุกเดือนเวลามีลูกค้าใหม่เข้ามาใช้บริการของบริษัทเรา ตั้งแต่การลงทะเบียน ซื้อสินค้า และการใช้งานต่างๆ data engineer จะเตรียม script เพื่อทำขั้นตอนต่างๆใน data pipeline แบบอัตโนมัติ และตั้งเวลาให้รันทุกๆวันที่ 30 ของเดือน (batch) หรือรันแบบ stream แปลง่ายๆว่าการรัน pipeline สำหรับลูกค้าแต่ละคนเลย (individual data)

งาน Automated Pipeline ที่ DE ทำกันตลอด เช่น Extract, Transform, Combine, Validate และ Load ข้อมูลใส่ฐานข้อมูล ข้อดีหลักๆของ automation คือลดความผิดพลาดจากการแทรกแซงของมนุษย์ (manual jobs)

Data Structures

DE จะมีความรู้เกี่ยวกับ data structures ดีมาก โดยเราสามารถจับกลุ่มข้อมูลตามโครงสร้าง (structures) ได้สามแบบ

  1. Structured Data (20%) ถูกเก็บใน databases/ data warehouse
  2. Semi-Structured Data ถูกเก็บใน No SQL databases เช่น MongoDB
  3. Unstructured Data (80%) ถูกเก็บใน Data Lake

โลกของเรามีข้อมูลประเภท unstructured เยอะมาก เช่น รูปภาพ ไฟล์เสียง วีดีโอ และข้อความต่างๆ คอร์สเรียนของ DataCamp ประเมินว่าข้อมูลประเภทนี้มีอยู่ประมาณ 80% (เปรียบเทียบกับ structured แค่ 20%)

Structured Data เป็นข้อมูลที่ทำงานด้วยง่ายที่สุด มีความเป็นระเบียบเรียบร้อยสูง เช่น ตารางที่อยู่ในฐานข้อมูล (Relational Databases) หรือไฟล์ csv/ excel ที่เราใช้งานอยู่ทุกวัน

หน้าที่หลักและความสามารถที่ Data Engineer ต้องมีมีอะไรบ้าง
ที่มา What is Structured Data? (IAC)

ถัดมาคือข้อมูลแบบ semi-structured ต่อยอดมาจาก structured เพิ่มความยืดหยุ่นในการเก็บข้อมูล ตัวอย่างเช่น JSON, XML และ YAML (อ่านว่า แยม-เมล) ข้อมูลด้านล่างคือข้อมูล JSON ง่ายๆที่แอดเอามาจากเว็บไซต์ MongoDB เราเรียกการเก็บข้อมูลแบบนี้ว่า schemaless ลูกค้าแต่ละคนไม่จำเป็นต้องมีจำนวนคอลัมน์หรือ attribute เท่ากันก็ได้

{
  "_id": 1,
  "name" : { "first" : "John", "last" : "Backus" },
  "contribs" : [ "Fortran", "ALGOL", "Backus-Naur Form", "FP" ],
  "awards" : [
    {
      "award" : "W.W. McDowell Award",
      "year" : 1967,
      "by" : "IEEE Computer Society"
    }, {
      "award" : "Draper Prize",
      "year" : 1993,
      "by" : "National Academy of Engineering"
    }
  ]
}

สุดท้ายคือข้อมูลแบบ unstructured ตัวอย่างเช่น วีดีโอบน YouTube หรือ facebook posts/ comments ในแต่ละวันมากกว่าพันล้านครั้ง ข้อมูลประเภทนี้จะจัดการได้ยากที่สุดเลย ทั้งการค้นหาหรือจัดระเบียบต่างๆ ส่วนใหญ่จะถูกเก็บอยู่ใน data lake เก็บเป็นไฟล์แบบ raw format ยังไม่ได้ผ่านการ process ใดๆ

Unstructured data จัดการได้ยากที่สุดแต่ก็มีประโยชน์มากที่สุดเช่นกัน ทุกวันนี้เราสามารถใช้ AI/ ML โดยเฉพาะ Deep Learning ในการ extract ข้อมูลสำคัญออกมาจาก unstructured sources ตัวอย่างเช่นการวิเคราะห์ภาษาธรรมชาติหรือ natural language processing หรือการทำ object detection ด้วย computer vision

SQL Databases

ภาษาที่ Data Engineer ชำนาญมากที่สุดคือ SQL

SQL ย่อมาจาก Structured Query Language เป็นภาษาทางการที่เราใช้ทำงานกับฐานข้อมูลตั้งแต่ปี 1970s ส่วนตัวแอดคิดว่านี่คือภาษาแรกที่ทุกคนควรเรียนเลย เรียนรู้ง่าย นำไปใช้ประโยชน์ได้ทันที

SELECT 
    call.*,
    DATEDIFF("SECOND", call.start_time, call.end_time) AS call_duration
FROM call
ORDER BY
    call.employee_id ASC,
    call.start_time ASC;

ตำแหน่ง DE vs. DS จะมีวัตถุประสงค์ในการเขียน SQL ต่างกันดังนี้

  • Data Engineer – create, read, update, maintain หรือ CRUD
  • Data Scientist – query, filter, group, aggregate นำข้อมูลไปใช้งานต่อ
  • ดาวน์โหลดหนังสือฟรี Practical SQL สำหรับผู้เริ่มต้นของเพจเราได้ที่นี่

อธิบายสั้นๆ DE ใช้ SQL เพื่อสร้างและอัพเดทข้อมูลใน databases ส่วน DS/ DA คือ users ที่ดึงข้อมูลไปวิเคราะห์

SQL ในตลาดจะมีอยู่หลายเวอร์ชันด้วยกัน เช่น SQLite, MySQL, PostgreSQL, Oracle Server, SQL Server รวมถึง SQL on Cloud อย่างเช่น Amazon Aurora และ Google Cloud SQL

Data Warehouse vs. Data Lake

Database หรือฐานข้อมูลมีนิยามง่ายๆว่า “Organized data stored and accessed on a computer” ในคอร์สนี้เรา define database กับ data warehouse ด้วยนิยามเดียวกัน (data warehouse คือ database ประเภทหนึ่ง)

ทบทวนเรื่องการเก็บข้อมูล data warehouse จะเก็บข้อมูลแบบ structured ส่วน data lake เก็บข้อมูลแบบ raw/ unstructured แอดทำตารางสรุปฟีเจอร์ของสองเทคโนโลยีนี้ด้านล่าง

Data Warehouse Data Lake
ขนาดไม่ใหญ่มาก ขนาดใหญ่ สูงถึง 1 ล้าน GBs
เก็บข้อมูลแบบ structured เก็บข้อมูลได้ทุกแบบ (raw data)
ออกแบบมาสำหรับทำ data analysis มีความยากในการวิเคราะห์ (เพราะข้อมูลไม่เป็นระเบียบ)
เหมาะสำหรับงาน ad-hoc, read-only queries เหมาะสำหรับ big data/ real time analytics
ราคาค่อนข้างสูงในการอัพเดท ราคาถูกกว่า เน้นการเก็บข้อมูล (cost-effective)

Data Lake จะมี data catalog เหมือนเป็น document เพื่อบันทึกรายละเอียดข้อมูลที่ถูกเก็บใน lake เช่น ที่มาของข้อมูล ใครเป็นเจ้าของข้อมูล ความถี่ในการอัพเดท ข้อมูลถูกนำไปใช้ทำอะไรต่อ เป็นต้น

เวลาเลือกเทคโนโลยีในการเก็บข้อมูล นอกจากเรื่อง data structures เราต้องคำนึงถึงปัจจัยอื่นๆ เช่น reliability, autonomy, scalability และ speed หน้าที่ของ DE คือการทำให้ทุกคนในบริษัทมั่นใจว่าเรามีระบบข้อมูลที่น่าเชื่อถือ ทำงานได้รวดเร็ว รองรับกับการขยายตัวของ [Big] Data ได้ ในราคาที่เหมาะสม (as efficiently as possible)

Processing Data

Data Processing คือการเปลี่ยนข้อมูลจาก raw format เป็น meaningful information

หลายคนน่าจะเคยได้ยินคนพูดกันว่า “Data is the new oil” หน้าที่ของ data engineer คือทำการกลั่นน้ำมันดิบ refine/ process จนมันสามารถนำมาใช้ประโยชน์ได้ กระบวนการกลั่นเกิดขึ้นใน pipeline ที่เรากำหนด (ตรงนี้คือ programming ล้วนๆ) โดยเครื่องมือของ DE จะมีให้เลือกใช้เยอะมากมีทั้งแบบฟรีและเสียเงิน

หน้าที่หลักและความสามารถที่ Data Engineer ต้องมีมีอะไรบ้าง
เครื่องมือของ data engineer (ที่มา DataCamp)

แล้ว data processing ต้องทำอะไรบ้าง? แอดสรุปมา 5 ข้อ

  • ลบข้อมูลที่เราไม่ต้องการ (unwanted data/ noise)
  • เปลี่ยน format ข้อมูล เช่น เปลี่ยนรูป .png เป็น .jpg เพื่อลดขนาดไฟล์
  • จัดระเบียบข้อมูล จัดการ metadata และกำหนด schema/ structure
  • บริหาร (optimize) memory, process และ network costs เพราะการทำงานกับข้อมูลใหญ่มีต้นทุน ทั้งค่า storage, moving และ processing
  • ช่วยเพิ่ม productivity ให้กับทีมอื่นๆ – Data engineers enable data scientists

ภาษาที่ data engineer ใช้หลักๆคือ SQL, Python, Java, Scala และ Shell สำหรับเพื่อนๆที่สนใจงานตำแหน่งนี้ เริ่มศึกษา SQL + Python ก่อนได้เลย สองภาษานี้คือพื้นฐานสำคัญ ใช้เวลาเรียนไม่นาน นำไปต่อยอดได้ง่าย

Scheduling

Scheduling คือการกำหนดตารางการรันงานต่างๆของ data pipeline โดยเราสามารถตั้ง schedule ได้สามแบบ

  • Manual คือการรันงานต่างๆด้วยตัวเอง
  • Time คือการรัน pipeline แบบอัตโนมัติตามเวลาที่เรากำหนด
  • Sensor Scheduling ชื่ออาจจะดูงงๆ แต่มันคือการเขียน if-else เพื่อรัน pipeline แบบอัตโนมัติถ้าเงื่อนไขนั้นเป็นจริง เช่น อัพเดทข้อมูล playlist ของลูกค้าอัตโนมัติ ถ้าลูกค้ากดปุ่ม add to playlist

สำหรับ data engineer อะไรที่มัน automate ได้ ก็ควรทำเป็น automate ให้หมด ตรงส่วนนี้จะใช้ความรู้ด้าน software engineering เยอะหน่อย อีกเรื่องหนึ่งที่ DE ต้องคำนึงถึงคือวิธีการ ingest data ใน pipeline

  • Batch Processing คือการย่อยข้อมูลที่ถูกเก็บมาแล้วช่วงเวลาหนึ่ง (group records at intervals) เช่น รันอัพเดทตารางการใช้งานของลูกค้าทุกๆชั่วโมง ข้อมูลแบบ batch จะมีขนาดใหญ่ และใช้เวลาย่อยใน pipeline นาน
  • Stream Processing คือการย่อยข้อมูลแบบ individual records ทันทีเลย งานบางอย่างเรารันแบบ batch ไม่ได้ เช่น การตรวจจับ frauds ของบัตรเครดิต ต้องดู transactions เป็นรายตัวเลย ใช้เวลาย่อยข้อมูลไม่กี่วินาที

Parallel Computing

Parallel Computing คือเทคโนโลยีที่ช่วยให้การ process ข้อมูลขนาดใหญ่สามารถทำได้ง่ายและเร็วขึ้นในปัจจุบัน วิธีการทำงานของ parallel คือการแตกงานใหญ่เป็นงานย่อย (subtasks) และกระจายไปตาม processing units ต่างๆ (ให้มองแต่ละ unit เป็นคอมพิวเตอร์เครื่องหนึ่งก็ได้)

ตัวอย่างเช่น ถ้าเราต้องพับเสื้อ t-shirt 1000 ตัว โดยเวลาในการพับอยู่ที่ 100 ตัว/ 15 นาที ถ้าทำงานนี้คนเดียวจะใช้เวลา 2 ชั่วโมงครึ่งถึงจะทำเสร็จทั้งหมด

แต่ถ้าเราใช้คอนเซ็ปต์ของ parallel computing กระจายงานไปที่เพื่อนสี่คน (processing units) บรีฟงานเพื่อนใช้เวลา 10 นาที แต่ละคนจะใช้เวลาแค่ 1 ชั่วโมง 15 นาที พับเสื้อ 250 ตัว รวม output ทั้งหมดได้ 1000 เท่าเดิม

หน้าที่หลักและความสามารถที่ Data Engineer ต้องมีมีอะไรบ้าง
อธิบายคอนเซ็ปต์ง่ายๆเรื่อง parallel computing (ที่มา DataCamp)

ข้อดีของการใช้ parallel computing คือเราได้ extra processing power ทำงานเสร็จเร็วขึ้น แต่ข้อเสียคือการย้ายข้อมูล (moving data) ไปที่ processing units ต่างๆมีต้นทุนที่เราต้องจ่าย รวมถึงเวลาที่ processing units ต้องคุยกันด้วย (communication time) สังเกตในรูปด้านบน หลังจากทุก unit ทำงานเสร็จแล้ว ทั้งสี่ units จะใช้เวลาอีกประมาณ 5 นาที เพื่อรวมเสื้อที่พับแล้วทั้งหมดเข้าด้วยกัน

รวมเวลาในการทำงานทั้งหมด บรีฟงาน 10 นาที พับเสื้อ 75 นาที และรวมเสื้ออีก 5 นาที = 10 + 75 + 5 = 90 นาที หรือหนึ่งชั่วโมงครึ่ง ประหยัดเวลาได้หนึ่งชั่วโมง

Note – Parallel Computing ไม่ได้เหมาะสมกับทุกสถานการณ์ ถ้าประโยชน์ที่เราได้จากการทำ parallel ไม่มากพอ ก็ใช้วิธี processing แบบเก่าไปก่อนก็ได้ ตัวอย่างเช่น สถานการณ์ที่การย้ายข้อมูลไปที่ processing units ช้ามากหรือมีต้นทุนสูง เป็นต้น

Cloud Computing

Cloud คือบริการให้เช่า storage, databases, computing power ตาม demands ที่เราต้องการใช้งาน ผู้ให้บริการรายใหญ่ในตลาดคือ Amazon AWS, Microsoft Azure และ Google Cloud ตามลำดับ

หน้าที่หลักและความสามารถที่ Data Engineer ต้องมีมีอะไรบ้าง
ผู้ให้บริการ Cloud รายใหญ่ เรียงตามส่วนแบ่งตลาด (ที่มา DataCamp)

ทุกวันนี้งานของ data engineer (เกือบ)ทั้งหมดสามารถทำผ่าน cloud services ได้เลย ตั้งแต่การ ingest ข้อมูล สร้าง data pipeline/ flow และโหลดข้อมูลเข้าสู่ databases/ data warehouse พร้อมให้ users ใช้งาน

เปรียบเทียบกับ on premises (ออน-เพรม คือการลงทุนซื้อและสร้าง data centers ของตัวเอง) การเช่าใช้งาน cloud มีข้อดีกว่าหลายอย่าง แอดสรุปมาแล้วในตารางด้านล่าง

Servers on Premises Servers on Cloud
ซื้อ เช่า
ต้องการพื้นที่ (สร้าง data centers ของตัวเอง) ไม่ต้องการพื้นที่ (บริษัท cloud ลงทุนไว้หมดแล้ว)
ออกค่าไฟและดูแลรักษาเอง จ่ายเงินเฉพาะที่เราใช้เท่านั้น (pay as you go)
scale ยากใช้เงินลงทุนเยอะ scale resources ง่ายมากๆ (elastic)
จำกัดเฉพาะพื้นที่ที่เราสร้าง server ไว้ บริการลูกค้าได้ทั่วโลก

ข้อดีที่สุดของ cloud คือการที่เราสามารถปรับเปลี่ยนขนาด resources (server, storage, computing power) ตามการใข้งานจริง จ่ายเงินเฉพาะที่เราใช้ ไม่จำเป็นต้องลงทุนเยอะๆ (no high investment cost) และไม่ต้องกังวลเรื่อง unused capacity เมื่อเทียบกับ on-premises แบบเก่า แต่ข้อเสียคือเข้ามาใช้บริการแล้วเลิกยาก 555+ เพราะบริษัท cloud เค้าก็พยายามจะล็อคเราไว้กับเค้าเสมอ

ส่วนตัวแอดคิดว่า cloud คืออนาคตจริงๆ เพิ่งไปสอบ AWS Certified Cloud Practitioner มาเมื่อเดือนก่อน ถ้าใครสนใจลองดูรายละเอียดการสมัครสอบได้ที่นี่ ไว้แอดเขียนสรุปให้อ่านอีกที

หน้าที่หลักและความสามารถที่ Data Engineer ต้องมีมีอะไรบ้าง

So What’s Data Engineer?

หวังว่าตอนนี้ทุกคนจะเข้าใจแล้วว่างาน Data Engineer เป็นยังไง ต้องเจอกับอะไรบ้าง มาสรุปกันอีกครั้งหนึ่ง

  • Big Data คือปัจจัยสำคัญที่โลกเราต้องการ data engineer (ข้อมูลมีเยอะ แต่คนจัดการมันได้มีไม่เยอะเท่าไหร่)
  • Data engineer คือคนที่ช่วยให้คนอื่นๆในบริษัททำงานได้ง่ายขึ้น “Data engineers enable data scientists”
  • Data engineer สร้าง data pipeline เพื่อ extract > transform > load ข้อมูลเข้า databases/ warehouse
  • Data engineer ต้องมีความรู้หลายด้านทั้งเรื่อง software engineering และเทคโนโลยี cloud services
  • SQL + Python คือสองภาษาพื้นฐานสำหรับตำแหน่งนี้ เสร็จแล้วเรียน Java, Scala, Shell เพิ่มเติมด้วย

Thank You!

ขอบคุณที่อ่านจนจบคร้าบ บทความนี้คือบทความที่ 100 ของเว็บไซต์เราพอดีเลย ชอบกดไลค์ ใช่กดแชร์ เป็นกำลังใจให้แอดด้วยนะคร้าบ 😚

หน้าที่หลักของ Data Engineer มีอะไรบ้าง

วิศวกรข้อมูล (Data engineer) คือผู้ที่จะนำข้อมูลเข้าระบบ ทำการแปลงข้อมูล ทำเรื่อง Data Cleansing ทำให้ข้อมูลมีความถูกต้องขึ้น ซึ่งงานตรงส่วนนี้ต้องมีความรู้ด้านไอที การพัฒนาโปรแกรมภาษาต่างๆเช่น Python และเทคโนโลยีด้านข้อมูล โดยเฉพาะเรื่องของ Big Data อาทิเช่น Database, Hadoop, Spark และ Cloud services ต่างๆ

ต้องมีทักษะใดจึงจะเป็น Data Engineer ได้

Data Engineer จะต้องมีทักษะในการใช้แพลตฟอร์มสำหรับจัดการ Big Data ซึ่งนั่นหมายความว่าจะต้องมีการอัพเดทแพลตฟอร์มใหม่ ๆ รวมถึงศึกษาและเข้าใจข้อดี-ข้อเสียของหลาย ๆ แพลตฟอร์ม เพื่อประกอบการตัดสินใจเลือกนำมาใช้งานให้เหมาะสมกับองค์กรมากที่สุด

หน้าที่หลักและความสามารถที่ Data Scientist ต้องมีมีอะไรบ้าง

กระบวนการทำงานของอาชีพ Data Scientist คือ ตั้งสมมติฐาน → ค้นคว้าหาข้อมูล → วิเคราะห์ข้อมูล → สร้างแบบจำลอง → สื่อสารผลลัพธ์ ทักษะที่จำเป็น Data Scientist คืออาชีพที่บูรณาการองค์ความรู้หลายด้าน ทั้งทักษะทางตรง (Hard skill) และ ทักษะทางอ้อม (Soft skill) ประกอบไปด้วย

องค์ประกอบใดของ Big Data ที่จะต้องอาศัยทักษะของ Data Engineer

การเชื่อมโยงข้อมูล เป็นส่วนที่สำคัญมาก และเป็นปัญหาใหญ่ในการทำ Big Data Project ต้องอาศัยทักษะของ Data Engineer ทั้งการเขียนโปรแกรมเอง และใช้เครื่องมือที่มีอยู่มากมาย ทั้งนี้การจะออกแบบช่องทางการเชื่อมโยงข้อมูลได้อย่างสมบูรณ์แบบ จำเป็นต้องทราบก่อนว่า จะนำข้อมูลใดไปทำอะไรต่อบ้าง มิเช่นนั้น การสร้างช่องทางการเชื่อมที่ ...