ควรคาดหวังคำถามอะไรในการสัมภาษณ์ Snowflake?

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

ควรคาดหวังคำถามอะไรในการสัมภาษณ์ Snowflake?
ควรเตรียมรับคำถามด้านสถาปัตยกรรม (การแยกพื้นที่จัดเก็บออกจากการประมวลผล, virtual warehouse และชั้นบริการคลาวด์) คำถามด้านพื้นที่จัดเก็บ (micro-partition, clustering key และ pruning) คำถามด้านวงจรชีวิตข้อมูล (Time Travel, zero-copy cloning, Snowpipe, stream และ task) ตลอดจนโจทย์สถานการณ์ด้านต้นทุนหรือประสิทธิภาพ เช่น warehouse มีขนาดใหญ่เกินไปหรือ query สแกนข้อมูลมากเกินไป ผู้สัมภาษณ์ให้คะแนนการใช้เหตุผลมากกว่าการท่องจำ

ควรเตรียมรับคำถามด้านสถาปัตยกรรม (การแยกพื้นที่จัดเก็บออกจากการประมวลผล, virtual warehouse และชั้นบริการคลาวด์) คำถามด้านพื้นที่จัดเก็บ (micro-partition, clustering key และ pruning) คำถามด้านวงจรชีวิตข้อมูล (Time Travel, zero-copy cloning, Snowpipe, stream และ task) ตลอดจนโจทย์สถานการณ์ด้านต้นทุนหรือประสิทธิภาพ เช่น warehouse มีขนาดใหญ่เกินไปหรือ query สแกนข้อมูลมากเกินไป ผู้สัมภาษณ์ให้คะแนนการใช้เหตุผลมากกว่าการท่องจำ

การสัมภาษณ์ Snowflake เริ่มด้วยคำถามสถาปัตยกรรมใด?

การสัมภาษณ์ Snowflake มักเริ่มจากสถาปัตยกรรม เพราะคำถามถัดไปทั้งหมดอาศัยพื้นฐานนี้ เตรียมอธิบายองค์ประกอบสามชั้นด้วยคำของคุณเอง ได้แก่ ชั้นพื้นที่จัดเก็บซึ่งเก็บข้อมูลเป็น micro-partition แบบคอลัมน์ที่บีบอัดไว้ในพื้นที่จัดเก็บออบเจ็กต์บนคลาวด์ ชั้นประมวลผลที่ประกอบด้วย virtual warehouse ซึ่งแต่ละแห่งเป็นคลัสเตอร์อิสระสำหรับเรียกใช้ query และชั้นบริการคลาวด์ที่จัดการการยืนยันตัวตน metadata การแยกวิเคราะห์และเพิ่มประสิทธิภาพ query รวมถึง transaction คำถามต่อเนื่องข้อแรกคือเหตุใดการแยกพื้นที่จัดเก็บออกจากการประมวลผลจึงสำคัญ คำตอบคือความเป็นอิสระ หลายทีมสามารถใช้ warehouse ของตนกับข้อมูลชุดเดียวกันโดยไม่แย่งหน่วยประมวลผลเดียวกัน และคุณจ่ายค่าประมวลผลเฉพาะช่วงที่ warehouse ทำงาน

  • Virtual warehouse ขนาด, auto-suspend และ auto-resume รวมถึง multi-cluster warehouse สำหรับรองรับงานพร้อมกัน คำถามต่อเนื่องคือ warehouse ที่ใหญ่ขึ้นช่วยเร่งอะไร และไม่ช่วยอะไร
  • การแคชผลลัพธ์และ metadata query เดิมที่เหมือนกันทุกประการอาจใช้ผลลัพธ์จากแคชได้ จงอธิบายว่าอะไรทำให้แคชใช้ไม่ได้
  • Edition และ account Role, user และลำดับชั้นของ role สำหรับควบคุมการเข้าถึง เตรียมอธิบายว่าเหตุใดการมอบสิทธิ์ให้ role แทน user จึงรองรับการขยายระบบได้ดีกว่า
  • ข้อมูลกึ่งมีโครงสร้าง ชนิดข้อมูล VARIANT วิธีจัดเก็บและ query JSON รวมถึงเมื่อใดควรแยกข้อมูลออกเป็นคอลัมน์

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

