Features

Every layer of the data platform,in one workspace.

DataFloem is a data platform built on Apache Spark and Kubernetes. It connects your sources, shapes the data with visual jobs or code, runs them on your own clusters, keeps the results in governed catalogs and records who did what. Here is what each layer does.

Features marked Enterprise come with an Enterprise Edition license. Compare the editions

Connections

Connect the systems you already run.

Bring scattered systems into one place: from legacy databases to object storage, lakehouse catalogs and NoSQL. Each connection is added once, tested, and shared only with the projects that need it.

Relational databases

PostgreSQL, Oracle, SQL Server, MySQL, Teradata, Vertica, ClickHouse, Trino, Azure SQL and Azure Synapse.

Cloud databases

BigQuery, connected with a Google Cloud service account.

Object storage

Amazon S3 and S3-compatible stores such as MinIO and Ceph, with path-style access and a root directory of your choice.

Cloud storage

Azure Blob Storage and Data Lake Storage Gen2 through Microsoft Entra ID, and Google Cloud Storage through a service account.

NoSQL

MongoDB and Elasticsearch, with SSL/TLS where the server asks for it.

Catalogs

Iceberg REST, JDBC and file catalogs, so your tables stay in open formats any engine can read.

  • FormatsCSV, Parquet, ORC and JSON, with Snappy or Gzip
  • SecretsPasswords and any driver option marked secret stay masked
  • TestingTest Connection checks a connection before you save it
  • AccessProjects see only the connections assigned to them

In the docsSources Targets

Jobs

Build integrations visually. Every node knows its metadata.

A job is a flow on a canvas: sources, transformations and targets, run on Apache Spark. Teams build new integrations without writing them from scratch, and each node opens a typed form, so mistakes show up while you build, not when the job runs.

Joins you can read.

Add a table, choose the join type, and build the condition from rules and groups. Each column shows its type next to its name, so a key mismatch is visible before it reaches the engine.

Source and TargetSelectExpressionFilterJoinAggregationUnionDistinctSortRepartitionSamplingSQLWranglerPython
The Join panel in DataFloem: a Left Outer Join on rdbms_order_items with the rule id Long equals order_id Long, and an output schema of 14 columns.

Versions

Every job keeps versions, each a full copy of its canvas. Change a pipeline safely while the default version keeps running, and see who made each version and where it came from.

Parameters

Static or expression values, used in any field as $$name. Expressions are evaluated when the job runs.

SQL and Python steps

When a step is easier to write than to draw, write it as a query or a Python script and declare its output.

Run logs

Every run reports each step's status, message, attempt and timing, with the stack trace when one fails. Click a step to find its node.

Locking

The first person to edit a job locks it, so teammates never overwrite each other's work. Only the lock owner or an administrator can release it.

Copy and export

Copy a job to start a new one, or export a job or a single version to a file and import it into another environment.

In the docsJobs Versions Parameters Run logs Locked jobs

Data preview

Check the rows at any node.

Run the job up to the node you are working on and open its rows in place. Filter, sort and page through the result without leaving the canvas.

  • Partial runs. Select the nodes you care about and run only them.
  • Compare before and after. Each debug run keeps its own preview, so you can see what your change did.
  • Status on the node. Running, finished and failed states show on the canvas. A node whose settings, wiring or upstream changed since its last run is marked stale.
Data Preview under the canvas for the By Product aggregation: product_name, sum_quantity and cnt_quantity columns, 100 records.
Schema drift

Column changes upstream. Only the affected nodes ask for review.

With dozens of sources changing on their own schedules, schema changes are a daily fact. Every node remembers the columns it was saved with, and when a source gains, loses or retypes a column, DataFloem marks only the nodes it reaches.

CHANGE

Source change

If a column only changed position, DataFloem fixes the reference for you. Nodes whose output could change get a marker that names the exact columns.

TRACE

The canvas follows it.

Column ids that only moved are repaired for you. Nodes whose meaning could change get a marker, with the exact column names in the tooltip.

DECIDE

A person signs off.

Open the node and choose: adopt the new columns into its output, or keep them excluded. A full run warns you while reviews are still open.

The job canvas with a review marker on the By Product aggregation and the tooltip: New input columns since this node was last saved: is_gift. Open and save the node to review them.
Code Flows

Some work belongs in code. Keep it next to the jobs.

For ML feature preparation, custom integrations or anything the canvas does not cover, write Python in Jupyter Lab, package it as an image and run it on your own Kubernetes cluster, with the same connections and access rules as your jobs.

Studio Sessions for the Top Sellers Report Code Flow: a dev-studio session is running, with an Open button and a Start Session button.
Studio: a running session, one click to open.
A Build Recipe for the Top Sellers Report Code Flow with five build steps: FROM base image, WORKDIR app folder, RUN install packages, ENV-VAR report limit, USER run as app.
Build Recipe: ordered steps.
A Run Recipe with a cluster, the source dfl-postgres, the target postgres_dfl, and CPU and memory requests.
Run Recipe: cluster, sources, targets.

Files

