پوشش دقیق حوزههای آزمون
این بانک سوالات تمرینی مستقیماً با لایههای معماری و الگوهای عملکردی که در مصاحبههای فنی حرفهای Snowflake مورد بررسی قرار میگیرند، مطابقت دارد.
مبانی انبار داده (۲۰٪): معماری دادههای مشترک چند-کلاستری، لایههای مجزای ذخیرهسازی و پردازش، مکانیسمهای Micro-partition، مدیریت متادیتای ساختاری و حاکمیت دادههای سازمانی.
SQL و بهینهسازی کوئری (۲۵٪): نوشتن کوئریهای تحلیلی SQL، تحلیل Query Profile، بهرهبرداری از Result Caches، کشهای متادیتای محلی و کش دیسک از راه دور، و مدیریت Materialized Views.
بارگذاری و تبدیل دادهها (۱۵٪): وارد کردن دادههای حجیم از طریق COPY INTO، استریم مداوم با Snowpipe، نگاشت دادههای ساختاری، بررسی کیفیت دادهها و اجرای توابع اعتبارسنجی داده.
امنیت و کنترل دسترسی (۱۰٪): طراحی کنترل دسترسی مبتنی بر نقش (RBAC) سلسلهمراتبی، پروتکلهای احراز هویت کاربر، رمزگذاری سرتاسری دادهها، سیاستهای شبکه و چارچوبهای انطباق.
بهینهسازی عملکرد و مانیتورینگ (۱۵٪): مقیاسبندی انبارهای مجازی (Scale Up vs Scale Out)، ارزیابی معیارهای عملکرد کوئری، بررسی توزیع دادهها، تنظیم مانیتورهای منابع و ایجاد هشارهای خودکار.
حاکمیت داده و انطباق (۵٪): تنظیم تگگذاری اشیاء، ردیابی Lineage دادهها، کاتالوگهای کشف داده، پیادهسازی ماسک کردن پویا، امنیت در سطح ردیف و رعایت الزامات قانونی.
ابر و یکپارچهسازی (۵٪): تنظیمات چند-ابری بینمنطقهای (AWS, Azure, GCP)، پیکربندی یکپارچهسازی امن با خط لولههای ETL/ELT، بهینهسازی ابزارهای BI، نقاط اتصال REST API و امنیت یکپارچهسازی ذخیرهسازی.
مباحث پیشرفته و بهترین تجربیات (۵٪): تسلط بر نگهداری Time Travel، کپیبرداری بدون کپی (Zero-copy cloning)، مدیریت Clustering Keys، پارتیشنبندی خودکار دادهها، فشردهسازی دادههای ساختاری و چرخه عمر حفاظت مداوم از دادهها (CDP).
درباره این دوره
قبولی در مصاحبه برای نقشهای توسعهدهنده Snowflake، مهندس داده یا معمار انبار داده ابری، بسیار فراتر از دانستن نحوه ایجاد یک انبار مجازی است. مصاحبهکنندگان معمولاً به مکانیسمهای Query Profile، مدیریت هزینه، Pruning در micro-partitionها و ساختارهای پیچیده کنترل دسترسی میپردازند. من این بانک سوالات جامع را به عنوان آخرین بازبینی ساختاری شما قبل از ورود به مراحل فنی حساس طراحی کردهام.
با ۵۵۰ سوال بسیار فنی و مبتنی بر سناریو، این منبع بر چالشهای سطح عملیاتی تمرکز دارد. من کوئریهای دنیای واقعی که دچار گلوگاه شدهاند، پیکربندیهایی که باعث افزایش هزینهها میشوند و تنظیمات امنیتی که در ممیزیها رد میشوند را تحلیل کردهام. هر سوال شامل یک تحلیل فنی جامع است که توضیح میدهد چرا گزینه صحیح بهینهترین انتخاب است و چرا گزینههای دیگر یا الگوهای ضد-معماری هستند و یا از نظر فنی نادرست میباشند. چه هدف شما انتقال به مهندسی انبار داده ابری باشد و چه بخواهید مهارتهای خود را برای ارتقای شغلی داخلی تایید کنید، این مخزن تمرینات دقیقی را فراهم میکند تا در اولین تلاش، مراحل فنی را با اعتماد به نفس پشت سر بگذارید.
نمونه سوالات تمرینی
برای بررسی عمق و فرمت توضیحات ارائه شده در این بانک سوالات، این سه نمونه سوال فنی را بررسی کنید.
سوال ۱: ارزیابی Micro-Partition Pruning و عملکرد Custom Clustering
یک مهندس داده یک کوئری تحلیلی را اجرا میکند که جدولی عظیم را بر اساس ستون TRANSACTION_TIMESTAMP با کاردینالیتی بالا فیلتر میکند. پروفایل کوئری نشان میدهد که سیستم به جای Pruning میکرو-پارتیشنها، در حال انجام Full Table Scan است که باعث تأخیر غیرقابل قبول در کوئری میشود. جدول دارای Custom Clustering Key تعریف شده نیست. کدام اقدام این مشکل را بهینهترین شکل حل میکند؟
الف) مرتبسازی دستی دادههای جدول با استفاده از عبارت ORDER BY و بازنویسی آن در یک جدول استاتیک جدید به صورت روزانه.
ب) تعریف یک کلید کلاسترینگ سفارشی روی عبارت DATE(TRANSACTION_TIMESTAMP) اگر کوئریها عمدتاً بر اساس تاریخ فیلتر میکنند.
ج) حذف و ایجاد مجدد انبار مجازی برای پاکسازی کامل کشهای اجرای SSD محلی.
د) تغییر کوئری برای اجبار به Join با یک جدول موقت حاوی تاریخهای فیلتر منحصربهفرد.
ه) تغییر نوع ذخیرهسازی جدول از permanent به transient برای افزایش سرعت IOPS خواندن خام.
و) افزایش اندازه انبار مجازی از Medium به 4X-Large برای دور زدن محدودیت Pruning از طریق قدرت پردازشی خام.
پاسخ صحیح و توضیح:
پاسخ صحیح: ب
چرا صحیح است: Snowflake چیدمان دادهها را به طور خودکار با استفاده از ترتیب ورود طبیعی مدیریت میکند. اما اگر یک ستون Timestamp با کاردینالیتی بالا به دلیل فیلتر کردن بر اساس قطعات تاریخ دچار افت Pruning شود، تعریف یک کلید کلاسترینگ سفارشی با استفاده از عبارتی با کاردینالیتی کمتر مانند DATE(TRANSACTION_TIMESTAMP) به سرویس کلاسترینگ پسزمینه کمک میکند تا ردیفهای مرتبط را در کنار هم قرار دهد و بازدهی Pruning را به شدت افزایش دهد.
چرا گزینههای دیگر نادرست هستند:
گزینه الف نادرست است: مرتبسازی دستی یک ضد-الگو است؛ سرویس کلاسترینگ خودکار Snowflake این کار را به طور بومی و بدون مختل کردن دسترسی به جدول تولیدی انجام میدهد.
گزینه ج نادرست است: پاکسازی کشهای SSD محلی از طریق دستکاری انبار در واقع باعث کاهش عملکرد کوئریهای بعدی میشود زیرا خواندن از ذخیرهسازی راه دور را اجبار میکند.
گزینه د نادرست است: ایجاد Joinهای غیرضروری با جداول موقت، پیچیدگی کامپایل و سربار متادیتای را افزایش میدهد بدون اینکه تراز فیزیکی پارتیشنها را اصلاح کند.
گزینه ه نادرست است: جداول Transient قابلیتهای نگهداری داده برای Time Travel را تغییر میدهند اما موتور Pruning یا چیدمان ستونی را تغییر نمیدهند.
گزینه و نادرست است: اگرچه انبار بزرگتر دادههای Prune نشده را سریعتر پردازش میکند، اما ریشه ساختار پارتیشن را اصلاح نمیکند و باعث مصرف بسیار زیاد و هدررفت Credit میشود.
سوال ۲: پیکربندی ورود مداوم و Idempotent دادهها از طریق Snowpipe
یک تیم داده استریم Snowpipe را برای بارگذاری مداوم فایلهای JSON از یک Bucket AWS S3 به یک جدول Staging پیکربندی میکند. به دلیل مکانیزم Retry در سیستم بالادستی، برخی فایلها با محتوای یکسان اما نامهای جدید دوباره در Bucket آپلود میشوند. معماری ورود داده Snowflake چه واکنشی نشان میدهد و چگونه Idempotency مطلق را تضمین میکنید؟
الف) Snowpipe فقط نام مسیر فایل را ردیابی میکند؛ اگر نام فایل تغییر کند، فایل را دوباره بارگذاری میکند، به این معنی که باید تکراریها را با استفاده از Deduplication در SQL بالادستی مدیریت کنید.
ب) Snowpipe به طور بومی یک هش SHA-256 از کل محتوای فایل محاسبه میکند و به طور خودکار فایلهایی با محتوای تکراری را بدون توجه به نام فایل مسدود میکند.
ج) شیء PIPE به طور خودکار خطای اجرا صادر کرده و بارگذاری را متوقف میکند هرگاه ساختار محتوای یکسانی به Cloud Stage برسد.
د) باید از پارامتر FORCE = FALSE در تعریف Snowpipe استفاده کنید تا موتور را مجبور به تحلیل تاریخچه متادیتای مسیرهای مختلف فایل کنید.
ه) Snowpipe متادیتای شمای داخلی JSON را میخواند؛ اگر کلیدهای تجاری اصلی با یک ردیف موجود مطابقت داشته باشد، عملیات را به یک MERGE خودکار تبدیل میکند.
و) چارچوب یکپارچهسازی ذخیرهسازی ابری، ورود فایلهایی را که اندازه آنها با فایلی که در ۱۴ روز گذشته بارگذاری شده مطابقت دارد، مسدود میکند.
پاسخ صحیح و توضیح:
پاسخ صحیح: الف
چرا صحیح است: Snowpipe از تاریخچه متادیتای ورود برای حفظ Idempotency استفاده میکند و بررسی میکند که آیا یک مسیر نام فایل خاص در بازه ۱۴ روزه پردازش شده است یا خیر. اگر سیستم بالادستی نام فایل را تغییر دهد، Snowpipe آن را به عنوان یک فایل کاملاً جدید تلقی کرده و دوباره پردازش میکند. برای تضمین Idempotency سختگیرانه در برابر محتواهای تکراری با نامهای متغیر، باید از یک جدول Staging استفاده کرده و دادهها را از طریق Streamها و Taskهای پاییندستی Deduplicate کنید.
چرا گزینههای دیگر نادرست هستند:
گزینه ب نادرست است: Snowpipe به طور خودکار هشهایی از محتوای کامل برای جلوگیری از تکرار در نامهای مختلف فایل ایجاد نمیکند.
گزینه ج نادرست است: Pipeها بر اساس تکرار دادههای تجاری متوقف یا شکست نمیخورند؛ آنها صرفاً روی مسیر متادیتای فایل تمرکز دارند.
گزینه د نادرست است: گزینه FORCE copy پارامتری برای بارگذاریهای حجیم دستی از طریق COPY INTO است، نه یک بازرس محتوای پویا برای Pipeهای مداوم.
گزینه ه نادرست است: Snowpipe صرفاً یک ابزار ورود داده Append-only است؛ نمیتواند منطق Upsert شرطی داخلی را اجرا کند یا کلیدهای اصلی را در لحظه جستجو کند.
گزینه و نادرست است: یکپارچهسازیهای ذخیرهسازی مجوزهای دسترسی بین پلتفرمهای ابری را مدیریت میکنند، نه بررسی تاریخچه اندازه فایلها.
سوال ۳: رفع مشکلات پیچیده ارثبری امتیازات در کنترل دسترسی مبتنی بر نقش (RBAC)
یک مدیر دیتابیس یک نقش امنیتی سفارشی به نام DATA_ANALYST_LEAD ایجاد کرده و مالکیت یک Schema را به آن میدهد. سپس نقش DATA_ANALYST_LEAD را به نقش سیستمی SYSADMIN میبخشد. با این حال، کاربرانی که به نقش SECURITYADMIN اختصاص یافتهاند گزارش میدهند که نمیتوانند جداول زیرمجموعه در آن Schema را مشاهده یا ویرایش کنند. دلیل این رفتار ساختاری چیست؟
الف) نقشهای سفارشی نمیتوانند امتیازات را به سمت بالای نقشهای سیستمی ارثبری کنند مگر اینکه دیتابیس روی Standard Edition اجرا شود.
ب) نقشهای سفارشی باید قبل از اینکه مجوزهای اشیاء فرزند توسط مدیران امنیت ردیابی شوند، به USERADMIN داده شوند.
ج) SECURITYADMIN خارج از سلسلهمراتب استاندارد مالکیت اشیاء دیتابیس قرار دارد؛ این نقش مجوزهای جهانی (Global Grants) را مدیریت میکند اما امتیازات اشیاء را از SYSADMIN ارثبری نمیکند.
د) مالکیت Schema با پارامتر WITH MANAGED ACCESS اعمال نشده است، که باعث قطع کامل ارثبری نقش میشود.
ه) نقشهای سفارشی به محض اینکه به یک نقش در سطح مدیریتی داده شوند، تمام حقوق دسترسی ساختاری خود را از دست میدهند.
و) مدیر در اجرای دستور کامپایل جهانی سیستم برای پاکسازی کش نقشهای فعال شکست خورده است.
پاسخ صحیح و توضیح:
پاسخ صحیح: ج
چرا صحیح است: در معماری امنیتی Snowflake، سلسلهمراتب نقشها به سمت بالا جریان دارد. نقشهای تعریف شده توسط سیستم وظایف متمایزی دارند: SYSADMIN در راس سلسلهمراتب ایجاد اشیاء قرار دارد، در حالی که SECURITYADMIN مجوزهای جهانی و Grantها را مدیریت میکند. چون SYSADMIN حقوق خود را به سمت پایین به SECURITYADMIN ارث نمیبرد، دادن یک نقش سفارشی به SYSADMIN باعث دسترسی اعضای آن میشود، اما این امتیازات در سطح شیء را به کاربران SECURITYADMIN گسترش نمیدهد.
چرا گزینههای دیگر نادرست هستند:
گزینه الف نادرست است: مدلهای ارثبری امتیازات اشیاء در تمام نسخههای محصول Snowflake یکسان است.
گزینه ب نادرست است: USERADMIN به طور خاص بر ایجاد کاربران و نقشهای سفارشی تمرکز دارد و مسیرهای مالکیت اشیاء دیتابیس را ردیابی یا نگاشت نمیکند.
گزینه د نادرست است: Schemaهای Managed Access کنترل Grantها را در مالک Schema متمرکز میکنند، اما سلسلهمراتب اصلی نقشهای سیستم را تغییر نمیدهند.
گزینه ه نادرست است: دادن یک نقش سفارشی به یک نقش بالاتر، دید را به سمت بالا گسترش میدهد و هرگز مجوزهای زیربنایی موجود را حذف نمیکند.
گزینه و نادرست است: تخصیص امتیازات به طور آنی در لایه متادیتای حساب اعمال میشود و نیازی به پاکسازی کش نقش نیست.
چه انتظاراتی داشته باشید
به تستهای سوالات مصاحبه خوش آمدید تا شما را برای ارزیابی سوالات مصاحبه Snowflake آماده کنیم
میتوانید آزمونها را هر چند بار که بخواهید تکرار کنید
این یک بانک سوالات جامع و اورجینال است
در صورت داشتن سوال، از پشتیبانی مدرسان بهرهمند میشوید
هر سوال دارای یک توضیح دقیق است
سازگار با موبایل از طریق اپلیکیشن Udemy
امیدواریم تا الان متقاعد شده باشید! سوالات بسیار بیشتری در داخل دوره وجود دارد.
Interview Questions Tests
مربی در Udemy
نمایش نظرات