The modeling fundamentals (ref, tests, macros, snapshots, docs, artifacts) are identical either way, but the operations and collaboration experience differs dramatically.
This article walks through dbt Cloud vs dbt Core from the angles the exam tends to ask about, grounded in the stable official specs, and gives you the checkpoints you need to make a quick selection decision on the job.
dbt Core is an open-source CLI runtime. It compiles your models and dispatches SQL to a data warehouse (Snowflake, BigQuery, Databricks, Redshift, Postgres, etc.) via adapters. It does not include a scheduler, web UI, or RBAC.
dbt Cloud is the managed SaaS: web IDE, job scheduler, run logs, notifications, auth and RBAC, metadata visualization, and PR checks. In both cases the actual compute happens in the warehouse, and the SQL behaves the same.
| Aspect | dbt Cloud | dbt Core | Practitioner notes |
|---|---|---|---|
| Delivery model | SaaS (hosted) | OSS CLI (self-hosted) | Cloud ships a web IDE and jobs; Core runs locally or in containers |
| Execution location | Cloud's job workers submit SQL to the warehouse | Any execution environment submits SQL to the warehouse | Compute happens in the warehouse either way |
| Scheduler / run management | Built-in jobs, scheduler, notifications, retries | Not included. Use Airflow, GitHub Actions, cron, etc. | For small teams Cloud is faster to stand up |
| IDE / review | Web IDE, PR preview, debugging | Local IDE plus git workflow | Team conventions and branching strategy matter |
| Connections / credentials | Managed per environment in the UI (Dev/Prod, etc.) | Managed via profiles.yml and environment variables | Combine with Vault or similar for secret management |
| Auth / RBAC / audit | SSO/SAML, RBAC, audit logs (plan-dependent) | Not provided. Implement via surrounding platform | Cloud is easier when governance requirements are strong |
Core connection definition (profiles.yml example: Snowflake)
my_project:
target: dev
outputs:
dev:
type: snowflake
account: '{{ env_var('SNOWFLAKE_ACCOUNT') }}'
user: '{{ env_var('SNOWFLAKE_USER') }}'
password: '{{ env_var('SNOWFLAKE_PASSWORD') }}'
role: ANALYST
database: ANALYTICS
warehouse: TRANSFORMING
schema: dev_{{ env_var('USER') }}
threads: 8
client_session_keep_alive: trueCloud bundles job definitions and the scheduler, letting you set execution parameters, schedules, notifications, retries, and concurrency per environment (Development / Deployment). PR-based checks and incremental runs based on the previous artifacts (Slim CI) are also straightforward to configure.
Core has no scheduler, so teams reach for Airflow, Dagster, GitHub Actions, GitLab CI, Azure Pipelines, or cron. The standard pattern is to design incremental runs using state:modified+ together with artifacts (manifest.json, run_results.json).
Execution path (Core)
Execution path (Cloud)
Slim CI on Core (minimal GitHub Actions example)
name: dbt Core CI
on:
pull_request:
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: '3.11'
- run: pip install dbt-snowflake
- name: Restore previous artifacts
run: |
mkdir -p ci_state
# Example: fetch the previous manifest.json from artifacts or storage into ci_state/
- run: dbt deps
- run: dbt build --select state:modified+ --state ci_state --profiles-dir . --target devCloud's web IDE covers connection setup, branch operations, model execution, log inspection, and documentation browsing from the browser. New members onboard quickly, and reviews are highly reproducible.
Core combines a local IDE (VS Code, etc.) with the CLI. The flexibility is great, but you need to design ops that smooth over Python and dependency versions, warehouse network access, secrets, and data sample handling.
Generate docs and view locally (Core)
dbt docs generate --target dev
# Start a local server temporarily
dbt docs serve --port 8080Cloud provides governance features such as SSO/SAML, RBAC, service tokens, and audit logs (availability depends on your plan). Connection info is isolated per environment and safely managed.
With Core you fill these gaps using surrounding infrastructure. Secrets are typically passed in via environment variables and managed in a cloud secrets manager or Vault. Permission control happens through warehouse role design and the orchestrator's execution permissions.
Safe connection via environment variables (profiles.yml excerpt)
outputs:
prod:
type: snowflake
account: '{{ env_var('SNOWFLAKE_ACCOUNT') }}'
user: '{{ env_var('SNOWFLAKE_USER') }}'
password: '{{ env_var('SNOWFLAKE_PASSWORD') }}'
role: '{{ env_var('SNOWFLAKE_ROLE', 'TRANSFORMER') }}'
database: '{{ env_var('SNOWFLAKE_DB') }}'
warehouse: '{{ env_var('SNOWFLAKE_WH') }}'
schema: analyticsCloud incurs a subscription fee but dramatically reduces ops load thanks to the scheduler, IDE, logs/notifications, and UI-based management. For small to mid-sized teams or organizations with strong governance requirements, TCO often comes out lower.
Core itself is free, but you design and maintain scheduling, monitoring, permissions, log retention, documentation publishing, and metadata visualization yourself. It fits organizations with a mature platform or those that need deep customization.
Install adapters with pinned versions (Snowflake / Databricks example)
pip install 'dbt-snowflake==1.8.*'
pip install 'dbt-databricks==1.8.*'
# Use requirements.txt / a lock file for reproducibilityOn the Analytics Engineer exam, beyond the core dbt concepts, questions frequently come from the ops and collaboration angle of Cloud vs Core. Being able to instantly recall where Slim CI, environment separation, permissions, docs/lineage, and scheduling live translates directly into points.
In the field, selection is requirement-driven. Pick Cloud if you prioritize RBAC/SSO, audit, built-in scheduler, and fastest time-to-stand-up. Pick Core if you prioritize integration with an existing orchestrator, fine-grained dependency control, and strict adherence to infrastructure standards. In either case, artifact and state management design is the key to success.
Selection checklist (excerpt)
[ ] SSO/RBAC/audit are mandatory -> yes: Cloud is favoured / no: Core is also viable
[ ] You want it inside your existing orchestrator -> yes: Core / no: Cloud saves build effort
[ ] Per-PR incremental runs needed -> both work (compare on ease of state management)
[ ] You want docs/lineage visible immediately -> Cloud wins / Core means self-hosting
[ ] Budget and operating capacity -> estimate TCO (headcount + SaaS + warehouse)Analytics Engineer
Question 1
A small data team needs to stand up production-scheduled runs and lineage/docs visualization quickly. Company-wide SSO access control and centralized run logs are also required, and there is no dedicated platform operator. Which choice is most appropriate?
Correct answer: A
The requirements are scheduling, SSO/RBAC, log visibility, and quickly delivered lineage/docs. dbt Cloud provides exactly these as managed features, making it ideal for a small team standing things up quickly. Core can deliver the same outcome, but the surrounding design and operational cost is higher.
Are dbt Cloud and dbt Core artifacts compatible with each other?
Yes. Both use the same project structure, adapters, and artifact specification (manifest.json, etc.). Artifacts produced in Cloud can be reused by Core CI pipelines and vice versa.
Can dbt Core do Slim CI (incremental runs)?
Yes. Run dbt build --select state:modified+ with --state pointing at the previous artifacts. Cloud bakes this into its UI and settings, while with Core you design artifact storage and retrieval yourself (object storage or CI artifacts).
Can I run Cloud and Core side by side?
Yes. With Git as the single source of truth, you can combine Cloud-managed job execution with Core-based local development and parts of your CI. Just be careful to design environment separation and locking/execution windows so concurrent runs and connections don't collide.
Practice with certification-focused question sets
Try free questionsNicheeLab Editorial Team
NicheeLab editorial team focused on data engineering and cloud certification learning. Content is structured around practical study needs and official exam domains.
dbt Models: SQL-Defined Transformation Units (2026)
Model fundamentals — SELECT-based definitions, naming, refs,...
dbt Analytics Engineering Exam: Complete Guide (2026)
Pass the AE Certification — scope, weighting, sample questio...
dbt Cloud vs dbt Core: Feature & Cost Comparison (2026)
Honest comparison of dbt Cloud vs. dbt Core — IDE, scheduler...
dbt Project Structure: models/seeds/macros Layout (2026)
Recommended dbt project layout — models, seeds, macros, snap...
dbt_project.yml Explained: Every Config (2026)
Every dbt_project.yml setting that matters — paths, vars, ma...