Microsoft Fabric Foundations: Capacity, Workspaces, Items, OneLake, and the Building Blocks Every Data Engineer Must Understand

Microsoft Fabric Foundations: Capacity, Workspaces, Items, OneLake, and the Building Blocks Every Data Engineer Must Understand

In our previous Fabric post, we covered what Fabric is, what it replaces, and how it compares to Databricks and Snowflake. But before you can build anything in Fabric, you need to understand the building blocks: Capacity, Workspaces, and Items.

These three concepts confused me when I started. What is a Capacity? How is it different from a Workspace? What can I create inside a Workspace? How does billing work? Why do some features require F64 and not F2?

This post answers all of that. No pipelines, no transformations — just the architecture, the structure, and the mental model that makes everything else in Fabric click.

Think of Fabric like an apartment building. The Capacity is the building itself — the size of the building determines how much electricity, water, and space is available. The Workspaces are individual apartments inside the building — each team gets their own apartment. The Items are the furniture and appliances inside each apartment — tables, notebooks, pipelines, dashboards. You cannot buy furniture (items) without an apartment (workspace), and you cannot have an apartment without a building (capacity).

Table of Contents

  • The Three Building Blocks: Capacity → Workspace → Items
  • What Is a Capacity?
  • Capacity Units (CUs) Explained
  • F-SKU Options and Pricing
  • Pay-As-You-Go vs Reserved
  • Pause and Resume (Cost Saving)
  • The F64 Threshold (Why It Matters)
  • What Is a Workspace?
  • Workspace vs Capacity Relationship
  • Creating a Workspace
  • Workspace Roles and Permissions
  • Workspace Organization Patterns
  • What Are Items?
  • All Fabric Items Listed and Explained
  • Lakehouse vs Warehouse: Which to Create?
  • OneLake: Where Everything Is Stored
  • OneLake Shortcuts
  • How Capacity, Workspace, Items, and OneLake Connect
  • The Complete Architecture Diagram
  • Environment Setup: Dev, UAT, Prod
  • Free Trial: Getting Started Without Paying
  • Common Mistakes
  • Interview Questions
  • Wrapping Up

The Three Building Blocks: Capacity → Workspace → Items

CAPACITY (F64 — the compute pool)
  │
  ├── WORKSPACE: Sales Analytics
  │     ├── Lakehouse: sales_lakehouse
  │     ├── Notebook: transform_sales
  │     ├── Pipeline: daily_sales_ingestion
  │     ├── Warehouse: sales_warehouse
  │     ├── Semantic Model: sales_report_model
  │     └── Report: Monthly Sales Dashboard
  │
  ├── WORKSPACE: Data Engineering
  │     ├── Lakehouse: bronze_lakehouse
  │     ├── Lakehouse: silver_lakehouse
  │     ├── Notebook: bronze_to_silver
  │     ├── Notebook: silver_to_gold
  │     ├── Pipeline: daily_etl
  │     └── Environment: spark_settings
  │
  └── WORKSPACE: Data Science
        ├── Notebook: feature_engineering
        ├── ML Model: churn_predictor
        └── Experiment: churn_experiment

One capacity powers multiple workspaces. Each workspace contains multiple items. All items store data in OneLake automatically.

What Is a Capacity?

A Capacity is a pool of compute resources that powers all Fabric workloads. When you run a notebook, execute a SQL query, process a pipeline, or refresh a Power BI report — it all consumes resources from the same capacity pool.

Fabric Capacity (F64)
  ┌─────────────────────────────────────────────────────┐
  │  Total: 64 Capacity Units (CUs)                     │
  │                                                      │
  │  Currently in use:                                   │
  │    Spark Notebook: 16 CUs  ████████░░░░░░░░         │
  │    SQL Query:       8 CUs  ████░░░░░░░░░░░░         │
  │    Pipeline:        4 CUs  ██░░░░░░░░░░░░░░         │
  │    Power BI:        2 CUs  █░░░░░░░░░░░░░░░         │
  │    Available:      34 CUs  ░░░░░░░░░░░░░░░░         │
  │                                                      │
  │  All workloads share this pool                       │
  └─────────────────────────────────────────────────────┘

