Snowflake interview questions in 2026 test whether you can run a governed data and AI platform on a consumption bill, not whether you can recite that storage and compute are separate. Interviewers want to hear how you size and scale virtual warehouses, read a query profile, choose between Snowpipe, Snowpipe Streaming and dynamic tables, roll out masking and row access policies, explain a credit spike, and build a RAG or analytics agent with Cortex AI on the same governed data. This guide collects 55 high-value questions with model answers, from architecture fundamentals to 11 production scenarios.
How to use this guide
Snowflake moves quickly, and several AI products were renamed in 2026. Using current names, and knowing the old ones, shows your knowledge is recent. Generic SQL, warehouse modelling and pipeline theory are covered in our SQL interview questions for data and AI and data engineering interview questions; this page stays on what is specific to Snowflake.
- Freshers and early-career engineers: the three-layer architecture, virtual warehouses and credits, micro-partitions, caching, Time Travel, cloning, stages and COPY INTO.
- Mid-level Snowflake data engineers: clustering, the query profile, Snowpipe and Snowpipe Streaming, streams, tasks, dynamic tables, Snowpark and Iceberg tables.
- Senior engineers and architects: RBAC design, masking, row access and tag-based policies, Horizon Catalog, data sharing and listings, cost control, migrations, and Cortex AI: AI Functions, Cortex Search, Cortex Analyst and Cortex Agents.
Feature status (preview or generally available), edition requirements and regional availability change often. In an interview, it is fine to say "I would check the current documentation for status in our region".
- Architecture fundamentals (Q1βQ9)
- Performance, warehouses and cost (Q10βQ15)
- Loading and pipelines (Q16βQ24)
- Snowpark, containers and Iceberg (Q25βQ29)
- Security and governance (Q30βQ36)
- Data sharing and the Marketplace (Q37βQ38)
- Cortex AI (Q39βQ44)
- Real-world scenario questions (Q45βQ55)
- Key takeaways
- Interview preparation checklist
- FAQ
Architecture fundamentals
1. Explain the Snowflake architecture and its three layers.
Answer: Snowflake has three layers: database storage, compute and cloud services. Storage holds table data in a compressed, columnar format in cloud object storage that Snowflake manages. Compute is made of virtual warehouses, independent MPP clusters that run queries and code. Cloud services is the coordinating layer: authentication and access control, metadata management, query parsing and optimisation, transaction management and infrastructure management.
Snowflake calls this a hybrid of shared-disk (one central copy of data) and shared-nothing (MPP warehouses processing in parallel with local caches). The consequence: storage and compute scale independently, and many warehouses work on the same data without competing for CPU, so month-end BI cannot slow the nightly ELT.
+--------------------------------------------+ | Cloud services: auth, metadata, optimiser, | | transactions, access control | +--------------------------------------------+ | | | [WH: ELT] [WH: BI] [WH: data science] | | | +--------------------------------------------+ | Storage: micro-partitions in object store | +--------------------------------------------+
2. What is a virtual warehouse and how is it billed?
Answer: A virtual warehouse is a named cluster of compute that executes SQL, DML and Snowpark code. You choose a size (X-Small upwards, each size roughly doubling the compute and the credit rate of the one below), and set auto-suspend and auto-resume. Warehouses consume credits only while running, billed per second with a 60-second minimum each time the warehouse starts.
A short auto-suspend saves credits but discards the local cache, and a warehouse resuming every few seconds pays the minimum repeatedly. Separate warehouses per workload give isolation and clean cost attribution. A larger warehouse often finishes a heavy query proportionally faster at similar cost, but does not help small queries.
3. What are micro-partitions and how does pruning work?
Answer: Snowflake automatically splits every table into micro-partitions, each holding roughly 50β500 MB of uncompressed data, stored by column and compressed per column. For each micro-partition, the cloud services layer keeps metadata such as the minimum and maximum value of each column and distinct counts. When a query filters on a column, the optimiser uses that metadata to skip micro-partitions that cannot contain matching rows. That is pruning.
You never declare partitions. Micro-partitions are formed in insertion order, so a table loaded daily is naturally well clustered on load date and badly clustered on, say, customer ID. Pruning quality shows up in the query profile as partitions scanned versus partitions total. Micro-partitions are immutable: an UPDATE writes new micro-partitions rather than editing old ones, which is also what makes Time Travel and cloning cheap.
4. Describe the caching layers in Snowflake.
Answer: There are three that matter in interviews:
- Result cache (persisted query results): held by the cloud services layer. If the same query text runs again, the underlying data has not changed, the role has the required privileges and the query has no non-deterministic functions, Snowflake returns the stored result without using a warehouse. Results are kept for 24 hours, and each reuse extends that, up to 31 days from first execution. The
USE_CACHED_RESULTparameter turns it off, which you should do when benchmarking. - Warehouse cache (local disk): each running warehouse caches table data it has read on local SSD. Repeated scans of the same data are faster. The cache is lost when the warehouse suspends, which is the trade-off against aggressive auto-suspend.
- Metadata: because min/max and row counts are kept in metadata, queries such as
COUNT(*)orMAX(order_date)on a table can often be answered without scanning data.
Interview tip: A common trap is "the query was fast the second time, so we fixed it". Ask whether it hit the result cache.
5. What is the difference between Time Travel and Fail-safe, and how do table types affect them?
Answer: Time Travel lets you query, clone or restore data as it existed in the past, using AT or BEFORE with a TIMESTAMP, an OFFSET in seconds or a STATEMENT (query ID), and recover dropped objects with UNDROP. Retention is set by DATA_RETENTION_TIME_IN_DAYS: 1 day by default, and on Enterprise Edition up to 90 days for permanent objects. An account-level MIN_DATA_RETENTION_TIME_IN_DAYS can set a floor.
Fail-safe is a further 7-day period for permanent tables after Time Travel ends. It is not self-service: only Snowflake can recover data from it, as a disaster-recovery measure. Transient and temporary tables have no Fail-safe and at most 1 day of Time Travel, which makes them cheaper for staging data you can rebuild. Both periods cost storage, so a high-churn table with 90-day retention can carry far more storage than its current size suggests.
SELECT * FROM orders AT(OFFSET => -60*30);
CREATE TABLE orders_restore CLONE orders
BEFORE(STATEMENT => '<query_id_of_bad_delete>');
6. How does zero-copy cloning work and what are its gotchas?
Answer: CREATE ... CLONE copies metadata only: the clone points at the same micro-partitions as the source, so it is fast and initially costs no extra storage. As either side is modified, new micro-partitions are written and only those are charged separately. You can clone databases, schemas, tables, streams, stages and more, and combine cloning with Time Travel to clone a past state.
Gotchas interviewers like:
- Child objects in a cloned database or schema keep their grants, but the cloned container itself does not inherit the source container's grants. Use
COPY GRANTSwhere supported. - Tasks in a clone are suspended by default, so a cloned dev environment does not suddenly start running production jobs.
- Unconsumed stream records are not carried over, and internal stages are only included if you ask for them.
- A clone of a production table still contains production PII. Policies attached to the data travel with it, but a dev team with broad roles may see more than intended.
7. How does Snowflake handle semi-structured data?
Answer: JSON, Avro, Parquet, ORC and XML can be loaded into a VARIANT column (or OBJECT/ARRAY). Snowflake stores common paths inside the VARIANT in a columnar way where it can, so querying payload:customer.id::STRING is often efficient. LATERAL FLATTEN explodes arrays into rows. Structured types (typed ARRAY, OBJECT and MAP) are also available for stricter schemas.
A common pattern lands raw events as VARIANT for flexibility and replay, then promotes frequently queried fields into typed columns, which prune more predictably and are easier to govern with masking policies.
8. What consumes credits in Snowflake?
Answer: Speaking generally, Snowflake billing has several parts:
- Virtual warehouse compute: credits per second while running, scaled by size and cluster count.
- Serverless features: Snowpipe, Snowpipe Streaming, serverless tasks, automatic clustering, search optimization maintenance, materialized view maintenance, Cortex Search serving and others, each with its own metering.
- Cloud services: charged only when daily usage exceeds a threshold relative to warehouse usage, so it is usually small unless you run huge volumes of metadata-heavy operations.
- AI services: Cortex AI Functions are billed on tokens (or pages for document parsing), converted to credits.
- Storage and data transfer: billed separately from credits, including Time Travel and Fail-safe bytes, and egress across regions or clouds.
Rates depend on edition, cloud and region; quote the mechanism, not a price. The SNOWFLAKE.ACCOUNT_USAGE views (for example WAREHOUSE_METERING_HISTORY and METERING_HISTORY) are where you attribute spend.
9. What are stages and file formats?
Answer: A stage is a location files are loaded from or unloaded to. Internal stages live in Snowflake-managed storage: every user has a user stage (@~), every table a table stage (@%table), and you can create named internal stages. External stages point at your own S3, Azure Blob/ADLS or GCS location, ideally through a storage integration so no cloud keys are stored in the stage definition. A file format object (CSV, JSON, Parquet and so on) captures parsing options such as delimiters, compression and null handling, so loading code stays consistent.
Performance, warehouses and cost
10. When do you scale a warehouse up versus out?
Answer: Scale up (a larger size) when individual queries are slow because they need more memory and CPU: large joins, heavy aggregations, spilling to disk. Scale out with a multi-cluster warehouse when the problem is concurrency: many queries queuing because the warehouse is busy, as with a BI tool at 9 a.m.
Multi-cluster warehouses are an Enterprise Edition feature. You set a minimum and maximum cluster count. With max greater than min (auto-scale mode), Snowflake starts and stops clusters based on load, using a scaling policy: Standard favours starting clusters quickly to avoid queuing, Economy favours keeping clusters fully loaded to save credits and tolerates some queuing. With min equal to max (maximized mode) all clusters run whenever the warehouse runs. Adding clusters does not make a single slow query faster.
11. What are clustering keys and when would you define one?
Answer: A clustering key tells Snowflake which columns to co-locate in micro-partitions. Automatic Clustering then reclusters in the background as a serverless service, which costs credits. Use SYSTEM$CLUSTERING_INFORMATION or SYSTEM$CLUSTERING_DEPTH to see how well a table is clustered on given columns.
Define one when the table is large (multi-terabyte territory), queries filter or join on predictable columns, the query profile shows poor pruning, and the table is queried far more than it changes. Choose low-to-medium cardinality columns or expressions (for example TO_DATE(event_ts) rather than a raw timestamp), and usually no more than a few columns. Avoid clustering small tables, or tables with constant heavy updates, where reclustering cost can exceed the query savings.
Interview tip: Say you would measure before and after: partitions scanned, query time and the automatic clustering credits from AUTOMATIC_CLUSTERING_HISTORY.
12. Compare clustering, the search optimization service, the query acceleration service and materialized views.
Answer: They solve different problems:
| Feature | Helps with | Cost to watch |
|---|---|---|
| Clustering key | Range filters and joins on a few predictable columns in large tables | Serverless reclustering |
| Search optimization service | Selective point lookups, equality and IN filters, substring and LIKE, VARIANT paths, some geospatial | Search access path storage plus serverless maintenance |
| Query acceleration service | Outlier queries with big scans and selective filters on an otherwise right-sized warehouse | Serverless compute, capped by a scale factor |
| Materialized view | Repeated aggregations or projections of a single table | Serverless refresh plus storage |
Search optimization and materialized views need Enterprise Edition. Pick based on the query pattern seen in the profile, not by habit.
13. How do you read a query profile to diagnose a slow query?
Answer: Open the query in Snowsight query history and look at the profile's most expensive operators and statistics:
- Partitions scanned versus total: scanning most partitions for a selective filter means poor pruning; look at the filter, functions wrapped around columns, data types and clustering.
- Bytes spilled to local and remote storage: the warehouse ran out of memory. Remote spilling is much worse. Reduce the data processed or use a larger warehouse.
- Exploding joins: a join emits far more rows than went in, typically a missing condition or a many-to-many relationship.
- Queuing and compilation time: time waiting for the warehouse points to concurrency, not the query.
- Bytes from cache: distinguishes a warm run from a cold one.
Query insights (also in the QUERY_INSIGHTS view) add automated recommendations; confirm them against the profile.
14. What are Gen2 and Snowpark-optimized warehouses?
Answer: Gen2 standard warehouses are Snowflake's next-generation standard warehouses, running on faster hardware with software optimisations aimed at analytics and DML-heavy data engineering (delete, update, merge and scans). You request one with GENERATION = '2' (or the older RESOURCE_CONSTRAINT = STANDARD_GEN_2), and Gen2 is now the default for new standard warehouses where the region supports it. Gen2 has its own credit rates, so measure price-performance on your workload rather than assuming it is cheaper.
Snowpark-optimized warehouses provide much more memory per node and are meant for memory-intensive Snowpark work, such as training a model in a stored procedure or a Python UDF that loads a large library. Do not use them for ordinary SQL.
15. How do resource monitors and budgets differ?
Answer: A resource monitor tracks credits used by warehouses only. It has a credit quota and a reset frequency (daily, weekly, monthly, yearly or never), and triggers at thresholds that can NOTIFY, SUSPEND (let running queries finish, then suspend) or SUSPEND_IMMEDIATE (cancel running queries). You can set one account-level monitor and any number of warehouse-level monitors. Only ACCOUNTADMIN creates them initially, though MONITOR and MODIFY can be granted.
Resource monitors cannot track serverless features or AI services. Budgets cover those: you define a spending limit for the account or for a group of objects and get notified as spend is projected to exceed it. A mature setup uses both: hard stops on development warehouses, notifications on production warehouses (you rarely want to suspend production mid-close), and budgets around serverless and Cortex usage.
Loading and pipelines
16. How does COPY INTO work and how does it avoid loading a file twice?
Answer: COPY INTO <table> FROM @stage bulk-loads files using a user-chosen warehouse. It records load metadata per table for 64 days, so files already loaded with the same name and checksum are skipped (FORCE = TRUE overrides that). Useful options include ON_ERROR (abort, continue or skip a file), VALIDATION_MODE to test without loading, PATTERN to select files, MATCH_BY_COLUMN_NAME for Parquet and other self-describing formats, and simple transformations in a SELECT over the stage.
Load throughput depends mainly on the number and size of files, because files are spread across warehouse threads. Thousands of tiny files, or one enormous file, load poorly whatever the warehouse size; moderately sized compressed files load well. That is why "we doubled the warehouse and the load didn't get faster" is a classic interview story.
17. What is Snowpipe and when would you use it instead of COPY?
Answer: Snowpipe is continuous, serverless loading of files as they arrive. A pipe object wraps a COPY statement. With auto-ingest, cloud event notifications (S3 event notifications through SQS, Azure Event Grid, GCS Pub/Sub) tell Snowflake about new files; alternatively, an application calls the Snowpipe REST endpoints with file names. Snowflake supplies the compute, so there is no warehouse to manage.
Use Snowpipe when files arrive continuously in small batches and you want minutes-level latency without scheduling. Use COPY for scheduled bulk loads, backfills and when you need control over the warehouse. Snowpipe keeps its own load history for 14 days (versus 64 for COPY), which matters if you ever mix the two on one table or replay old files.
18. What is Snowpipe Streaming and how is it different from Snowpipe?
Answer: Snowpipe Streaming writes rows directly into tables through an SDK or REST API, without staging files first, giving seconds-level ingest-to-query latency. The recommended high-performance architecture uses a PIPE object as the entry point (which can apply COPY-style transformations in flight), SDKs for Java, Python and Node.js on a shared client core, and throughput-based billing per uncompressed GB ingested. The classic architecture remains for existing deployments.
Channels carry the rows. Elastic channels are managed by Snowflake and scale with traffic, with at-least-once delivery and no ordering. Named channels give ordered, exactly-once ingestion per channel using offset tokens, which suits Kafka partitions or CDC streams: on restart, the client reads the last committed offset token and resumes from there. Rule of thumb: files landing in object storage, use Snowpipe; events in a stream or application, use Snowpipe Streaming. Our Kafka interview questions cover the producer side.
19. What is a stream in Snowflake?
Answer: A stream is change tracking on a table, view or similar object. It records an offset, and when queried returns the rows changed since that offset with metadata columns: METADATA$ACTION (INSERT or DELETE), METADATA$ISUPDATE (TRUE when the pair came from an UPDATE) and METADATA$ROW_ID. Types: standard (inserts, updates, deletes, as a net delta), append-only (inserts only, cheaper for insert-heavy tables) and insert-only (for externally managed Iceberg and external tables).
Two behaviours are tested often: the offset only advances when the stream is consumed in a committed DML statement (a plain SELECT does not move it), and a stream becomes stale if not consumed within the source's retention period (temporarily extended up to MAX_DATA_EXTENSION_TIME_IN_DAYS).
20. How do tasks work, and what is the difference between serverless and user-managed tasks?
Answer: A task runs a SQL statement, a stored procedure call or procedural logic on a schedule (SCHEDULE = '15 MINUTES' or a CRON expression) or when a condition is met, typically WHEN SYSTEM$STREAM_HAS_DATA('my_stream'), which skips the run cheaply if there is nothing to process. Tasks form task graphs: a root task, dependent child tasks that can run in parallel or in sequence, and an optional finalizer task that always runs at the end, which is useful for clean-up and alerts.
Serverless tasks let Snowflake choose and adjust compute (up to a size limit) and bill for actual compute used; they need the EXECUTE MANAGED TASK privilege. User-managed tasks run on a warehouse you specify, which is better when the warehouse is already running or you need a specific size. Every task owner needs EXECUTE TASK at account level.
21. What are dynamic tables?
Answer: A dynamic table is defined by a SELECT, and Snowflake keeps its result fresh within a declared TARGET_LAG (for example '10 minutes', with a minimum of 60 seconds). Snowflake tracks dependencies between dynamic tables and schedules refreshes so the whole pipeline meets its lag. An intermediate table can use TARGET_LAG = DOWNSTREAM, meaning "refresh only when something downstream needs it".
Refresh modes include INCREMENTAL (process only changes), FULL (recompute) and AUTO (Snowflake chooses at creation time based on the query); newer modes are documented too, so check the current list. Not every query can refresh incrementally, so check the chosen mode after creation, because an unexpectedly FULL refresh on a large table is a cost problem. A warehouse is specified for refresh compute.
CREATE DYNAMIC TABLE daily_sales
TARGET_LAG = '30 minutes'
WAREHOUSE = transform_wh
REFRESH_MODE = AUTO
AS
SELECT store_id, TO_DATE(sold_at) AS d,
SUM(amount) AS revenue
FROM raw_sales GROUP BY 1, 2;
22. Dynamic tables or streams and tasks: how do you choose?
Answer: Dynamic tables are declarative: you state the result and the freshness, and Snowflake handles orchestration and incremental processing. They fit transformation pipelines (joins, aggregations, staging to curated layers) where a lag of a minute or more is fine. Streams and tasks are imperative: you write the MERGE, control exactly when and how changes are applied, and can call procedures, external functions or send notifications. They fit complex SCD logic, side effects, strict ordering or anything a SELECT cannot express.
Materialized views are narrower: one base table and limited query shapes. Many teams mix all three, with an external orchestrator where pipelines span systems. See our Airflow interview questions for that orchestration layer.
23. What is Snowflake Openflow?
Answer: Openflow is Snowflake's managed data integration service, built on Apache NiFi, for moving structured and unstructured data between sources and destinations: database CDC, Kafka event streams, SaaS applications and files. It offers prebuilt connectors plus custom flows built from processors. It can be deployed inside Snowflake (running on Snowpark Container Services) or as bring-your-own-cloud, where the data plane runs in your own cloud account while Snowflake manages the control plane, useful when sensitive pre-processing must stay in your network.
Position it next to the alternatives (third-party ELT tools, Kafka connectors, Snowpipe, Snowpipe Streaming) and choose on source types, latency and who operates it.
24. How would you implement an idempotent incremental load with SCD Type 2 history?
Answer: Land changes into a staging table (or read them from a stream), deduplicate to one latest record per business key per batch with QUALIFY ROW_NUMBER() OVER (PARTITION BY key ORDER BY change_ts DESC) = 1, then apply the change in a single transaction: close the current dimension row (set valid_to and is_current = FALSE) for keys whose tracked attributes changed, and insert new current rows. A row hash over tracked attributes makes the change comparison cheap.
Idempotency comes from deterministic deduplication, from comparing hashes so a replayed batch produces no changes, and from consuming the stream inside the same transaction as the MERGE so the offset only advances if the write commits. The generic SQL for this is in our SQL interview guide; the Snowflake-specific part is the stream offset and transaction semantics.
Snowpark, containers and Iceberg
25. What is Snowpark and why does lazy evaluation matter?
Answer: Snowpark is Snowflake's developer framework for Python, Java and Scala. Its DataFrame API builds queries with methods such as filter, join and group_by, and these are translated into SQL and executed inside Snowflake on a warehouse. No separate Spark cluster is involved and data does not leave Snowflake unless you pull it to the client.
Evaluation is lazy: building a DataFrame only builds a query plan; nothing runs until an action such as collect(), show(), count() or a write. That lets Snowflake optimise the whole chain as one query. The classic mistake is calling collect() or to_pandas() on a large DataFrame early, pulling millions of rows to a laptop or a stored procedure's memory. Snowflake also offers a pandas-compatible API (pandas on Snowflake) that pushes pandas-style code down in the same way.
26. Compare UDFs, UDTFs and stored procedures in Snowflake.
Answer: A UDF returns one value per input row and is used inside SQL, written in SQL, Python, Java, Scala or JavaScript. Vectorised Python UDFs receive batches as pandas DataFrames, which is much faster for numeric and ML scoring work. A UDTF returns a table (zero or more rows per input), used with TABLE() and partitioning, for parsing, exploding or per-group processing. A stored procedure runs procedural logic with side effects: issuing DDL and DML, looping, calling other procedures, training a model. It is invoked with CALL.
Stored procedures run with owner's rights (expose a controlled action to a role lacking the underlying privileges) or caller's rights (run with the caller's privileges), a common security follow-up.
27. What is Snowpark Container Services and when would you use it?
Answer: Snowpark Container Services runs OCI container images inside Snowflake. You push images to an image repository in your account, create compute pools (sets of virtual machines, including GPU options), and run long-running services (APIs, web apps, model inference) or job services that run to completion. Containers sit inside Snowflake's governance boundary and can query Snowflake data with the service's role.
Use it when SQL and Snowpark functions are not enough: a custom model server, a self-hosted open-weight LLM or a third-party application. You then own images, scaling and patching, and compute pools bill while running.
28. Explain Apache Iceberg tables in Snowflake.
Answer: Iceberg tables store data as Parquet files with Iceberg metadata in open format, usually in your own cloud storage via an external volume (an account-level object holding the storage location and the IAM identity Snowflake uses). There are two catalog models:
- Snowflake as the catalog (Snowflake-managed): full read/write support with most platform features, while the files stay readable by other engines.
- External catalog: a catalog integration points at a remote Iceberg REST catalog such as AWS Glue or Snowflake Open Catalog, or at metadata files in object storage. Snowflake reads the tables and, where documented, can also write to them.
Trade-offs versus native tables: Iceberg gives you engine interoperability and avoids lock-in, and storage is billed by your cloud provider when it sits on your external volume. Native tables are simpler, fully managed and get every Snowflake feature first. Choose Iceberg when other engines (Spark, Trino, Flink) must work on the same data; choose native tables when Snowflake is the only consumer.
29. How do catalog-linked databases and the Horizon Iceberg REST catalog help interoperability?
Answer: They work in opposite directions. A catalog-linked database connects Snowflake to a remote Iceberg REST catalog and automatically discovers and syncs its namespaces and tables, so you do not register each external table by hand. The Horizon Iceberg REST catalog goes the other way: external engines such as Spark or Trino can read Snowflake-managed Iceberg tables through a standard Iceberg REST interface, with credential vending so the engine gets scoped, temporary storage access instead of permanent keys.
The architecture point is governance: one copy of the data can serve several engines, but you must decide which catalog is the source of truth and where policies are enforced. Our Databricks interview questions cover the same problem from the lakehouse side.
Security and governance
30. Explain Snowflake's access control model and how you would design roles.
Answer: Snowflake combines role-based access control (privileges are granted to roles, roles to users or other roles) with discretionary ownership (each object is owned by a role that can grant on it). Users activate a primary role and can use secondary roles. System roles include ACCOUNTADMIN, SECURITYADMIN (manages grants), USERADMIN (users and roles), SYSADMIN (warehouses and databases) and PUBLIC. Database roles are scoped to one database, which is useful for sharing and for keeping privileges close to the data.
A common, maintainable design:
- Access roles hold privileges on objects (for example
SALES_RO,SALES_RW), often as database roles. - Functional roles map to job functions (analyst, data engineer) and are granted access roles.
- All custom roles roll up to SYSADMIN so administrators can manage objects.
- Future grants on schemas so new tables get the right access automatically; managed access schemas where only the schema owner can grant.
- ACCOUNTADMIN for very few people, with MFA, and never as a default role.
31. How do dynamic data masking policies work?
Answer: A masking policy is a schema-level object with one input data type and a body that returns the value or a masked version, decided at query time. The underlying data is not changed. Policies use context functions such as IS_ROLE_IN_SESSION() (which respects role hierarchy and secondary roles, unlike a plain CURRENT_ROLE() comparison) and can be conditional on other columns. Column-level security, including masking and external tokenization, needs Enterprise Edition or higher.
CREATE MASKING POLICY gov.pii_email AS (v STRING)
RETURNS STRING ->
CASE
WHEN IS_ROLE_IN_SESSION('PII_READER') THEN v
ELSE REGEXP_REPLACE(v, '.+@', '****@')
END;
ALTER TABLE crm.customers MODIFY COLUMN email
SET MASKING POLICY gov.pii_email;
Interview tip: Mention separation of duties: a governance role owns policies and applies them, while table owners cannot remove them.
32. How do row access policies work, and how do they interact with masking?
Answer: A row access policy is a schema-level object that returns BOOLEAN for each row; rows where it returns FALSE are filtered out of SELECT, UPDATE, DELETE and MERGE. It is evaluated with the policy owner's privileges, so it can read a mapping table (for example role-to-region entitlements) that users themselves cannot see. When an object has both a row access policy and masking policies, the row access policy is evaluated first. Enterprise Edition is required.
CREATE ROW ACCESS POLICY gov.region_rap AS (r STRING)
RETURNS BOOLEAN ->
IS_ROLE_IN_SESSION('GLOBAL_ANALYST')
OR EXISTS (SELECT 1 FROM gov.region_map m
WHERE m.region = r
AND IS_ROLE_IN_SESSION(m.role_name));
Keep policy logic simple and mapping tables small and close to the protected data; complex lookups add cost to every query.
33. What are object tags, tag-based masking and sensitive data classification?
Answer: Tags are schema-level objects you assign as key-value metadata to accounts, databases, schemas, tables, columns, warehouses and more, for example pii = 'email' or cost_center = 'risk'. Tags are inherited down the hierarchy and can be queried through Account Usage views, which makes them useful for both governance and cost attribution.
Tag-based masking assigns masking policies to a tag (one policy per data type per tag). Any column carrying that tag is then masked automatically, including new columns that inherit the tag from their schema. A policy assigned directly to a column takes precedence over a tag-based one. Sensitive data classification scans columns and suggests or applies system tags for semantic and privacy categories, so combined with tag-based masking you get a pipeline from "discover PII" to "PII is masked by default". Classification results still need human review.
34. What is Snowflake Horizon Catalog?
Answer: Horizon Catalog is the umbrella for Snowflake's built-in governance, discovery and interoperability capabilities across data inside and outside Snowflake. It covers security and governance (RBAC, masking and row access policies, sensitive data classification, access history, the Trust Center for checking account security configuration), discovery and context (search, object tagging, lineage, semantic views, AI-generated descriptions), data quality monitoring, and interoperability (Iceberg tables, the Horizon Iceberg REST catalog, catalog-linked databases and the internal marketplace).
Avoid describing Horizon as one feature you switch on: it is a set of capabilities you still configure, and the real work is the operating model.
35. How do you audit who accessed sensitive data?
Answer: Use SNOWFLAKE.ACCOUNT_USAGE.ACCESS_HISTORY, which records, per query, which objects and columns were read directly or indirectly (through views) and which were written, and which policies were applied. Combine it with QUERY_HISTORY (who ran what, from which role and warehouse) and LOGIN_HISTORY. Access history needs Enterprise Edition. Lineage in Snowsight shows how data flowed between objects, so you can find downstream copies of a sensitive column.
Real-world example: Consider an insurer whose auditor asks who read policyholder phone numbers last quarter. Filter access history for the tagged columns and join to query history; you also catch reads through views. Account Usage views have some latency, so this suits audit rather than real-time alerting.
36. How do you secure authentication and network access to Snowflake?
Answer: Federate human users through SSO (SAML) with your identity provider and enforce MFA; provision users and roles with SCIM so leavers lose access automatically. For pipelines and applications, create service users (TYPE = SERVICE) that authenticate with key-pair authentication, OAuth or workload identity rather than passwords, and rotate keys. Snowflake has been tightening password-only sign-in, so check the current authentication policy requirements.
For network access, use network policies and network rules to allow known IP ranges, and private connectivity (AWS PrivateLink, Azure Private Link, Google Private Service Connect) where traffic must stay off the public internet.
If you want to practise warehouse design, pipelines and governance hands-on rather than only reading answers, Cloudsoft's HORIZON Data Engineering & AI program covers modern data engineering together with the data foundations that AI systems depend on.
Data sharing and the Marketplace
37. How does Secure Data Sharing work?
Answer: A provider creates a share, grants privileges on objects to it (directly or through database roles), and adds consumer accounts. The consumer creates a read-only database from the share and queries the data in place. No data is copied: the provider pays for storage, the consumer pays for the compute they use to query. You can share tables, dynamic tables, Iceberg tables, secure views, secure UDFs, semantic views, Cortex Search services and more.
Share secure views rather than base tables when you need to filter rows per consumer or hide logic; secure views prevent consumers from seeing the definition or using optimiser side effects to infer hidden data. Direct shares work within one region. For partners without a Snowflake account, a provider can create a reader account, which the provider owns and pays for.
38. What are listings and the Snowflake Marketplace?
Answer: A listing packages a share or a Snowflake Native App with metadata such as description, sample queries and terms. Private listings go to specific accounts in any region or cloud; public listings appear on Snowflake Marketplace. Access can be free, a limited trial or paid. Organizational listings share data products inside one organisation's accounts, the basis of an internal marketplace. Cross-Cloud Auto-Fulfillment replicates listing data to the consumer's region or cloud automatically, which is how you share across regions without managing replication by hand (it does add replication and transfer costs).
Cortex AI
39. What are Cortex AI Functions and how are they used?
Answer: Cortex AI Functions (previously called Cortex LLM functions and then Cortex AISQL) are SQL functions that call LLMs hosted inside Snowflake. The current names use an AI_ prefix, for example AI_COMPLETE (previously COMPLETE), AI_CLASSIFY, AI_FILTER, AI_AGG, AI_EXTRACT, AI_SENTIMENT, AI_SUMMARIZE_AGG, AI_EMBED, AI_SIMILARITY, AI_TRANSLATE, AI_REDACT, AI_TRANSCRIBE and AI_PARSE_DOCUMENT. Helpers include TO_FILE (reference a staged file), PROMPT and AI_COUNT_TOKENS.
SELECT ticket_id,
AI_CLASSIFY(body, ['billing', 'outage', 'other'])
:labels[0]::STRING AS topic
FROM support.tickets
WHERE AI_FILTER(PROMPT('Is this a complaint? {0}', body));
They bring classification, extraction and summarisation into ordinary SQL inside Snowflake's governance boundary. They do not replace evaluation: sample outputs against labelled data before trusting them in a report. Arguments and output shapes evolve, so check the current reference.
40. How do you govern and control the cost of Cortex AI Functions?
Answer: Access: calling AI Functions requires the USE AI FUNCTIONS account privilege and a database role such as SNOWFLAKE.CORTEX_USER or SNOWFLAKE.AI_FUNCTIONS_USER; grant these to specific roles rather than PUBLIC. The CORTEX_MODELS_ALLOWLIST parameter restricts which models users can call, and CORTEX_ENABLED_CROSS_REGION controls whether inference may be processed in another region, a data residency decision for regulated Indian workloads.
Cost: text-generation functions bill input and output tokens, embedding and similarity bill input tokens, document parsing bills by page, converted to credits. Track usage in CORTEX_FUNCTIONS_USAGE_HISTORY and CORTEX_FUNCTIONS_QUERY_USAGE_HISTORY, and set budgets because resource monitors do not cover AI services. Snowflake recommends a warehouse no larger than MEDIUM when calling these functions, because the warehouse is not what does the inference. The biggest saving is design: filter rows before calling a model, avoid reprocessing unchanged rows, and use the cheapest model that meets your evaluation bar.
41. What is Cortex Search and how does it support RAG?
Answer: Cortex Search is a managed retrieval service over text in Snowflake. It combines vector search, keyword search and semantic reranking (hybrid retrieval) so you get good relevance without tuning an index. You create a service over a query: the ON column is searched, ATTRIBUTES columns can be used as filters, WAREHOUSE runs refreshes, TARGET_LAG sets freshness and EMBEDDING_MODEL chooses the embedding model.
CREATE CORTEX SEARCH SERVICE kb.policy_search
ON chunk_text
ATTRIBUTES department, country
WAREHOUSE = search_wh
TARGET_LAG = '1 hour'
AS SELECT chunk_text, doc_title, department, country
FROM kb.policy_chunks;
Applications query it through the REST API or the Python API; SNOWFLAKE.CORTEX.SEARCH_PREVIEW is for testing in SQL. For RAG, you retrieve chunks with filters, then pass them to AI_COMPLETE or an agent. Costs come from refresh compute, embedding tokens, serving (per GB of indexed data per month) and storage. The general patterns behind it are in what is RAG and hybrid search and reranking.
42. What is Cortex Analyst, and what are semantic views?
Answer: Cortex Analyst answers natural-language business questions over structured data by generating SQL. Accuracy depends on a semantic layer: semantic views, which are schema-level objects defining logical tables, relationships, dimensions, facts and metrics with business descriptions and synonyms. Semantic views are the recommended approach; semantic model YAML files on stages are still supported for backward compatibility. Semantic views can also be shared and used by BI tools.
Snowflake's documentation now recommends using Cortex Agents for new work, since an agent can call Cortex Analyst as a tool alongside other tools. The engineering work is in the semantic layer: defining "active customer" or "net revenue" once, adding verified queries for important questions, and testing generated SQL against known answers. Our text-to-SQL agent project walks through the evaluation side.
43. What are Cortex Agents?
Answer: Cortex Agents is Snowflake's managed agent service. An agent is a schema-level object (created in Snowsight, with CREATE AGENT or through the REST API) that plans how to answer a request, calls tools, and composes a response. Tools include Cortex Analyst over semantic views for structured data, Cortex Search for unstructured content, custom tools implemented as stored procedures or UDFs, sandboxed code execution, chart generation, and remote MCP servers, among others; check the current tool list.
Users need the SNOWFLAKE.CORTEX_USER or CORTEX_AGENT_USER database role, privileges on the agent and on the tools it calls; data access is still enforced by roles and policies. Design questions match any agent: narrow tool scopes, limits on side effects, tracing and evaluation. See our agentic AI interview questions for framework-neutral depth.
44. What are Snowflake CoWork and CoCo?
Answer: Both are 2026 renames. Snowflake CoWork (previously Snowflake Intelligence) is Snowflake's ready-to-use agentic application for business users: a conversational interface that answers questions over structured and unstructured data and can take actions, powered by Cortex Agents with Cortex Analyst and Cortex Search as tools. Snowflake CoCo (previously Cortex Code) is an AI coding agent for data engineering, analytics and ML work, available in Snowsight, as a desktop application and as a CLI.
Think in layers: AI Functions are SQL building blocks, Cortex Search and Cortex Analyst are retrieval and text-to-SQL services, Cortex Agents orchestrates them, and CoWork is the end-user application. If an interviewer says "Snowflake Intelligence", answer the concept and mention the current name once.
Real-world scenario questions
45. A finance dashboard query that used to take seconds now takes minutes. How do you investigate?
Answer: Establish what changed (data volume, query text, warehouse, concurrency) and use the query profile to find where time goes before changing anything. Fix the cause, then measure.
What I would check:
- Compare query history for a fast and a slow run: same query hash? Same warehouse and size? Was the fast run a result-cache hit?
- Queuing time: if high, the warehouse is overloaded by concurrency; consider multi-cluster or isolating the dashboard.
- Partitions scanned versus total: did a new filter wrap the date column in a function, or did a type change stop pruning? Has the table grown so clustering no longer matches the filter?
- Bytes spilled: if remote spilling appears, the join or aggregation outgrew the warehouse memory.
- Join row counts: a duplicated key in a dimension table can create an exploding join.
Production consideration: Fix the structure (filter, model, clustering key or a pre-aggregated dynamic table) before reaching for a bigger warehouse, then add a regression check, such as alerting on the dashboard query's elapsed time.
46. Credit consumption doubled overnight. How do you find the cause?
Answer: Break spend down by service type, then by warehouse, then by query, user and role, and compare with the previous period. Credit spikes usually come from a warehouse left running, a resized warehouse, a new or changed workload, or a serverless feature quietly doing more work.
What I would check:
METERING_DAILY_HISTORYby service type: warehouses, serverless tasks, automatic clustering, Snowpipe, search optimization, AI services.WAREHOUSE_METERING_HISTORYby hour: which warehouse, and is it running at hours with no queries (auto-suspend disabled or set very high)?- Recent
ALTER WAREHOUSEchanges: size, max cluster count, scaling policy. - Query history for new high-cost patterns: a BI tool refreshing every minute, a task on a tight schedule, a runaway loop in a procedure.
- Automatic clustering history after a new clustering key or a large backfill on a clustered table.
Production consideration: After the fix, add warehouse-level resource monitors, budgets for serverless and AI spend, tags for cost attribution, and a short change-review step for warehouse settings. Our cloud cost optimization guide covers the FinOps operating model.
47. At month end, BI users report that every query is slow, but each query is simple. What do you do?
Answer: Simple queries that are slow only at peak point to concurrency, not query design. Confirm with queuing time, then scale out rather than up.
What I would check:
- Queued time per query in query history and load charts for the BI warehouse.
- Whether ELT jobs or data science work share that warehouse at month end.
- Whether the BI tool sends many near-identical queries that could hit the result cache, or use extracts or aggregate tables.
- Multi-cluster settings: is max cluster count high enough, and is the scaling policy Economy when users need Standard?
Production consideration: Separate warehouses per workload, a multi-cluster BI warehouse with a sensible maximum, and a resource monitor so scale-out has a ceiling.
48. Someone ran a DELETE without a WHERE clause on a production table an hour ago. How do you recover?
Answer: Use Time Travel. Find the query ID of the bad DELETE in query history, then restore the table as it was just before that statement, either by cloning or by re-inserting the missing rows.
What I would check:
- The query ID and the retention period on the table (is the hour still inside it?).
- Whether downstream jobs have already consumed the change; pause tasks and dynamic tables that would propagate it.
- Clone with
BEFORE(STATEMENT => '<query_id>'), validate row counts, then swap withALTER TABLE ... SWAP WITHor re-insert the deleted rows. - Any legitimate writes since the delete, which must be reapplied if you swap.
Production consideration: Afterwards, remove broad DML privileges from human roles on production, use longer retention for critical tables, and remember Fail-safe is only for Snowflake-assisted disaster recovery, not a self-service undo.
49. A stream-based pipeline stopped loading changes and now reports that the stream is stale. What happened and how do you fix it?
Answer: The stream was not consumed within the source table's retention period (plus any automatic extension), so the change records it needed were no longer available. Usually the consuming task was suspended, failing, or its WHEN condition never ran.
What I would check:
- Task history: when did the consumer last succeed, and why did it stop (suspended after a clone, privilege change, failing MERGE)?
- The source table's retention and
MAX_DATA_EXTENSION_TIME_IN_DAYS. - Recreate the stream, then backfill the gap from the source using a watermark (updated timestamp) or a full reconciliation against the target.
- Check for duplicates or missed deletes after the backfill.
Production consideration: Alert on task failures and on stream staleness (the STALE_AFTER value in SHOW STREAMS and DESCRIBE STREAM), and consider whether a dynamic table would remove the hand-built consumer entirely.
50. A bank wants PII masked across its Snowflake account within a quarter, without breaking reports. How do you roll it out?
Answer: Treat it as a governance programme with an engineering backbone: discover and classify PII, define a small set of policies and the roles allowed to see clear text, attach policies through tags, and roll out in stages with testing against real report workloads.
What I would check:
- Inventory: run sensitive data classification on in-scope schemas; data owners confirm results.
- Policy design: a few masking policies per data type (full mask, partial mask, deterministic hash for joins), owned by a governance role.
- Attach policies to tags so new columns inherit protection; add row access policies where branches must only see their own customers.
- Entitlements: which functional roles genuinely need clear text (fraud operations, KYC), approved by the data owner.
- Impact testing: clone production, apply policies and replay critical report and ETL queries under each role.
- Staged rollout schema by schema, with a rollback plan and notice to report owners.
- Monitoring: access history for clear-text reads of tagged columns.
Production consideration: Masking is one control among several; map the design to DPDP Act obligations with the compliance team (see our DPDP Act guide), and confirm clones and shares are covered too.
51. Build an HR policy assistant on Snowflake using Cortex Search. Walk through the design.
Answer: Consider a GCC in Hyderabad with HR policies as PDFs that differ by country and employee grade. Land the documents in a stage, parse and chunk them, index the chunks with Cortex Search using country and grade as filter attributes, and serve answers through a Cortex Agent or a small application that retrieves, then generates a cited answer.
PDFs in stage
-> AI_PARSE_DOCUMENT -> chunk table
(text, title, country, grade, url)
-> Cortex Search service (TARGET_LAG)
-> Agent / app: search with filters
-> AI_COMPLETE with retrieved chunks
-> answer + citations -> employee
What I would check:
- Parsing quality on tables and scanned pages; chunking by section heading, with the title kept in each chunk (see RAG chunking strategies).
- Permissions: Cortex Search queries run with the service owner's rights, so per-user restrictions must be enforced by mandatory filters set by the application from the user's identity, or by separate services per audience. Never let the user choose the filter.
- Freshness:
TARGET_LAGmatched to policy change frequency, and superseded documents removed. - Evaluation: a golden question set per country, measuring retrieval hit rate, faithfulness and correct refusals.
Production consideration: Log questions, chunks and answers, and route sensitive topics (grievances, medical leave) to a human. The pipeline side is covered in data pipelines for RAG, and retrieval questions in our RAG interview questions.
52. A team ran AI_COMPLETE over a 50-million-row table and the AI bill surprised everyone. How do you fix the design?
Answer: Token-billed functions scale with rows times tokens, so the fix is to process fewer rows, fewer tokens and with a cheaper approach where possible, and to put spending controls in place before the next run.
What I would check:
CORTEX_FUNCTIONS_QUERY_USAGE_HISTORYfor which query, model and token volume drove spend.- Whether a task-specific function (
AI_CLASSIFY,AI_SENTIMENT,AI_EXTRACT) or a smaller model would do the job instead of a general completion with a long prompt. - Pre-filtering with SQL so only relevant rows reach the model, and incremental processing so rows already labelled are not reprocessed.
- Prompt length: long instructions repeated per row multiply cost; trim and test on a sample first.
- A sample-based evaluation to prove the cheaper approach meets the accuracy bar.
Production consideration: Restrict AI Function roles, set CORTEX_MODELS_ALLOWLIST, add budgets with notifications for AI services, and require a cost estimate on a sample for any new AI workload over large tables.
53. You are migrating a Teradata data warehouse to Snowflake. How do you plan it?
Answer: Plan in waves by subject area, with code conversion, data movement and validation as separate workstreams, and run both systems in parallel until reconciliation passes. Do not treat it as a lift-and-shift of every Teradata habit.
What I would check:
- Inventory: tables, views, macros, stored procedures, BTEQ scripts, MultiLoad/FastLoad/TPT jobs, schedules and downstream consumers. Retire unused objects first.
- Code conversion with SnowConvert AI, Snowflake's migration tool that converts Teradata DDL, SQL, BTEQ and procedures, then review its flagged issues and functional differences by hand.
- Design differences: Teradata primary indexes and partitioning map to micro-partitions and, only where needed, clustering keys; volatile tables to temporary tables; SET table semantics and case sensitivity need explicit handling.
- Data movement: export to cloud storage in Parquet or compressed files, then COPY INTO; incremental catch-up until cutover.
- Validation: row counts, column checksums and aggregate comparisons per table, plus output comparison for critical reports.
Production consideration: Agree cutover criteria with the business and keep the old system read-only for a defined period.
54. A retailer wants to move a Hadoop and Hive data lake to Snowflake. What is your approach?
Answer: Decide first whether Snowflake becomes the single engine or one of several. If other engines (Spark, Trino) must keep working on the data, land it as Iceberg tables on an external volume; if Snowflake is the only consumer, native tables are simpler. Then move workloads, not just files.
What I would check:
- Data: HDFS data copied to object storage; ORC or Parquet loaded with COPY or registered as Iceberg; small-file problems compacted on the way.
- Hive metastore: map databases and tables to Snowflake databases and schemas, or to an external Iceberg catalog through a catalog integration or catalog-linked database.
- Code: Hive SQL and Spark SQL converted (SnowConvert AI supports both sources), Spark jobs rewritten as SQL, dynamic tables or Snowpark, and Oozie workflows moved to tasks or an external orchestrator.
- Security: Ranger or Sentry policies re-implemented as roles, masking and row access policies.
- Validation: reconcile outputs table by table.
Production consideration: Hadoop teams are used to fixed capacity; put resource monitors and cost attribution in place before opening access.
55. A hospital network wants to share de-identified data with a research partner on a different cloud. How do you design it?
Answer: Build a curated, de-identified data product in its own database, expose it through secure views, and deliver it as a private listing with Cross-Cloud Auto-Fulfillment so the partner queries it in their own account without receiving files.
What I would check:
- De-identification: remove direct identifiers, generalise dates and locations, and apply aggregation or projection constraints where small groups could re-identify patients; get clinical governance approval.
- Only secure views and approved columns in the share, separate from operational schemas.
- Partner without Snowflake: a reader account instead, paid for by the provider.
- Replication cost and refresh frequency for the cross-cloud copy.
- Legal terms, retention and revocation: you can remove the partner's access to the share at any time, but you cannot recall results they already exported.
Production consideration: Review shared columns whenever the source schema changes, and document the data product's refresh contract like an API.
Key takeaways
- Explain architecture through consequences: separate storage and compute means workload isolation and per-second compute billing.
- Most performance answers start in the query profile: pruning, spilling, exploding joins and queuing each point to a different fix.
- Know the loading ladder: COPY for bulk, Snowpipe for files arriving continuously, Snowpipe Streaming for rows from applications and streams, dynamic tables or streams and tasks for transformation.
- Governance is policies plus operating model: tag-based masking, row access policies, classification and access history, owned by a governance role.
- Cost questions need two tools: resource monitors for warehouses, budgets for serverless and AI services.
- Use current Cortex names: Cortex AI Functions, Cortex Search, Cortex Analyst with semantic views, Cortex Agents, and Snowflake CoWork (previously Snowflake Intelligence).
- Scenario answers win interviews: find what changed, show the evidence, fix the cause, then add a control so it does not recur.
Interview preparation checklist
- Use a Snowflake trial account to create warehouses of two sizes, run the same heavy query on each, and compare query profiles with the result cache turned off.
- Load files with COPY INTO, then set up a Snowpipe with auto-ingest from your own bucket.
- Build a small pipeline twice: once with a stream and task doing a MERGE, once with dynamic tables. Explain the trade-offs.
- Practise Time Travel recovery: delete rows, find the query ID and restore by cloning.
- Write a masking policy, a row access policy with a mapping table, and a tag-based masking setup, then test them under different roles.
- Query
ACCOUNT_USAGEviews for warehouse metering, query history and access history. - Build a Cortex Search service over a few documents and call it from a short Python script; add one AI Function query.
- Prepare two stories from your own work: a performance or cost fix, and a governance or migration decision.
FAQ
What skills are required for a Snowflake data engineer role?
Strong SQL, data modelling, one programming language (usually Python), Snowflake loading and pipeline features, performance tuning with the query profile, RBAC and masking policies, cost awareness, and familiarity with one cloud's storage and identity services. Orchestration and dbt experience are common additions.
How should I prepare for a Snowflake interview?
Combine reading with hands-on practice in a trial account. Build a small end-to-end pipeline, tune a slow query, apply masking and row access policies, and be ready to explain each choice. Practise answering scenario questions aloud with a clear structure: evidence, cause, fix and prevention.
Is Snowflake a good career skill for Indian engineers?
Snowflake is used by many GCCs, product companies and services firms in Hyderabad, Bengaluru and other cities for analytics and data platforms. Pairing it with strong SQL, a major cloud and data-for-AI skills keeps your options broad across data engineering roles.
Do Snowflake interviews include Cortex AI questions now?
Increasingly, yes, especially for platform and analytics engineering roles. Expect questions on Cortex AI Functions, Cortex Search for RAG, Cortex Analyst with semantic views, Cortex Agents, and how to govern and control the cost of AI usage.
Is the SnowPro certification required to get a Snowflake job?
No. Certifications can help a resume pass initial screening, but interviewers judge hands-on reasoning. A well-documented project and clear answers to scenario questions usually carry more weight than a certificate alone.
Can a fresher get a Snowflake role?
Yes, if they have solid SQL and Python basics and one Snowflake project they can explain in depth. Freshers are usually assessed on fundamentals, SQL problem solving and how they reason about a simple pipeline rather than years with the platform.
How is Snowflake different from Databricks in interviews?
Snowflake interviews lean towards SQL, warehouse sizing, governance policies, sharing and consumption cost. Databricks interviews lean towards Spark, Delta Lake, notebooks and ML workflows. Both now ask about open table formats, governance and building AI applications on governed data.
How long does it take to prepare for a Snowflake interview?
It depends on your background. An engineer who already knows SQL and a cloud data warehouse can cover the Snowflake-specific topics and build a project in a few focused weeks. A fresher should plan for longer and spend most of the time building and debugging pipelines.
Ready to build production pipelines and the governed data foundations behind enterprise AI? The HORIZON data engineering and AI course combines hands-on pipeline engineering with AI data work, in classroom sessions in Ameerpet or live online. If you want a broader path across AI, ML, cloud and security, look at the APEX AI, ML, Cloud and Cyber Security program. Call +91 96660 19191 to book a free demo.



