<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: NicheeLab</title>
    <description>The latest articles on DEV Community by NicheeLab (@nicheelab).</description>
    <link>https://dev.to/nicheelab</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4079229%2F3d233201-e41b-45aa-8a62-343f4cfa3d16.png</url>
      <title>DEV Community: NicheeLab</title>
      <link>https://dev.to/nicheelab</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/nicheelab"/>
    <language>en</language>
    <item>
      <title>SnowPro Core scores you out of 1000, and some questions don't count</title>
      <dc:creator>NicheeLab</dc:creator>
      <pubDate>Sun, 16 Aug 2026 01:30:40 +0000</pubDate>
      <link>https://dev.to/nicheelab/snowpro-core-scores-you-out-of-1000-and-some-questions-dont-count-1c39</link>
      <guid>https://dev.to/nicheelab/snowpro-core-scores-you-out-of-1000-and-some-questions-dont-count-1c39</guid>
      <description>&lt;p&gt;Two things about COF-C03 that catch people out.&lt;/p&gt;

&lt;p&gt;The passing score is 750 out of 1000, not 75 out of 100. It's a scaled score, so 750 is roughly 75% accuracy but not exactly.&lt;/p&gt;

&lt;p&gt;And not every question counts. Some are unscored beta items mixed into the 100, and you can't tell which. There's no question you can safely coast on.&lt;/p&gt;

&lt;p&gt;The format: 100 questions, 115 minutes, $175, valid 2 years, Pearson VUE. That's 69 seconds per question.&lt;/p&gt;

&lt;h2&gt;
  
  
  Where the points actually are
&lt;/h2&gt;

&lt;p&gt;Six domains, and they are not close to even.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Domain&lt;/th&gt;
&lt;th&gt;Weight&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;1. Cloud Data Platform &amp;amp; Architecture&lt;/td&gt;
&lt;td&gt;25%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;2. Account Access &amp;amp; Security&lt;/td&gt;
&lt;td&gt;20%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;3. Data Transformation&lt;/td&gt;
&lt;td&gt;20%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;4. Data Loading &amp;amp; Unloading&lt;/td&gt;
&lt;td&gt;10%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;5. Data Protection &amp;amp; Data Sharing&lt;/td&gt;
&lt;td&gt;10%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;6. Performance &amp;amp; Tuning&lt;/td&gt;
&lt;td&gt;15%&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Architecture and Security are 45% between them. If you're short on time, that's where it goes.&lt;/p&gt;

&lt;h2&gt;
  
  
  Domain 1: Architecture (25%)
&lt;/h2&gt;

&lt;p&gt;The biggest domain, and most of it comes down to knowing which of the three layers does what. Storage, Compute, Cloud Services. Questions phrased as "which layer handles this operation" show up constantly.&lt;/p&gt;

&lt;p&gt;What you need cold:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Micro-partitions&lt;/strong&gt;: 50-500 MB, columnar, immutable, managed automatically. The immutability is the part people forget, and it's why an UPDATE rewrites partitions.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The three caches&lt;/strong&gt;: Result Cache, Metadata Cache, Warehouse Cache. Know where each lives and what invalidates it. This is a favorite.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Edition differences&lt;/strong&gt;: Standard, Enterprise, Business Critical, VPS. Which feature starts at which tier.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Data Marketplace vs Data Exchange&lt;/strong&gt;, which are easy to blur together.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Domain 2: Account Access &amp;amp; Security (20%)
&lt;/h2&gt;

&lt;p&gt;Mostly RBAC. Know the hierarchy and what each default role can actually do:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;ACCOUNTADMIN
├── SECURITYADMIN   manages object grants account-wide
│   └── USERADMIN   creates users and roles
└── SYSADMIN        owns databases and warehouses

PUBLIC               not in the tree above.
                     Automatically granted to every user.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;PUBLIC sitting outside that hierarchy is itself testable. It's a pseudo-role every user gets by default, which is why anything granted to PUBLIC is effectively granted to everyone.&lt;/p&gt;

&lt;p&gt;The exam also likes asking which role should perform a given task, and the intended answer is usually "the least privileged one that can", not ACCOUNTADMIN.&lt;/p&gt;

&lt;p&gt;Also in scope: network policies (IP allowlist and blocklist, and what they apply to), MFA with Duo, and SSO with SCIM provisioning.&lt;/p&gt;