Real-life analogy: A capacity is like the electricity plan for your apartment building. The building has a 200-amp electrical service (capacity). All apartments (workspaces) share this electricity. If one apartment runs a heavy appliance (Spark notebook), there is less power available for other apartments. If the building exceeds 200 amps, things slow down (throttling). To handle more, you upgrade to a bigger plan (higher F-SKU).

Key Capacity Concepts

  • Shared pool: All workloads in all workspaces assigned to this capacity share the CUs
  • Throttling: If you exceed CU limits, Fabric queues or slows down jobs (does not fail them)
  • Bursting: Fabric allows short bursts above your CU limit, then smooths over a 30-second window
  • Auto-scale: Not built-in — you manually resize your capacity (or use Azure Autoscale policies)

Capacity Units (CUs) Explained

A Capacity Unit (CU) is the universal compute currency in Fabric. Every operation consumes CUs:

Workload CU Consumption Pattern
Spark Notebook High CU while running (compute-intensive)
SQL Query Medium CU per query (scales with data scanned)
Pipeline Copy Medium CU (data movement)
Dataflow Gen2 Medium CU (transformation engine)
Power BI Report Low CU per report render
Power BI Refresh Medium CU during scheduled refresh
Real-Time Eventstream Continuous low CU (always running)
OneLake Storage Billed separately per GB (NOT CUs)

Important: OneLake STORAGE is billed separately from compute CUs. Storage costs about $0.023 per GB/month (same as ADLS Gen2 Hot tier). CUs cover only compute operations.

F-SKU Options and Pricing

F-SKU CUs PAYG (per hour) Reserved 1-Year (per month) Best For
F2 2 ~$0.36/hr ~$262/mo Individual dev, learning, DP-700 prep
F4 4 ~$0.72/hr ~$525/mo Small team experiments
F8 8 ~$1.44/hr ~$1,050/mo Small department, light workloads
F16 16 ~$2.88/hr ~$2,100/mo Medium department
F32 32 ~$5.76/hr ~$4,200/mo Data engineering team
F64 64 ~$11.52/hr ~$8,400/mo Enterprise, Power BI Premium equivalent
F128 128 ~$23.04/hr ~$16,800/mo Large enterprise
F256 256 ~$46.08/hr ~$33,600/mo High-concurrency analytics
F512 512 Negotiated Negotiated Very large deployments
F1024 1024 Negotiated Negotiated Enterprise-scale
F2048 2048 Negotiated Negotiated Maximum scale

Prices are approximate, vary by Azure region, and subject to change.

The cost scales linearly — each CU costs approximately $0.18/hour regardless of SKU size. The difference is how many CUs you get.

Pay-As-You-Go vs Reserved

Billing How It Works Discount Best For
Pay-As-You-Go (PAYG) Pay per hour of capacity running None (full price) Dev/test environments, unpredictable workloads
Reserved 1-Year Commit to 1 year, pay monthly ~40% discount Production environments, predictable workloads

Example: F64 capacity
  PAYG: $11.52/hr × 24hrs × 30 days = ~$8,294/month
  Reserved: ~$5,257/month (40% savings)
  Savings: ~$3,037/month = ~$36,000/year

Pause and Resume (Cost Saving)

With PAYG, you can pause the capacity when not in use — compute billing stops immediately:

Monday 8 AM:  Resume capacity   → billing starts
Monday 6 PM:  Pause capacity    → billing stops
              10 hours of billing instead of 24
              58% cost savings for a 10-hour workday

What happens when paused: – All compute stops (notebooks, queries, pipelines cannot run) – Scheduled refreshes and pipelines do not execute – OneLake DATA remains accessible (storage is billed separately) – Power BI reports show stale data (no refresh possible)

What does NOT pause: – OneLake storage costs (always billed) – Mirroring data costs

Real-life analogy: Pausing is like turning off the lights when you leave the office. The rent (storage) stays the same, but the electricity bill (compute) drops to zero overnight.

Important: Reserved instances CANNOT be paused for savings — you pay 24/7 regardless. Use PAYG for dev environments that can be turned off, and Reserved for production that runs continuously.

The F64 Threshold (Why It Matters)

F64 is the most important threshold in Fabric licensing:

Feature Below F64 (F2-F32) F64 and Above
All Fabric workloads ✅ Available ✅ Available
Power BI viewers Need Pro license ($10/user/mo) Free (no per-user license for viewers)
Copilot in Fabric ❌ Not available ✅ Available
Autoscale ❌ Not available ✅ Available
Direct Lake max Limited model size Full Direct Lake
XMLA endpoint Limited Full read/write