Save Python scripts and the files they need from a Studio session straight to the Code Flow.

Studio sessions

Start a Jupyter Lab on a cluster and open it next to the Code Flow, so data scientists work in the tools they know.

Build Recipes Enterprise

Package your code as a container image in ordered steps, built by an agent on your own server, so code never leaves your environment.

Run Recipes Enterprise

Run a built image on a cluster with the project's sources and targets, environment variables, and CPU and memory requests and limits.

Logs

Agent builds, Studio sessions and runs each keep a log with their status and duration.

Locking

A Code Flow locks on its first edit, like a job, until its owner or an administrator releases it.

In the docsCode Flow files Studio sessions Build Recipes Run Recipes Code Flow logs

SQL editor

Query the catalogs your jobs fill.

Analysts and engineers query the same governed tables from the same workspace. Browse the catalogs in a tree, open a table in a new tab and run the query on the cluster you pick.

  • Tabs and saved queries. Work in several tabs at once, save the queries you reuse, and find earlier runs under Recent.
  • A tree of your catalogs. Browse catalogs, schemas and tables, and open a table in the editor as a ready query.
  • Your cluster. Choose the cluster a query runs on, and stop it at any time.
  • An editor that helps. Syntax highlighting and auto-completion, with fully qualified table names.
  • Results you can use. Filter the results grid and export it.
The SQL Queries editor in DataFloem: saved queries and the dfl.lake tables in the catalog tree on the left, the Top sellers by product query in the editor, and its results below, next to the recent runs.

In the docsSQL queries

Catalogs

One governed catalog for your lakehouse.

Your tables live in open formats like Iceberg, organized in catalogs that jobs write to, analysts query and AI projects draw from. Access rules decide who can see each catalog, namespace and table.

Iceberg REST

Serve each catalog over Iceberg REST, so other engines can read the same tables. Compaction and snapshot cleanup keep them fast, with a default warehouse per catalog.

Namespaces

File or JDBC namespaces, each on a connection with its own properties.

Tables

File tables with a format, a location and a schema you build, and JDBC tables picked from a source, several at a time.

Policies

Allow or deny actions on a catalog, a namespace or a table, with wildcards and a priority that settles conflicts.

Roles

Group policies into roles that match how your teams work.

Bindings

Give a role to a user or to a group.

In the docsCatalogs Catalog namespaces Catalog tables Policies Roles Bindings

Compute

Runs on any Kubernetes, in the cloud or on-premises.

DataFloem is cloud-native and self-hosted. Install it wherever Kubernetes runs: a public cloud, a private cloud or your own data center. Jobs run on Apache Spark across your clusters, scale with the work, and your data and credentials never leave your environment.

Clusters

Dynamic clusters that scale with the work and stop when idle, so you pay only for what runs. Or static clusters for steady loads. Set the image, CPU and memory of each pod.

Cluster configurations

Profiles of shared variables and secrets that inherit from a parent and override only what differs.

Studios

Jupyter Lab or VS Code workspaces with their own CPU and memory, behind NGINX or Traefik ingress.

Images

The images your clusters and Run Recipes use, from private, public or cloud registries.

Build agents Enterprise

Agents on your own servers build Code Flow images and stream the log back as they work.

Assigned to projects

Clusters and Studios are assigned to the projects that use them, or requested and approved as a task.

In the docsClusters Cluster configurations Studios Images Agents

Access

Access that follows the shape of your organization.

Namespaces hold folders, folders hold projects, and projects hold the work and the resources it may use. Every module has its own permissions for users and groups.

Namespaces

Keep environments, teams or customers apart. New users, and first-time LDAP or SSO users, start in the default namespace.

Projects

A project brings together its jobs, Code Flows and SQL queries with the sources, targets, catalogs, clusters and Studios assigned to it.

Permissions

For each module, give users and groups the right to view, create, change, delete and manage access. A user's rights are the sum of their groups' rights.

LDAP Enterprise

Sign in against your directory over LDAPS or StartTLS, with group mapping and an allowed-groups list. Passwords are never stored.

Single sign-on Enterprise

Google, Okta, Microsoft Entra ID or Keycloak over OpenID Connect. Users are created the first time they sign in.

Tasks and access requests

An access request becomes a task for the group that approves it, and stays To Do until it is Done or Rejected.

In the docsNamespaces Projects Users Groups LDAP settings SSO providers Tasks

Audit

A record of who did what, kept as long as you need.

Every request to DataFloem and every change to its data is logged, ready for compliance reviews. You decide what to track and for how long.

Audit logs Enterprise

Every API request, with the user, the endpoint, the status code and the time.

Change logs Enterprise

Every insert, update and delete in DataFloem's own data, collection by collection.

Log settings Enterprise

Keep logs from 0 to 730 days, and turn logging on or off for each module.

Locks

Locked jobs and Code Flows are listed in one place, where an administrator can release a lock left behind.

In the docsAudit logs Change logs Log settings Locked jobs

See it working.

Book a demo and we will walk your team through the parts that matter to you, from the canvas to Code Flows.

ESC

Start typing to search across the documentation.