&lt;h2&gt;
  
  
  Domain 3: Data Transformation (20%)
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;SQL UDF vs JavaScript UDF vs External Function, and when each is the right pick&lt;/li&gt;
&lt;li&gt;Stored procedure execution context across JavaScript, Snowflake Scripting, and Python&lt;/li&gt;
&lt;li&gt;Standard View vs Secure View vs Materialized View. Secure Views block the optimizer from certain pushdowns, which is a tradeoff the exam expects you to know.&lt;/li&gt;
&lt;li&gt;Streams plus Tasks as the CDC pattern&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Domain 6: Performance &amp;amp; Tuning (15%)
&lt;/h2&gt;

&lt;p&gt;Small domain, but this is where the "choose the best option" questions get genuinely hard.&lt;/p&gt;

&lt;p&gt;Scale &lt;strong&gt;up&lt;/strong&gt; for one slow query. Scale &lt;strong&gt;out&lt;/strong&gt; for many concurrent queries. Getting this backwards is the single most common mistake, and it comes up more than once.&lt;/p&gt;

&lt;p&gt;Also here: reading a Query Profile (spilling, pruning rate, join order), when clustering keys are worth it (tables over 1 TB, high-cardinality columns), and Resource Monitor notify and suspend actions.&lt;/p&gt;

&lt;h2&gt;
  
  
  Domains 4 and 5 (10% each)
&lt;/h2&gt;

&lt;p&gt;Ten questions each. Know the surface, don't go deep.&lt;/p&gt;

&lt;p&gt;For loading: COPY INTO options (&lt;code&gt;ON_ERROR&lt;/code&gt;, &lt;code&gt;PURGE&lt;/code&gt;, &lt;code&gt;FORCE&lt;/code&gt;, &lt;code&gt;MATCH_BY_COLUMN_NAME&lt;/code&gt;), Internal vs External stages, Snowpipe auto-ingest via SQS or REST.&lt;/p&gt;

&lt;p&gt;For protection: Time Travel is 0 to 90 days depending on edition, Fail-Safe is a fixed 7 days and &lt;strong&gt;only Snowflake can access it&lt;/strong&gt;. That distinction is worth a guaranteed point. Plus Zero-Copy Clone and the Provider / Consumer / Reader Account model for sharing.&lt;/p&gt;

&lt;h2&gt;
  
  
  Try one
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;In which scenario is scaling out (a multi-cluster warehouse) most effective?&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;A.&lt;/strong&gt; You want to speed up a single very large query&lt;br&gt;
&lt;strong&gt;B.&lt;/strong&gt; You want to eliminate query queuing caused by many concurrent users&lt;br&gt;
&lt;strong&gt;C.&lt;/strong&gt; You want to reduce storage costs&lt;br&gt;
&lt;strong&gt;D.&lt;/strong&gt; You want to extend the Time Travel retention period&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Answer&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;B.&lt;/strong&gt; Multi-cluster warehouses handle rising concurrency. When queries start queuing, you add clusters to process more of them in parallel. For a single slow query you scale up instead, meaning a larger warehouse size.&lt;/p&gt;

&lt;p&gt;A is the trap, and it catches people who read "multi-cluster" as "more power".&lt;/p&gt;

&lt;p&gt;We keep 9,900 practice questions across all 11 SnowPro certifications, each with an explanation on every option. Free to work through: &lt;a href="https://nicheelab.com/en/snowflake-exam/" rel="noopener noreferrer"&gt;nicheelab.com/en/snowflake-exam&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Four tactics for the day
&lt;/h2&gt;

&lt;p&gt;69 seconds per question means you flag and move. Don't burn four minutes on one item.&lt;/p&gt;

&lt;p&gt;Multiple response questions tell you how many to pick ("Select 2"). Pick exactly that many.&lt;/p&gt;

&lt;p&gt;On "most appropriate" questions, throw out options that are technically correct but not best practice. Being right isn't the bar.&lt;/p&gt;

&lt;p&gt;Watch for negation. "Which is NOT correct" appears often enough that misreading one is a realistic way to lose a point.&lt;/p&gt;

&lt;h2&gt;
  
  
  After you pass
&lt;/h2&gt;

&lt;p&gt;Core is the prerequisite for all five Advanced tracks: Data Engineer, Administrator, Architect, Data Scientist, Security Engineer. Renewal is a separate Recertification exam ($175, 60 questions, 90 minutes). Let it lapse and you sit the full thing again, so start about 6 months out.&lt;/p&gt;