The big one: Below F64, every person who views a Power BI report needs a $10/month Pro license. At F64+, viewers are free. For a company with 500 report viewers, that is $5,000/month saved.

Real-life analogy: F64 is like the premium tier of a streaming service. Below F64 (basic tier), each family member needs their own subscription. At F64 (premium tier), everyone in the family watches for free on one subscription.

What Is a Workspace?

A Workspace is a container for organizing Fabric items. It is like a folder or project that groups related items together and controls who has access.

Workspace: Sales_Analytics
  ├── Lakehouse: sales_raw_data
  ├── Lakehouse: sales_curated
  ├── Notebook: clean_sales_data
  ├── Pipeline: daily_sales_ingest
  ├── Warehouse: sales_dwh
  ├── Semantic Model: sales_model
  ├── Report: monthly_revenue
  └── Report: regional_breakdown

Key Workspace Properties

  • Name: Descriptive (e.g., Sales_Analytics, DataEngineering_Dev)
  • Capacity assignment: Every workspace is assigned to one capacity
  • OneLake storage: Each workspace gets its own OneLake folder automatically
  • Permissions: Role-based access per workspace (Admin, Member, Contributor, Viewer)
  • Git integration: Optional — connect to Azure DevOps or GitHub for version control

Workspace vs Capacity Relationship

One Capacity can host MANY Workspaces:

Capacity: Production_F64
  ├── Workspace: Sales_Analytics       (assigned to this capacity)
  ├── Workspace: Marketing_Analytics   (assigned to this capacity)
  ├── Workspace: Finance_Reports       (assigned to this capacity)
  └── Workspace: Data_Engineering      (assigned to this capacity)

Capacity: Dev_F8
  ├── Workspace: Dev_Sandbox           (assigned to this capacity)
  └── Workspace: Testing               (assigned to this capacity)

The relationship: – One capacity → many workspaces – One workspace → exactly one capacity (at a time) – You can MOVE a workspace from one capacity to another – All workspaces on the same capacity SHARE the CUs

Real-life analogy: The capacity is the gym membership plan (how much equipment/time you get). The workspace is your gym locker (your personal storage within the gym). Multiple lockers share the same gym. You can move your locker to a different gym (change capacity) if needed.

Creating a Workspace

Step by Step

  1. Go to app.fabric.microsoft.com
  2. Click Workspaces in the left sidebar
  3. Click + New workspace
  4. Fill in:
  5. Name: Sales_Analytics
  6. Description: “Sales team data lake, warehouse, and reports”
  7. Expand Advanced:
  8. License mode: Choose your capacity (Fabric capacity, Trial, etc.)
  9. Capacity: Select your F-SKU capacity from the dropdown
  10. Click Apply

The workspace is created with an empty OneLake folder ready for data.

Workspace Roles and Permissions

Role What They Can Do Who Gets It
Admin Everything + manage workspace settings, add/remove members Workspace owner, team lead
Member Create, edit, delete all items + share reports Data engineers, senior analysts
Contributor Create, edit, delete items (cannot share reports or manage access) Junior engineers, data scientists
Viewer View reports and dashboards only (cannot edit anything) Business analysts, managers, executives

Workspace: Sales_Analytics
  Admin:       Naveen (data engineering lead)
  Members:     Shrey, Vrushab (data engineers)
  Contributor: Priya (data scientist)
  Viewers:     25 sales managers, 5 VPs

Workspace Organization Patterns

Pattern 1: By Team / Domain (Most Common)

Workspace: Sales_Analytics
Workspace: Marketing_Analytics
Workspace: Finance_Reports
Workspace: HR_Workforce
Workspace: Data_Engineering (shared pipelines)

Pattern 2: By Environment (Dev/UAT/Prod)

Workspace: Sales_Dev        → Dev capacity (F8)
Workspace: Sales_UAT        → UAT capacity (F16)
Workspace: Sales_Prod       → Prod capacity (F64)

Pattern 3: By Medallion Layer

Workspace: Bronze_Raw_Data        → All raw ingestion
Workspace: Silver_Curated         → All transformation
Workspace: Gold_Analytics          → Business-ready tables
Workspace: Reports_Dashboards     → Power BI reports
Capacity: Dev (F8)
  Workspace: DataEng_Dev
  Workspace: Analytics_Dev

