คำถามสัมภาษณ์ Data Engineer แยกตามรอบ

โดย Aaron Cao · อัปเดตเมื่อ

คำถามสัมภาษณ์ Data Engineer แยกตามรอบ
รอบสัมภาษณ์ data engineer ครอบคลุม SQL ขั้นสูง, data modelling, การออกแบบ pipeline และ ETL, distributed processing และรอบ behavioral รอบออกแบบ pipeline คือรอบที่ตัดสินผลลัพธ์ส่วนใหญ่ เพราะถามว่าคุณจัดการ late data, reruns และ failures อย่างไร ไม่ใช่ว่าคุณชอบเครื่องมือไหน

รอบสัมภาษณ์ data engineer ครอบคลุม SQL ขั้นสูง, data modelling, การออกแบบ pipeline และ ETL, distributed processing และรอบ behavioral รอบออกแบบ pipeline คือรอบที่ตัดสินผลลัพธ์ส่วนใหญ่ เพราะถามว่าคุณจัดการ late data, reruns และ failures อย่างไร ไม่ใช่ว่าคุณชอบเครื่องมือไหน

การสัมภาษณ์ data engineer มีกี่รอบ

คุณอาจกำลังเตรียมตัวแบบเดียวกับการสัมภาษณ์ software engineering และสงสัยว่ามันต่างกันตรงไหน ส่วนนี้จะแจกแจงรอบที่การสัมภาษณ์เหล่านี้ใช้ซ้ำ ๆ เพื่อให้คุณโฟกัสเวลาไปที่สองรอบที่แยกผู้สมัครออกจากกันจริง ๆ ด่านเทคนิคทั่วไปไม่ค่อยเป็นจุดที่พลาดข้อเสนองาน

  • SQL Window functions, deduplication และ query performance ส่วนใหญ่เป็นแบบสด
  • Data modelling ออกแบบตารางสำหรับธุรกิจที่ระบุมา แล้วปกป้อง grain ที่คุณเลือก
  • การออกแบบ pipeline และ ETL รอบ system design แบบเปิดกว้างที่โฟกัสการเคลื่อนย้ายข้อมูล
  • Distributed processing เฟรมเวิร์กรันงานของคุณอย่างไรจริง ๆ และทำไมมันช้า
  • Coding Python หรือ Scala มักเบากว่ารอบ software engineering
  • Behavioral เหตุการณ์ on call แดชบอร์ดที่พัง และผู้มีส่วนได้ส่วนเสียที่อยากได้ตัวเลขตั้งแต่เมื่อวาน

ชื่อตำแหน่งทับซ้อนกับ analytics engineering และตำแหน่ง platform อย่างมาก ทำให้สัดส่วนคำถามเปลี่ยนไป คลังคำถามตามบทบาทที่เกี่ยวข้องอยู่ที่ฮับ interview questions by role

คำถาม SQL และ data modelling แบบไหนที่ออก

SQL

  • Deduplicate ตารางให้เหลือแถวล่าสุดต่อหนึ่ง key เท่านั้น
  • เขียน query ที่คืนค่าจำนวน session ของแต่ละ user โดยใช้ช่องว่างการไม่ใช้งาน 30 นาที
  • คำนวณ running total และการเปลี่ยนแปลงแบบเดือนต่อเดือนในคิวรีเดียว
  • หาแถวที่มีอยู่ใน snapshot ของเมื่อวานแต่หายไปในวันนี้
  • QUALIFY ทำหน้าที่อะไร และถ้าไม่มีมันคุณจะเขียนอย่างไร
  • คิวรีนี้สแกนข้อมูลเป็นพันล้านแถวและใช้เวลายี่สิบนาที คุณจะวินิจฉัยอย่างไร
  • อธิบายความต่างระหว่าง partitioning กับ clustering และแต่ละแบบช่วยตอนไหน