&lt;p&gt;We cover &lt;a href="https://nicheelab.com/en/snowflake-exam/" rel="noopener noreferrer"&gt;all 11 SnowPro exams&lt;/a&gt; if you're continuing past Core.&lt;/p&gt;

&lt;p&gt;The &lt;a href="https://nicheelab.com/en/articles/snowflake/core-exam/" rel="noopener noreferrer"&gt;full breakdown&lt;/a&gt;, with a 6-week study plan, is free to read.&lt;/p&gt;

</description>
      <category>snowflake</category>
      <category>database</category>
      <category>certification</category>
      <category>sql</category>
    </item>
    <item>
      <title>Two domains are 53% of the Databricks Data Engineer Associate exam</title>
      <dc:creator>NicheeLab</dc:creator>
      <pubDate>Sat, 15 Aug 2026 16:28:46 +0000</pubDate>
      <link>https://dev.to/nicheelab/two-domains-are-53-of-the-databricks-data-engineer-associate-exam-2np0</link>
      <guid>https://dev.to/nicheelab/two-domains-are-53-of-the-databricks-data-engineer-associate-exam-2np0</guid>
      <description>&lt;p&gt;Most DEA study plans treat the five exam domains as if they weigh the same. They don't. Databricks publishes the scoring weights, and two domains carry more than half the exam.&lt;/p&gt;

&lt;p&gt;45 questions, 90 minutes, 70% to pass. That's 32 correct.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Domain&lt;/th&gt;
&lt;th&gt;Weight&lt;/th&gt;
&lt;th&gt;Questions&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;1. Databricks Lakehouse Patform&lt;/td&gt;
&lt;td&gt;24%&lt;/td&gt;
&lt;td&gt;~11&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;2. ELT with Spark SQL and lPython&lt;/td&gt;
&lt;td&gt;29%&lt;/td&gt;
&lt;td&gt;~13&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;3. Incremental Data Processing&lt;/td&gt;
&lt;td&gt;22%&lt;/td&gt;
&lt;td&gt;~10&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;4. Production Pipelines&lt;/td&gt;
&lt;td&gt;16%&lt;/td&gt;
&lt;td&gt;~7&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;5. Data Governance&lt;/td&gt;
&lt;td&gt;9%&lt;/td&gt;
&lt;td&gt;~4&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Domains 1 and 2 are 53% of your score. Domain 5 is four questions. Spend your time accordingly.&lt;/p&gt;

&lt;h2&gt;
  
  
  Domain 2: ELT with Spark SQL and Python (29%)
&lt;/h2&gt;

&lt;p&gt;The heaviest domain, and the one you can't fake. You read code and say what it does.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;MERGE INTO&lt;/code&gt; is the single highest-value thing to memorize. It shows up here as UPSERT, again in Domain 3 as the CDC pattern, and again in SCD Type 1/2 scenarios. Know the branches exactly, not roughly.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight sql"&gt;&lt;code&gt;&lt;span class="n"&gt;MERGE&lt;/span&gt; &lt;span class="k"&gt;INTO&lt;/span&gt; &lt;span class="n"&gt;target&lt;/span&gt; &lt;span class="n"&gt;t&lt;/span&gt;
&lt;span class="k"&gt;USING&lt;/span&gt; &lt;span class="k"&gt;source&lt;/span&gt; &lt;span class="n"&gt;s&lt;/span&gt;
&lt;span class="k"&gt;ON&lt;/span&gt; &lt;span class="n"&gt;t&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;id&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;s&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;id&lt;/span&gt;
&lt;span class="k"&gt;WHEN&lt;/span&gt; &lt;span class="n"&gt;MATCHED&lt;/span&gt; &lt;span class="k"&gt;THEN&lt;/span&gt; &lt;span class="k"&gt;UPDATE&lt;/span&gt; &lt;span class="k"&gt;SET&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt;
&lt;span class="k"&gt;WHEN&lt;/span&gt; &lt;span class="k"&gt;NOT&lt;/span&gt; &lt;span class="n"&gt;MATCHED&lt;/span&gt; &lt;span class="k"&gt;THEN&lt;/span&gt; &lt;span class="k"&gt;INSERT&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Also reliably tested:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;CTAS (&lt;code&gt;CREATE TABLE AS SELECT&lt;/code&gt;) for creating Delta tables&lt;/li&gt;
&lt;li&gt;Window functions: &lt;code&gt;ROW_NUMBER&lt;/code&gt;, &lt;code&gt;RANK&lt;/code&gt;, &lt;code&gt;LAG&lt;/code&gt;, &lt;code&gt;LEAD&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Python UDFs vs built-in Spark SQL functions. Python UDFs pay serialization overhead. There's usually a question that turns on exactly this.&lt;/li&gt;
&lt;li&gt;Nested JSON: the &lt;code&gt;:&lt;/code&gt; notation, &lt;code&gt;explode&lt;/code&gt;, &lt;code&gt;from_json&lt;/code&gt;, &lt;code&gt;schema_of_json&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;The same operation written both in the DataFrame API and in Spark SQL, including &lt;code&gt;spark.sql()&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Domain 1: Lakehouse Platform (24%)
&lt;/h2&gt;