Capacity: Prod (F64)
  Workspace: DataEng_Prod
  Workspace: Sales_Analytics
  Workspace: Finance_Reports
  Workspace: Executive_Dashboards

What Are Items?

Items are the individual components you create inside a workspace. Everything in Fabric is an item — lakehouses, notebooks, pipelines, warehouses, reports, etc.

All Fabric Items Listed and Explained

Data Engineering Items

Item What It Is Equivalent In
Lakehouse Delta Lake storage + SQL analytics endpoint. Store tables and files. ADLS Gen2 + Databricks catalog
Notebook PySpark/SQL/R interactive notebook. Same as Databricks notebooks. Databricks Notebook
Spark Job Definition Submit a Spark job (JAR/Python) without a notebook. Databricks Job (JAR task)
Environment Configure Spark settings, libraries, and compute for notebooks. Databricks Cluster Config

Data Factory Items

Item What It Is Equivalent In
Pipeline Orchestration with Copy, ForEach, If Condition, Lookup activities. ADF Pipeline
Dataflow Gen2 Visual transformations using Power Query (no-code ETL). ADF Data Flow / Power Query

Data Warehouse Items

Item What It Is Equivalent In
Warehouse Fully managed SQL data warehouse. T-SQL, tables, views, stored procedures. Synapse Dedicated SQL Pool

Data Science Items

Item What It Is Equivalent In
ML Model A registered machine learning model. MLflow Model in Databricks
ML Experiment Track training runs with parameters and metrics. MLflow Experiment

Real-Time Intelligence Items

Item What It Is Equivalent In
Eventhouse Real-time analytics database (KQL). Azure Data Explorer
KQL Queryset Kusto Query Language queries on streaming data. ADX Query
Eventstream Ingest and process real-time events. Event Hubs + Stream Analytics
Reflex Automated actions triggered by data conditions. Azure Logic Apps (data-triggered)

Power BI Items

Item What It Is Equivalent In
Semantic Model Data model defining relationships, measures, hierarchies. Power BI Dataset
Report Visual dashboard with charts, tables, KPIs. Power BI Report
Paginated Report Pixel-perfect formatted reports for printing/export. SSRS / Power BI Paginated

Other Items

Item What It Is Equivalent In
OneLake Shortcut Link to data in another lakehouse, ADLS, S3, or Dataverse — no data copy. Symbolic link / External table
Mirrored Database Real-time replica of an external database (SQL, Cosmos DB, Snowflake). CDC replication

Lakehouse vs Warehouse: Which to Create?

This is the most common question for new Fabric users:

Feature Lakehouse Warehouse
Language PySpark (notebooks) + SQL (analytics endpoint) T-SQL only
Storage format Delta Lake (Parquet + transaction log) Managed columnar (optimized for SQL)
Best for Data engineering, ETL, unstructured data, ML SQL analytics, BI queries, traditional DW
Schema enforcement Schema-on-read (flexible) Schema-on-write (strict)
MERGE support PySpark Delta MERGE T-SQL MERGE
Primary users Data engineers, data scientists Data analysts, BI developers
When to choose Building Bronze/Silver layers, PySpark transforms Building Gold layer for BI, SQL-based reporting

The pattern most companies use:

Lakehouse (Bronze)  → Lakehouse (Silver)  → Warehouse (Gold) → Power BI Reports
   PySpark               PySpark                T-SQL              Direct Lake

Lakehouses for engineering. Warehouse for analytics. Power BI on top.

OneLake: Where Everything Is Stored

Every Fabric item stores its data in OneLake automatically. You never create a storage account, configure access keys, or set up linked services.

OneLake (the universal storage)
  │
  ├── Workspace: Sales_Analytics/
  │     ├── sales_lakehouse.Lakehouse/
  │     │     ├── Tables/
  │     │     │     ├── customers/        (Delta table)
  │     │     │     ├── orders/           (Delta table)
  │     │     │     └── products/         (Delta table)
  │     │     └── Files/
  │     │           ├── raw_csv/          (uploaded files)
  │     │           └── images/
  │     └── sales_warehouse.Warehouse/
  │           └── dbo/
  │                 ├── dim_customer/     (warehouse table)
  │                 └── fact_sales/
  │
  └── Workspace: Data_Engineering/
        └── bronze_lakehouse.Lakehouse/
              ├── Tables/
              └── Files/