Data modelling

  • ออกแบบตารางสำหรับประวัติคำสั่งซื้อของ online marketplace grain ของ fact table คุณคืออะไร
  • อธิบาย star schema และเมื่อไหร่ที่คุณจะ denormalise เพิ่มโดยตั้งใจ
  • slowly changing dimension คืออะไร และคุณจะ implement type two อย่างไร
  • ผู้มีส่วนได้ส่วนเสียต้องการให้รายงานย้อนหลังสะท้อน region ปัจจุบันของลูกค้า อะไรจะพัง
  • คุณจะโมเดล event stream ที่มาถึงแบบ out of order อย่างไร
  • เมื่อไหร่ที่คุณจะเลือก wide table แทน normalised model

รอบ modelling ให้รางวัลกับการฟันธงเลือก grain แล้วปกป้องมัน ผู้สมัครที่อธิบายสามแบบที่เป็นไปได้โดยไม่เลือกสักแบบมักได้คะแนนแย่กว่าผู้สมัครที่เลือกแบบที่สมเหตุสมผลแล้วระบุจุดอ่อนของมัน

คำถาม pipeline และ distributed processing แบบไหนที่ออก

การออกแบบ pipeline และ ETL

  • ออกแบบ pipeline ที่โหลดธุรกรรมรายวันเข้า warehouse เพื่อทำรายงาน
  • ต้นทางส่งข้อมูลของเมื่อวานมาซ้ำอีกครั้ง งานของคุณจะเป็นอย่างไร
  • คุณทำให้ pipeline เป็น idempotent อย่างไร และทำไมมันสำคัญต่อการ rerun
  • คุณจะ backfill ประวัติสองปีโดยไม่รบกวนการโหลดรายวันได้อย่างไร
  • ข้อมูลมาช้าปรากฏขึ้นสามวันหลัง partition ปิดแล้ว คุณจะทำอย่างไร
  • คุณจะตรวจจับได้อย่างไรว่า pipeline สำเร็จแต่ให้ข้อมูลผิด
  • คุณ monitor อะไร และอะไรที่ทำให้มีคน page ตอนตีสาม

Distributed processing และ streaming

  • อะไรทำให้เกิด shuffle และทำไมมันถึงแพง
  • งานของคุณช้า และมี task หนึ่งใช้เวลานานกว่าที่เหลือมาก เกิดอะไรขึ้น
  • อธิบาย data skew และวิธีจัดการสองแบบ
  • เมื่อไหร่ที่คุณจะเลือก streaming แทน batch job ตามกำหนดเวลา
  • exactly once processing รับประกันอะไรจริง ๆ และไม่เป็นจริงตอนไหน
  • watermarks จัดการ out of order events ใน windowed aggregation อย่างไร

สังเกตว่ามีคำถามน้อยมากที่ให้คุณบอกชื่อเครื่องมือ การบอกชื่อเครื่องมือคือจุดเริ่มของคำตอบ ไม่ใช่คำตอบ คำถามต่อเนื่องเสมอคือทำไม และอะไรจะพัง

ควรฝึกซ้อมเรื่องเหล่านี้อย่างไร

การอ่านรายการเหล่านี้สร้างความคุ้นเคย แต่รอบ design ทดสอบสิ่งอื่น คือความสามารถถือระบบไว้ในหัวขณะมีคนขัดจังหวะด้วย failure case ทักษะนั้นได้มาจากการพูดออกแบบออกเสียงเท่านั้น

  • วาดและบรรยาย pipeline ภายในสิบห้านาที Source, landing, transform, serve พร้อมบอกว่าแต่ละขั้นตอนพังได้อย่างไร
  • โจมตีดีไซน์ของตัวเอง หลังฝึกแต่ละรอบ ให้ถามว่าจะเกิดอะไรขึ้นตอน rerun ตอนข้อมูลมาช้า และตอนเปลี่ยน schema
  • เตรียมตัวเลขสำหรับ scale ไว้ให้พร้อม จำนวนแถวต่อวัน ขนาด latency budget การบอก scale ที่สมมติไว้ก่อนคือสิ่งที่ถูกให้คะแนน
  • เขียน SQL ด้วยมือ รอบสัมภาษณ์สดมักใช้ editor ธรรมดาที่ไม่มี autocomplete และรันไม่ได้
  • ซ้อมเล่าเหตุการณ์หนึ่งเรื่องให้ดี อะไรพัง คุณพบมันได้อย่างไร คุณเปลี่ยนอะไรเพื่อไม่ให้เกิดซ้ำ