&lt;p&gt;Concepts plus platform mechanics.&lt;/p&gt;

&lt;p&gt;All-Purpose vs Job Clusters is guaranteed. Beyond "interactive vs production", know that Job Clusters auto-terminate when the job ends and cost less.&lt;/p&gt;

&lt;p&gt;The rest of this domain:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Magic commands (&lt;code&gt;%sql&lt;/code&gt;, &lt;code&gt;%python&lt;/code&gt;, &lt;code&gt;%md&lt;/code&gt;), &lt;code&gt;dbutils.widgets&lt;/code&gt;, sharing variables with &lt;code&gt;%run&lt;/code&gt;, notebook version history&lt;/li&gt;
&lt;li&gt;Git Folders (formerly Repos): branch switching, the PR review flow, which file types are supported&lt;/li&gt;
&lt;li&gt;Delta Lake basics: ACID, time travel (&lt;code&gt;DESCRIBE HISTORY&lt;/code&gt;, &lt;code&gt;RESTORE&lt;/code&gt;), schema evolution (&lt;code&gt;mergeSchema&lt;/code&gt;), and the difference between &lt;code&gt;OPTIMIZE&lt;/code&gt; and &lt;code&gt;VACUUM&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Domain 3: Incremental Data Processing (22%)
&lt;/h2&gt;

&lt;p&gt;This one tests judgment. Which approach fits which situation.&lt;/p&gt;

&lt;p&gt;"COPY INTO or Auto Loader?" will be on your exam. COPY INTO for a small, bounded set of files. Auto Loader for continuous ingestion at volume.&lt;/p&gt;

&lt;p&gt;For Auto Loader, know Directory Listing vs File Notification mode, plus &lt;code&gt;cloudFiles.inferColumnTypes&lt;/code&gt; and &lt;code&gt;cloudFiles.schemaEvolutionMode&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;For Structured Streaming, know the output modes (&lt;code&gt;append&lt;/code&gt;, &lt;code&gt;complete&lt;/code&gt;, &lt;code&gt;update&lt;/code&gt;), the triggers (&lt;code&gt;Trigger.availableNow&lt;/code&gt;, &lt;code&gt;processingTime&lt;/code&gt;), and what checkpoints actually do. &lt;code&gt;Trigger.availableNow&lt;/code&gt; vs &lt;code&gt;Trigger.once&lt;/code&gt; is a common pairing.&lt;/p&gt;

&lt;h2&gt;
  
  
  Domain 4: Production Pipelines (16%)
&lt;/h2&gt;

&lt;p&gt;Lakeflow Jobs and Lakeflow Spark Declarative Pipelines.&lt;/p&gt;

&lt;p&gt;The Expectations levels come up often enough that the mapping is worth memorizing straight:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;What you want&lt;/th&gt;
&lt;th&gt;Decorator&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Log the violation, keep the row&lt;/td&gt;
&lt;td&gt;&lt;code&gt;@dlt.expect&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Drop the bad row&lt;/td&gt;
&lt;td&gt;&lt;code&gt;@dlt.expect_or_drop&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Stop the pipeline&lt;/td&gt;
&lt;td&gt;&lt;code&gt;@dlt.expect_or_fail&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Also in scope: &lt;code&gt;@dlt.table&lt;/code&gt; and &lt;code&gt;@dlt.view&lt;/code&gt;, Medallion layering (Bronze, Silver, Gold), task dependencies as a DAG, retry policies, and when you need to reset a streaming checkpoint.&lt;/p&gt;

&lt;h2&gt;
  
  
  Domain 5: Data Governance (9%)
&lt;/h2&gt;