OneLake path format:

https://onelake.dfs.fabric.microsoft.com/workspace-name/item-name.Lakehouse/Tables/table-name/

Or in a notebook:

df = spark.read.format("delta").load("Tables/customers")

No abfss://, no storage account name, no access key. Just the table path.

OneLake Shortcuts

Shortcuts are pointers to data that lives elsewhere — no data is copied:

OneLake Shortcut:
  sales_lakehouse/Tables/external_customers
    → Points to: abfss://raw-data@companyadls.dfs.core.windows.net/customers/
    → Data stays in ADLS Gen2
    → Fabric reads it as if it were a local table
    → Zero data movement, zero duplication

Shortcuts can point to: – Another Fabric Lakehouse (cross-workspace data sharing) – ADLS Gen2 (bring existing data lake into Fabric without migration) – Amazon S3 (cross-cloud access) – Google Cloud Storage – Dataverse (Dynamics 365 data)

Real-life analogy: A shortcut is like a library bookshelf label that says “For physics textbooks, go to the Science building, Room 301, Shelf B.” The books are not physically in your library — but you can access them as if they were. No need to buy duplicate copies.

How Capacity, Workspace, Items, and OneLake Connect

┌─────────────────────────────────────────────────────────┐
│  CAPACITY (F64)                                          │
│  "The compute engine"                                    │
│  • 64 CUs shared across all workspaces                  │
│  • Throttles when overloaded                             │
│  • Billed per hour or reserved yearly                    │
│                                                          │
│  ┌────────────────────────┐  ┌───────────────────────┐  │
│  │ WORKSPACE: Sales       │  │ WORKSPACE: DataEng    │  │
│  │ "The project folder"   │  │                       │  │
│  │                        │  │                       │  │
│  │ ┌──────────────────┐   │  │ ┌─────────────────┐   │  │
│  │ │ ITEMS:           │   │  │ │ ITEMS:          │   │  │
│  │ │ • Lakehouse      │   │  │ │ • Lakehouse     │   │  │
│  │ │ • Notebook       │   │  │ │ • Notebook      │   │  │
│  │ │ • Pipeline       │   │  │ │ • Pipeline      │   │  │
│  │ │ • Warehouse      │   │  │ │ • Environment   │   │  │
│  │ │ • Report         │   │  │ │                 │   │  │
│  │ └──────────────────┘   │  │ └─────────────────┘   │  │
│  └────────────────────────┘  └───────────────────────┘  │
└─────────────────────────────────────────────────────────┘
                          │
                          │ All data stored in
                          ▼
┌─────────────────────────────────────────────────────────┐
│  ONELAKE (storage layer)                                 │
│  "The universal data lake"                               │
│  • Automatic — no setup needed                           │
│  • Delta Lake format by default                          │
│  • Billed per GB/month (~$0.023/GB)                     │
│  • Accessible by ALL items in ALL workspaces             │
│  • Supports shortcuts to ADLS, S3, GCS                  │
└─────────────────────────────────────────────────────────┘

Environment Setup: Dev, UAT, Prod

Azure Subscription
  │
  ├── Fabric Capacity: Dev_F2 (PAYG — pause when not in use)
  │     ├── Workspace: DataEng_Dev
  │     └── Workspace: Analytics_Dev
  │
  ├── Fabric Capacity: UAT_F8 (PAYG — run only during testing)
  │     ├── Workspace: DataEng_UAT
  │     └── Workspace: Analytics_UAT
  │
  └── Fabric Capacity: Prod_F64 (Reserved 1-Year — always running)
        ├── Workspace: DataEng_Prod
        ├── Workspace: Sales_Analytics
        ├── Workspace: Finance_Reports
        └── Workspace: Executive_Dashboards

Cost optimization: – Dev: F2 PAYG, pause overnight → ~$50-80/month – UAT: F8 PAYG, run only during testing sprints → ~$200-400/month – Prod: F64 Reserved → ~$5,257/month (40% discount vs PAYG)

Free Trial: Getting Started Without Paying

Microsoft offers a 60-day free Fabric trial with F64 equivalent capacity:

  1. Go to app.fabric.microsoft.com
  2. Sign in with your Microsoft work or school account
  3. Click your profile icon → Start trial
  4. You get 60 days of free Fabric with full F64 capabilities

