Build and update tables
SQL on the files to build or update stored (materialized) tables and views.
Technical users, analysts, business users and other systems all query the same governed files. Every request is compiled with the asker’s row- and column-level access and run in place. In conversations the model writes the query without seeing the data, and large exports run at constant memory.
Whoever asks, the request takes the shared path: compiled from governed definitions with the asker's row- and column-level access, run on the files in place, and logged.
SQL on the files to build or update stored (materialized) tables and views.
Query any table, at any version or business date, without loading it anywhere.
Questions in plain language, answered as tables or charts. The model never sees the data.
Every table is available through a published API, on an API key basis, under the same row- and column-level access.
Large exports to CSV, TXT, JSON, Parquet or Excel, at constant memory.
The SQL that runs the platform's own pipelines runs directly on the Parquet in storage. Nothing is imported into a database or warehouse first, and every query still goes through the same compiler, row- and column-level access and audit log.
Conversational analytics and visualization use the same query path as everything else. The model reasons over governed metadata to write the query; it is never given the data. The query then runs through the same compiler and row- and column-level access as a dashboard or an API call.
A router sends the question to the right agent, carrying who is asking.
Metric and entity definitions, relationships and the glossary. Never rows.
The compiler adds the row and column filters, so a prompt cannot widen what a role can see.
DuckDB runs the query in place; the answer comes back as a table or chart.
Exports matter when a dataset leaves the platform: TXT or XML files for regulatory submissions, JSON for API consumers, or CSV, Parquet and Excel for analysis elsewhere. DuckDB writes the output directly to object storage; the application coordinates the job and never holds the full result set. Peak memory is set by configuration, not by export size.
Requests are hashed, including the user's row and column access. In-flight jobs are joined and finished files served from cache, with configurable retention.
The API returns a job ID at once and the export runs as a background job, so gateway timeouts don't apply.
Columns, filters, business date and row limit are compiled into the query, so unneeded row groups are never read.
DuckDB writes text, JSON and Parquet straight to object storage as a multipart upload, with no staging file.
XLSX uses XlsxWriter's constant-memory mode, fed in batches sized from a memory budget, with Excel's row limit applied in the query.
One record per export tracks status, row count and output location. Failures are recorded and temporary files removed.
Yes. The same SQL the platform's pipelines use runs directly on the Parquet files in storage, on any table type and any version. Nothing is imported into a database or warehouse, and every query still applies your row- and column-level access and is logged.
Yes. Any table can be queried as it stands now, or as it was at an earlier version or business date, directly on the files and under the same row- and column-level access.
No. For conversational analytics and visualization, the model only sees governed metadata: metric and entity definitions, relationships and the business glossary. It uses that context to write the query, which is compiled with the user's row- and column-level access and run by DuckDB on the files, the same way a dashboard query runs. The model has no access path of its own, so a prompt cannot widen what a user's role can see.
Yes. Source files and flattened tables export to CSV, TXT, JSON, Parquet or Excel. DuckDB writes text, JSON and Parquet directly to object storage as a multipart upload. XLSX uses XlsxWriter in constant-memory mode, up to Excel's row limit. Exports run as background jobs, and identical requests with the same access are served from cache.
No step holds the full result set. Projection and predicate pushdown limit what is read, DuckDB streams text, JSON and Parquet output to object storage, and XLSX is written one batch at a time, with batch size derived from a memory budget. Peak memory is set by configuration, not by export size.
Send us one report, reconciliation or pipeline that takes too long or keeps failing today. We'll run it on the platform and show you the execution path, the memory it needed and the time it took.