ควรเตรียมคำถามด้านพื้นที่จัดเก็บและประสิทธิภาพอะไรบ้าง?

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

  • Micro-partition ข้อมูลถูกเก็บเป็นส่วนย่อยที่แก้ไขไม่ได้ พร้อม metadata เกี่ยวกับช่วงค่าของแต่ละคอลัมน์ คำถามต่อเนื่องคือ optimizer ใช้ metadata นั้นเพื่อข้าม partition อย่างไร และ pruning ขึ้นอยู่กับอะไร
  • Clustering Natural clustering เกิดจากลำดับการโหลด ส่วน clustering key จะจัดระเบียบตารางขนาดใหญ่ใหม่ เพื่อให้การกรองตามคอลัมน์เหล่านั้นทำ pruning ได้ดี คำถามต่อเนื่องคือเหตุใด clustering จึงมีต้นทุนแทนที่จะเป็นประโยชน์ฟรี และคุณตัดสินใจอย่างไรว่าตารางจำเป็นต้องใช้หรือไม่
  • Query profile จุดที่ควรตรวจเมื่อ query ช้า ได้แก่ จำนวน partition ที่สแกนเทียบกับทั้งหมด การล้นไปใช้พื้นที่จัดเก็บในเครื่องหรือระยะไกล และ join ที่ทำให้จำนวนแถวพุ่งสูง
  • Materialized view และ search optimization แต่ละอย่างช่วยเร่งอะไร และเพิ่มต้นทุนการบำรุงรักษาเท่าใด
  • Time Travel และ Fail-safe การ query หรือกู้คืนข้อมูลกลับไปยังสภาพก่อนมีการเปลี่ยนแปลงภายในระยะเวลาเก็บรักษา จงอธิบายว่าระยะเวลาเก็บรักษาเป็นทั้งการตั้งค่าและต้นทุน รวมถึง Fail-safe มีไว้ทำอะไร
  • Zero-copy cloning Clone ใช้ micro-partition พื้นฐานร่วมกันจนกว่าฝั่งใดฝั่งหนึ่งจะเปลี่ยนแปลง จึงสามารถ clone ตารางขนาดใหญ่ได้รวดเร็วและไม่มีต้นทุนในช่วงแรก

สำหรับทุกฟีเจอร์ ให้บอกด้วยว่ามีต้นทุนอะไร ผู้สัมภาษณ์ในบริษัทที่ต้องจ่ายค่าบริการ Snowflake จะให้ความสำคัญกับวิธีคิดเช่นนี้มากกว่าการจำชื่อฟีเจอร์

คำถามสถานการณ์ด้าน pipeline และต้นทุนเป็นอย่างไร?

การสัมภาษณ์ระดับอาวุโสจะยกสถานการณ์มาให้ ตัวอย่างที่พบบ่อยคือ วิศวกรข้อมูลซึ่งสัมภาษณ์ตำแหน่งแพลตฟอร์มวิเคราะห์ข้อมูลในบริษัทประกันได้รับแจ้งว่าค่าใช้จ่าย Snowflake รายเดือนเพิ่มเป็นสองเท่า ทั้งที่ปริมาณข้อมูลแทบไม่เพิ่มขึ้น คำตอบที่ดีจะตรวจสอบตามลำดับว่า warehouse ใดใช้เครดิตมากที่สุด ตั้งค่า auto-suspend ให้ warehouse ที่ไม่ได้ใช้งานหยุดคิดค่าบริการหรือไม่ งานตามกำหนดเวลาใช้ warehouse ที่ใหญ่เกินไปหรือไม่ dashboard ที่ทำงานซ้ำพลาดการใช้แคชผลลัพธ์หรือไม่ และ query บางรายการสแกนทั้งตารางเพราะกรองตามคอลัมน์ที่ข้อมูลไม่ได้ทำ clustering ไว้หรือไม่ ผู้สัมภาษณ์ให้คะแนนลำดับการตรวจสอบ ไม่ใช่วิธีแก้เพียงอย่างเดียว

สถานการณ์อื่นที่พบบ่อย ได้แก่ การนำเข้าข้อมูลต่อเนื่องด้วย Snowpipe เทียบกับการโหลด COPY ตามกำหนดเวลาและ latency ของแต่ละวิธี การบันทึกการเปลี่ยนแปลงด้วย stream และ task รวมถึงวิธีทำให้ task เป็น idempotent ตารางที่มีคน truncate โดยผิดพลาดและวิธีกู้คืนด้วย Time Travel คำขอให้คู่ค้าเข้าถึงข้อมูลแบบอ่านอย่างเดียวโดยไม่คัดลอกข้อมูล ซึ่งต้องใช้ secure data sharing และการออกแบบ role สำหรับองค์กรที่กำลังเติบโต จงระบุข้อจำกัด เลือกกลไก และบอกว่ามีต้นทุนอะไร

ฝึกตอบสถานการณ์เหล่านี้ออกเสียงพร้อมคำถามต่อเนื่องก่อนสัมภาษณ์ โหมด สัมภาษณ์จำลอง จะถามโจทย์สถานการณ์และซักค้าน ส่วนคลังคำถามด้านข้อมูลและวิศวกรรมอื่นๆ รวมอยู่ใน คำถามสัมภาษณ์ตามตำแหน่งและหัวข้อ