&lt;p&gt;Four questions. Know what Unity Catalog does, not how to tune it.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The three-level namespace, &lt;code&gt;catalog.schema.table&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;GRANT&lt;/code&gt; and &lt;code&gt;REVOKE&lt;/code&gt; syntax, plus the trap that without &lt;code&gt;USAGE&lt;/code&gt; you can't reach nested objects&lt;/li&gt;
&lt;li&gt;Automatic lineage and what the lineage graph is for&lt;/li&gt;
&lt;li&gt;Dynamic views with &lt;code&gt;CURRENT_USER()&lt;/code&gt; and &lt;code&gt;IS_MEMBER()&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Four things about the question format
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Over 70% are "choose the best option".&lt;/strong&gt; Not "which one is correct". Several options are partly correct and you pick the best one. You'll narrow to two and sit there. That's why knowing each feature's purpose and limits beats knowing it exists.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;You never write code from scratch.&lt;/strong&gt; Questions hand you SQL or PySpark and ask what it outputs, how it behaves, or why it fails. Fill-in-the-blank does show up for &lt;code&gt;MERGE INTO&lt;/code&gt;, Auto Loader and Lakeflow syntax, so memorize those skeletons.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Delta Lake is effectively the most-tested topic.&lt;/strong&gt; It runs through Domain 1 as concepts, Domain 2 as &lt;code&gt;MERGE INTO&lt;/code&gt;, and Domain 3 as CDC. &lt;code&gt;OPTIMIZE&lt;/code&gt;, &lt;code&gt;VACUUM&lt;/code&gt;, Z-ORDER, time travel, schema evolution.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Elimination works.&lt;/strong&gt; One or two options are usually a clearly unrelated feature, like Unity Catalog offered where the answer is MLflow. Cut to two, then think.&lt;/p&gt;

&lt;h2&gt;
  
  
  Try one
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;A pipeline ingests CSV files that keep arriving in a cloud storage landing zone into a Delta table. The file count grows daily and is now past 100,000. You want to process only new files, efficiently. Which approach fits?&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;A.&lt;/strong&gt; Schedule &lt;code&gt;COPY INTO&lt;/code&gt;, scanning all files each run to find the new ones&lt;br&gt;
&lt;strong&gt;B.&lt;/strong&gt; Auto Loader (&lt;code&gt;cloudFiles&lt;/code&gt;) with Structured Streaming, tracking processed files in checkpoints&lt;br&gt;
&lt;strong&gt;C.&lt;/strong&gt; Batch-read the whole zone with &lt;code&gt;spark.read.csv()&lt;/code&gt; and find the delta with &lt;code&gt;LEFT ANTI JOIN&lt;/code&gt;&lt;br&gt;
&lt;strong&gt;D.&lt;/strong&gt; Reference the CSVs as an external table and filter to the latest data in a view&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Answer&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;B.&lt;/strong&gt; Auto Loader detects new files and remembers what it already processed, so it doesn't slow down as the count grows. &lt;code&gt;COPY INTO&lt;/code&gt; re-scans the file listing every run, which turns into real overhead past 100,000 files. C is expensive. D throws away ACID and time travel.&lt;/p&gt;

&lt;p&gt;Worth noticing: A and C both produce the right result. They're wrong on efficiency, not correctness. Most questions on this exam are shaped like that.&lt;/p&gt;

&lt;p&gt;That question comes from our practice set. We maintain 6,250 questions across all seven Databricks certifications, with an explanation on every option, and you can work through them free before deciding anything: &lt;a href="https://nicheelab.com/en/databricks-exam/" rel="noopener noreferrer"&gt;nicheelab.com/en/databricks-exam&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  One scheduling detail
&lt;/h2&gt;

&lt;p&gt;The retake cooldown is 14 days and the exam costs $200, so a failed attempt costs you two weeks and another $200. Worth sitting a full timed mock before you book.&lt;/p&gt;

&lt;p&gt;The cert is valid for 2 years. If you pass, Data Engineer Professional and Machine Learning Associate both reuse your Delta Lake, Spark and Unity Catalog knowledge, so take the next one within 2 to 3 months rather than relearning it later. We cover &lt;a href="https://nicheelab.com/en/databricks-exam/" rel="noopener noreferrer"&gt;all seven&lt;/a&gt; if you're going down that path.&lt;/p&gt;

&lt;p&gt;The &lt;a href="https://nicheelab.com/en/articles/databricks/data-engineer-associate/" rel="noopener noreferrer"&gt;long version of this breakdown&lt;/a&gt;, including an 8-week study plan, is free to read.&lt;/p&gt;

</description>
      <category>databricks</category>
      <category>dataengineering</category>
      <category>certification</category>
      <category>sql</category>
    </item>
  </channel>
</rss>
