Week 13 - Big Data on Databricks

The lakehouse idea

Workspace & Unity Catalog

PySpark in Databricks

dbt on Databricks

Scheduling dbt Jobs

Practice

Assignment

Gotchas & Pitfalls

Slides (PDF)

Career relevance: Week 13

Glossary: Week 13

History of the Lakehouse

Jobs & Asset Bundles

This page is optional. Nothing here is required for Week 13's learning goals or the assignment. Back to the Going Further overview.

Scheduling Databricks Jobs

Scheduling dbt Jobs covers the required path: one namespaced Job, one dbt task on hyf-dbt-warehouse, one successful manual run, and a schedule you pause on the shared bill. This section is the production-shaped depth around that skill.

Git-backed dbt tasks

Chapter 5 uses Git provider pointing directly to the class reference repository (https://github.com/lassebenni/nyc-taxi-dbt-reference.git, branch week-13-ch-4-dbt-solution). This matches production best practices: the Job runs whatever that commit contains - the same "deploy by merging" idea as Week 12's shared Airflow pull. Workspace folders remain an alternative when working locally inside Databricks without a Git remote. You still set catalog, schema, and warehouse on the task; you still never put a personal token in the repo.

Multi-task Jobs

A Job can be a small DAG inside Databricks: for example a notebook task that writes a staging Delta table, then a dbt task that builds marts, with an explicit dependency (task B runs after task A succeeds). That is the Jobs equivalent of Airflow >>. Keep tasks small and idempotent so a retry does not double-write.

flowchart LR
    nb["Notebook task<br/>PySpark prep"]
    dbt["dbt task<br/>fct_trips build"]
    nb --> dbt
    classDef box fill:#e8f0fe,stroke:#4285f4,color:#111;
    class nb,dbt box;

Scheduling a notebook Job

If you migrated exploration out of interactive cells (see Migrating notebooks to applications), attach the notebook as a notebook task, pick serverless jobs compute or a jobs cluster, and schedule it the same way. Do not leave notebook Jobs attached to a long-lived all-purpose cluster "for convenience" - that is how idle spend appears.

Jobs vs Airflow (decision guide)

Situation Prefer
Only Databricks tasks (dbt, notebooks, SQL) Databricks Job
Ingest in blob/ADF + transform in Databricks + notify elsewhere Airflow (or similar) coordinating the hops
Team already runs everything through Airflow Keep Airflow; call Databricks as one operator/task
Learning the lakehouse schedule this week Job dbt task (required Ch5); Airflow already covered in Week 12

Job notifications

Production Jobs should tell someone when they fail. In the Job's settings, open Notifications (or Job notifications) and add your email for On failure (and optionally On success / duration warnings). You do not need a separate monitoring product for a class Job: one address on the Task 3 Job is enough.

<aside> 📝 Optional assignment bonus (Easy): Assignment Task 4 asks for a notification screenshot in task-4/screenshots/job_notification.png plus a one-line note in task-4/BONUSES.md.

</aside>

Databricks Asset Bundles (DABs): Infrastructure as Code

In Scheduling dbt Jobs you configured a Job manually in the Databricks UI. In enterprise data engineering teams, workflows and projects are defined as code using Databricks Asset Bundles (DABs).

A DAB is a databricks.yml file stored in your Git repository that defines your jobs, tasks, permissions, and target deployment environments (dev, staging, prod):

# databricks.yml snippet
bundle:
  name: nyc-taxi-pipeline

targets:
  dev:
    workspace:
      host: https://adb-123456789.azuredatabricks.net
  prod:
    workspace:
      host: https://adb-987654321.azuredatabricks.net

resources:
  jobs:
    fct_trips_job:
      name: "fct_trips_daily_${bundle.target}"
      tasks:
        - task_key: dbt_build
          dbt_task:
            commands: ["dbt deps", "dbt build"]

Running databricks bundle deploy -t dev from your terminal or CI/CD pipeline (such as GitHub Actions) validates and provisions the Job automatically.


The HackYourFuture curriculum is licensed under CC BY-NC-SA 4.0 https://hackyourfuture.net/

CC BY-NC-SA 4.0 Icons

Built with ❤️ by the HackYourFuture community · Thank you, contributors

Found a mistake or have a suggestion? Let us know in the feedback form.