Data engineer ที่มีประสบการณ์หกปีกับ batch pipelines เตรียมตัวด้วยการทบทวน internals ของเฟรมเวิร์ก แต่ติดขัดตรง "ต้นทางส่งไฟล์ของเมื่อวานมาซ้ำ" เพราะเธอเคยจัดการมันด้วยมือเท่านั้น ไม่เคยอธิบายมันออกมา ความรู้มีอยู่ แต่คำตอบที่พูดออกมาไม่มี การฝึกรอบ design พร้อมคำถามต่อเนื่องคือสิ่งที่โหมด mock interview ถูกสร้างมาเพื่อสิ่งนี้

คำถามที่พบบ่อย

การสัมภาษณ์ data engineer ต่างจากการสัมภาษณ์ software engineer อย่างไร

รอบ coding มักเบากว่า และรอบ design โฟกัสที่การเคลื่อนย้ายข้อมูลแทนที่จะเป็น services คำถามเน้นความถูกต้องภายใต้ reruns, late data และการเปลี่ยน schema ซึ่งไม่ค่อยปรากฏในรอบ design ของ software ทั่วไป

ต้องรู้ Spark โดยเฉพาะไหม หรือแค่เข้าใจแนวคิดก็พอ

แนวคิดครองรอบส่วนใหญ่ ไม่ว่าจะเป็น shuffles, skew, partitioning และทำไมงานถึงช้า ถ้า job description ระบุชื่อเฟรมเวิร์ก ให้คาดว่าจะมีคำถามอย่างน้อยหนึ่งข้อเกี่ยวกับ execution model ของมัน จึงควรอธิบายได้ว่าเกิดอะไรขึ้นตอนงานของคุณรัน

การสัมภาษณ์เหล่านี้ทดสอบ data modelling มากแค่ไหน

มากกว่าที่ผู้สมัครส่วนใหญ่คาดไว้ star schemas, grain ของ fact table และ slowly changing dimensions ออกเป็นประจำ และผู้สัมภาษณ์จะซักผลของทางเลือกคุณแทนที่จะถามนิยามจากตำรา

เหตุผลที่พบบ่อยที่สุดที่ผู้สมัครพลาดในรอบสัมภาษณ์ data engineer คืออะไร

การออกแบบ pipeline ที่ทำงานได้เฉพาะ happy path ผู้สัมภาษณ์จงใจใส่ reruns, การส่งซ้ำ และข้อมูลมาช้า และดีไซน์ที่ไม่มีคำตอบต่อสิ่งเหล่านี้คือสาเหตุที่พบบ่อยที่สุด

ฝึกรอบ design คนเดียวได้อย่างไร

เลือกธุรกิจที่ระบุมา ออกแบบ pipeline ออกเสียงพร้อมจับเวลา แล้วซักดีไซน์ของตัวเองด้วย failure cases ผู้สัมภาษณ์จำลอง AI ก็รันรอบนี้และแทรกคำถามต่อเนื่องได้เช่นกัน ซึ่งใกล้เคียงแรงกดดันจริงมากกว่า

คำถามที่เกี่ยวข้อง

← เพิ่มเติมเกี่ยวกับ คำถามสัมภาษณ์ตามตำแหน่งและหัวข้อ