What you can do during trial: – Create workspaces, lakehouses, warehouses, notebooks, pipelines – Run PySpark transformations – Build Power BI reports with Direct Lake – Practice for DP-700 certification

What happens after trial: – Items remain but become read-only – You need a paid F-SKU capacity to continue creating and running items – Data in OneLake is preserved

Common Mistakes

  1. Putting all workloads on a too-small capacity — an F2 capacity with 10 users running notebooks, queries, and reports simultaneously will throttle heavily. Right-size your capacity for the workload.

  2. Not separating Dev and Prod capacities — a heavy dev notebook on shared capacity slows down production Power BI reports. Use separate capacities for environments.

  3. Creating too many lakehouses — each lakehouse is a separate storage container. Use one lakehouse for Bronze, one for Silver, one for Gold — not one per table.

  4. Confusing Lakehouse with Warehouse — Lakehouse is for PySpark engineering (Delta tables). Warehouse is for T-SQL analytics. Use lakehouse for ETL and warehouse for BI queries.

  5. Not using shortcuts — copying data between workspaces duplicates storage costs. Use OneLake shortcuts to reference data without copying.

  6. Leaving PAYG capacity running overnight — an F8 running 24/7 costs ~$1,050/month. Pausing during off-hours can save 50-70%.

  7. Expecting F2 to handle production workloads — F2 has only 2 CUs. A single Spark notebook can consume all of them. F2 is for learning and light dev only.

Interview Questions

Q: What is a Fabric Capacity and how does it work? A: A capacity is a pool of Capacity Units (CUs) that powers all Fabric workloads. You purchase an F-SKU (F2 to F2048), and all workspaces assigned to that capacity share the CUs. When you run notebooks, queries, pipelines, or refresh reports, they consume CUs from the pool. If demand exceeds capacity, Fabric throttles operations.

Q: What is the relationship between Capacity and Workspace? A: One capacity can host multiple workspaces, but each workspace belongs to exactly one capacity at a time. The capacity provides compute power. The workspace organizes items and controls access. All workspaces on the same capacity share the CU pool.

Q: What is the difference between a Lakehouse and a Warehouse in Fabric? A: Lakehouse uses Delta Lake format and is accessed via PySpark notebooks — best for data engineering, ETL, and unstructured data. Warehouse uses managed columnar storage and is accessed via T-SQL — best for SQL analytics and BI queries. Most companies use lakehouses for Bronze/Silver layers and a warehouse for the Gold layer.

Q: What is OneLake and why is it important? A: OneLake is Fabric’s built-in storage layer, based on ADLS Gen2 with Delta Lake as the default format. Every workspace gets OneLake automatically — no storage accounts to create, no access keys to manage. All Fabric items read and write to OneLake natively, eliminating the connection configuration overhead of the traditional Azure stack.

Q: What is the significance of the F64 threshold? A: F64 is where Power BI viewers no longer need individual Pro licenses ($10/user/month). Below F64, every report viewer needs a Pro license. At F64+, viewers are free. F64 also unlocks Copilot, autoscale, and full XMLA endpoint access.

Q: What are OneLake Shortcuts? A: Shortcuts are pointers to data stored outside the current lakehouse — in another Fabric workspace, ADLS Gen2, Amazon S3, or Google Cloud Storage. They provide access without copying data, eliminating duplication and reducing storage costs. Fabric reads shortcut data as if it were local.

Wrapping Up

Capacity, Workspace, and Items are the three building blocks of everything in Fabric. Capacity is the compute engine (how much power you have). Workspace is the project container (who has access to what). Items are the things you build (lakehouses, notebooks, pipelines, reports).

Once you understand these three concepts and how OneLake connects them all, building in Fabric becomes straightforward — because the data engineering concepts (pipelines, Delta Lake, PySpark, SQL) are exactly what you already know from this blog. The building blocks are new. The engineering is the same.

Related posts:Microsoft Fabric OverviewMedallion ArchitectureDelta Lake Deep DiveAzure RBAC RolesAzure Connections and Authentication


Naveen Vuppula is a Senior Data Engineering Consultant and app developer based in Ontario, Canada. He writes about Python, SQL, AWS, Azure, and everything data engineering at DriveDataScience.com.

Leave a Comment

Your email address will not be published. Required fields are marked *

Scroll to Top
Share via
Copy link