Skip to main content
You can use Cedar data from the Databricks workspace you already run. You don’t need a separate Cedar Databricks account: Cedar provides the data and the credentials, and Databricks does the compute. The Databricks page in Data Depot summarizes three ways to connect.
Connect Databricks page with Read the Databricks guide, What Cedar doesn't do, and the Postgres via JDBC, Cedar APIs from notebooks, and Parquet landing to Delta cards

The three Databricks paths in Data Depot, for an EU carrier

Each card shows a badge with your own status for the carrier selected in the sidebar, so you can see which paths you can set up: Read the Databricks guide at the top of the page opens this guide. The What Cedar doesn’t do panel next to it sums up the limits: Cedar never writes to your Delta tables or their logs, doesn’t host a Unity Catalog or run a Databricks workspace for you, doesn’t use Databricks Partner Connect, and doesn’t share its delivery credential with Databricks.

Query Postgres views over JDBC

Best when you want live data on demand and don’t need to keep a copy.
1

Provision a view

In Data Depot, open Postgres, provision the source you need, and create its database login.⁠‌​​‌​‌‌‌​​​​‌‌​​‌​​‌​‌‌​⁠ See Postgres views.
2

Store the login in Databricks

Save the username and password in a Databricks secret scope rather than in the notebook.
3

Read the view

Use the host, port, database, and view from the credential. SSL is required.
Each read queries Cedar’s current data. To keep history or a local copy, write the result to your own Delta table on a schedule. If your workspace must reach Cedar over a private network, see Private network connectivity. For a copy that runs on your own SLA rather than Cedar’s Postgres service, use CDC delivery into Delta.

Call Cedar APIs from a notebook

Best when you need data that isn’t a Postgres source, or want the same API responses your other integrations use.
1

Create an API client

In Data Depot, open API and create a client with the endpoints the notebook needs. See API clients.
2

Store the key

Save the key in a Databricks secret scope.
3

Call the API

Send the key in x-arms-api-key and an assumed user’s email in x-arms-assume-user.
Cedar’s API permissions still apply to every call. For interactive questions instead of code, you can also connect an AI assistant with MCP.

Load CDC deliveries into Delta

Best when you want a current-state copy of Locations or Waybills in your lakehouse that updates every few minutes. Data Depot delivers each product as Parquet to your Azure or Amazon S3 landing zone, and the Cedar Databricks notebook turns one delivery generation into a current-state Delta table in your workspace.
CDC delivery is currently an EU pilot for carriers on Cedar’s EU production environment. We’re happy to make it available in the US; contact Cedar sales to discuss. Postgres JDBC and API access remain available for every carrier with Data Depot access.
Do not point Auto Loader directly at the Cedar Parquet folders. Cedar uploads each Parquet object before its manifest.json. The manifest is the commit signal. Reading the Parquet path directly can process an incomplete or abandoned batch.

Before you start

You need:
  • a Databricks workspace with Delta Lake and access to create tables;
  • a Unity Catalog external location, volume, or other Databricks storage configuration that can read your landing zone;
  • a live Data Depot CDC delivery; and
  • separate read access for Databricks. Data Depot stores the credential Cedar uses to write the delivery, but does not share that secret with Databricks.
The initial snapshot is currently delivered as one Parquet object. Contact Cedar before onboarding a very large carrier dataset so the first snapshot can be checked against the current delivery capacity.

1. Create and verify the delivery

1

Create a subscription

In Data Depot, open Delivery, select Subscribe to CDC, then choose Locations or Waybills and an Azure or S3 destination.⁠‌​​‌​‌‌‌​​​​‌‌​​‌​​‌​‌‌​⁠ See CDC delivery.
2

Wait for the snapshot

Open the subscription and wait until Snapshot delivered has a timestamp. A Live subscription can also have newer change batches.
3

Record the generation details

Copy the Databricks base path shown under Databricks ingestion. Data Depot converts Azure container URLs to abfss:// and includes the destination prefix, subscription ID, and generation. The same panel provides the notebook download and this guide.
Databricks ingestion panel with the base path, Copy base path, Download notebook, and Read setup guide

The Databricks ingestion panel on a CDC subscription

The underlying relative generation path has this form:
Data Depot assembles it with your destination and optional prefix:

2. Import the notebook

On the subscription’s page, select Download notebook. You can also download it from the Parquet landing to Delta card on the Databricks page in Data Depot. In your Databricks workspace, import cedar_product_cdc_to_delta.py as a source file. The notebook has four parameters: Use a new target_table when you load a generation for the first time. Multiple Cedar targets can share one state_table.

3. Run and schedule it

Run the notebook once interactively. It will:
  1. require the committed snapshot manifest;
  2. validate and load the snapshot;
  3. expand the product fields from payload_json into columns;
  4. find committed change manifests;
  5. ignore already-applied rows from overlapping delivery ranges;
  6. keep the newest event for each product key in a batch; and
  7. update, insert, or delete rows with a sequence-guarded Delta MERGE.
After the first successful run, create a Databricks job using the same parameters. Schedule it at or after the delivery interval selected in Data Depot. The merge is retry-safe. If the target merge succeeds but the apply-state update is interrupted, the next run sees the same batch again and ignores events whose _cedar_sequence is not newer.

Result table

The target table contains one current row per product_key. It includes the selected product fields plus Cedar metadata:
  • _cedar_sequence — the latest applied change sequence for that key;
  • _cedar_operation — upsert for current rows;
  • _cedar_commit_time — source commit time in epoch milliseconds;
  • _cedar_schema_version — pinned product contract version;
  • _cedar_snapshot_generation — subscription generation;
  • _cedar_deleted — current rows are false; rows delivered as true are removed; and
  • payload_json — the original Cedar product envelope.

Generation changes

A generation pins its schema and selected columns.⁠‌​​‌​‌‌‌​​​​‌‌​​‌​​‌​‌‌​⁠ If you create a new subscription or generation, use a new target table or complete a controlled replacement. Do not point an existing apply-state row at a different generation.

Troubleshooting

  • Snapshot manifest not found: Wait until Data Depot shows Snapshot delivered.
  • Permission denied on the landing zone: Configure Databricks read access to the landing zone. The credential entered in Data Depot is stored for Cedar delivery and is not returned.
  • Target already exists without Cedar apply state: Retry first. The notebook recovers the state when the table exactly matches the committed snapshot. If it reports a mismatch, choose a new table or verify and remove the incomplete target.
  • JDBC connection fails: Check that SSL is required in the URL (sslmode=require), that the password hasn’t been reset, and that your workspace can reach the host and port in the credential.
  • API calls return 401: Check the x-arms-api-key and x-arms-assume-user headers. See API clients.