ผู้ช่วยสัมภาษณ์ AI ช่วยตอบคำถาม Snowflake ได้หรือไม่?

ช่วยได้ในรอบสนทนาโดยมีขอบเขตที่ชัดเจน แอปเดสก์ท็อปแบบเนทีฟสำหรับ macOS และ Windows ของ SubcueAI รับเสียงจากระบบและไมโครโฟนของคุณ แล้วแสดงคำแนะนำคำตอบสั้นๆ ในโอเวอร์เลย์ภายในเครื่อง ดังนั้นเมื่อผู้สัมภาษณ์ถามว่า clustering key ต้องแลกอะไรเพื่อให้ pruning ดีขึ้น กลไกดังกล่าวจะปรากฏบนหน้าจอขณะที่คุณอธิบายด้วยคำของตนเอง ส่วนส่วนขยายเบราว์เซอร์รองรับการประชุมผ่านแท็บบน Chrome และ Edge โดยรับเฉพาะเสียงจากแท็บการประชุม ไม่มีบอตเข้าร่วมสายและไม่มีสิ่งใดถูกแทรกลงในหน้าการประชุม ดูวิธีตั้งค่าได้ที่หน้า บทแนะนำ

ข้อจำกัดคือ ไม่ครอบคลุมการประเมิน SQL ที่มีผู้คุมสอบ การบันทึกหน้าจอ แล็ปท็อปที่บริษัทจัดการ หรือแบบฝึกหัดสดที่คุณเขียน query ภายใต้การสังเกต Aaron Cao ผู้ก่อตั้ง SubcueAI อธิบายว่าผลิตภัณฑ์นี้เป็นตัวช่วยเตือนสิ่งที่คุณรู้อยู่แล้ว ไม่ใช่สิ่งทดแทนความรู้ของคุณ จึงทำงานโดยอิงจากเรซูเม่และสำนวนของคุณเอง ดูรายละเอียดขอบเขตได้ที่ กลุ่มเนื้อหาเรื่องการตรวจจับ

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

เหตุใด Snowflake จึงแยกพื้นที่จัดเก็บออกจากการประมวลผล?

เพื่อให้ virtual warehouse หลายแห่ง query ข้อมูลชุดเดียวกันได้อย่างอิสระโดยไม่แย่งหน่วยประมวลผล และคิดค่าประมวลผลเฉพาะช่วงที่ warehouse ทำงาน พื้นที่จัดเก็บเติบโตตามข้อมูล ส่วนการประมวลผลเติบโตตามปริมาณงาน ทั้งสองส่วนจึงขยายแยกกันได้

Micro-partition คืออะไร?

ส่วนย่อยของตารางแบบคอลัมน์ที่บีบอัดและแก้ไขไม่ได้ พร้อม metadata เกี่ยวกับช่วงค่าของแต่ละคอลัมน์ Optimizer ใช้ metadata นั้นเพื่อข้าม partition ที่ query ไม่จำเป็นต้องใช้ ซึ่งก็คือ pruning ที่คำตอบด้านประสิทธิภาพส่วนใหญ่อาศัย

ตาราง Snowflake ควรมี clustering key เมื่อใด?

เมื่อเป็นตารางขนาดใหญ่ query กรองตามคอลัมน์เพียงไม่กี่คอลัมน์ และลำดับการโหลดตามธรรมชาติไม่ได้จัดค่าดังกล่าวให้อยู่ด้วยกัน การบำรุงรักษา clustering ใช้เครดิต จึงควรตัดสินใจจาก query profile ไม่ใช่กำหนดเป็นค่าเริ่มต้น

Zero-copy cloning คืออะไร?

Clone ชี้ไปยัง micro-partition ชุดเดียวกับต้นฉบับ จึงสร้างได้รวดเร็วและไม่เพิ่มพื้นที่จัดเก็บจนกว่าฝั่งใดฝั่งหนึ่งจะเปลี่ยนแปลง เป็นวิธีมาตรฐานสำหรับสร้างสำเนาข้อมูล production เพื่อใช้ทดสอบหรือพัฒนา

SubcueAI ช่วยระหว่างการทดสอบ Snowflake SQL ที่มีผู้คุมสอบได้หรือไม่?

ไม่ได้ การประเมินที่มีผู้คุมสอบหรือมีการบันทึกอยู่นอกขอบเขต และการเขียน query ภายใต้การสังเกตต้องเป็นผลงานของคุณเอง SubcueAI ออกแบบมาสำหรับรอบสนทนา ส่วนโหมดสัมภาษณ์จำลองมีไว้ให้ฝึกก่อนถึงรอบเหล่านั้น

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

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