Skip to content
Request access Sign in

Your entire data stack, in one platform.

Nodeberries is a unified data engineering and analytics platform. Model, ingest, transform, orchestrate, analyse and explore in one connected workspace, with catalog, lineage and governance across all of it.

Nodeberries platform architecture. Sources (databases, warehouses, lakehouses) feed the Build layer: data model, ingestion, ETL, analytics and orchestration around the Nodeberries core, which serves Explore: the semantic catalog, analytics, governance, data chat, the AI assistant and lineage.
Figure 1Platform architecture: connect your sources, build in one place, explore with governance.

Table 1 · The lifecycle

From source tables to decisions, with one catalog and lineage across every stage.

Stage What you do In code

Model

Introspect, or start from scratch

  • Introspect an existing database to start at once, or create a model from scratch.
  • Design in the editor or in YAML, or a mix of both.
  • Enrich the model with business and technical metadata.
# models/sales/customers.yaml
table: customers
columns:
  - { name: id,     type: bigint, key: pk }
  - { name: email,  type: text }
  - { name: region, type: short_text }

Ingest

Simple pipelines

  • Land source tables as staged tables, one pipeline per table, with keys and audit columns.
  • Activate only the tables that should be ingested.
  • Create one pipeline, or many at once from a source database.
# pipelines.yaml
pipelines:
  - source: public.orders
    target: stage.stg_orders
    mode: incremental
    unique_key: [id]
    updated_at_column: updated_at

Transform

SQL jobs

  • Turn staged tables into curated tables with SQL jobs.
  • Add semantic metadata to the curated tables.
  • Build data marts for analytics and dashboards.
-- jobs/marts/fct_sales.sql
SELECT o.order_date AS date,
       c.region,
       o.amount - o.discount AS net_amount
FROM {{ ref('stg_orders') }} o
JOIN {{ ref('stg_customers') }} c ON c.id = o.customer_id
WHERE o.status <> 'cancelled';

Orchestrate

Workflows and schedules

  • Wire ingestion, ETL jobs and job sets into one graph.
  • Read it as a graph; define it in YAML.
  • Schedule workflows and monitor their runs.
# workflows/etl-daily-load.yaml
schedule: { cron: "15 6 * * *", tz: America/New_York }
edges:
  - load_orders → dim_date → end

Analyse

Queries, charts, pages, dashboards

  • Row filters and column masks apply when the query runs.
  • Share, schedule and certify what you build.
  • Follow lineage from a source table to a dashboard.
-- Daily revenue (certified)
SELECT date, SUM(net_amount) AS revenue
FROM marts.fct_sales
GROUP BY date ORDER BY date;

Explore

Data chat, catalog, lineage

  • Ask questions in plain language; data chat works over your warehouse through MCP.
  • The same roles, masks and filters apply as everywhere else.
  • Open the catalog entry and lineage behind any answer.
you  What are the top 10 customers by revenue?

tool query → marts.fct_sales
tool 10 rows, masks applied for your role

Get Nodeberries for your organisation.

Tell us about your organisation. We review every request and reply by email.