ควรคาดหวังคำถามอะไรในการสัมภาษณ์ Snowflake?
โดย Aaron Cao · อัปเดตเมื่อ

ควรเตรียมรับคำถามด้านสถาปัตยกรรม (การแยกพื้นที่จัดเก็บออกจากการประมวลผล, 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 อธิบายว่าผลิตภัณฑ์นี้เป็นตัวช่วยเตือนสิ่งที่คุณรู้อยู่แล้ว ไม่ใช่สิ่งทดแทนความรู้ของคุณ จึงทำงานโดยอิงจากเรซูเม่และสำนวนของคุณเอง ดูรายละเอียดขอบเขตได้ที่ กลุ่มเนื้อหาเรื่องการตรวจจับ