Computed File vs Computed Table
You reached this page from the Computed Files sub-tree. If you already know your raw data lives in files on object storage, keep reading; if the source is a JDBC warehouse instead, jump to Computed Table vs Computed File.
When a Computed File fits
A Computed File is the right choice when:
- The source data lives in files on object storage (Amazon S3, Google Cloud Storage, Azure Data Lake Storage).
- The files are Parquet, ORC, Avro, CSV, TSV, PSV, JSON, Excel, Delta, or Iceberg.
- You want to normalize columns, cast types, or flatten nested arrays (via lateral views +
EXPLODE) using Spark SQL. - You want the transformation cost to scale with your DFS storage layout (partition-aware, columnar-format aware).
- You are OK with a single-source restriction: one
source_container_idper Computed File.
When a Computed Table fits instead
Switch to a Computed Table if:
- The source data lives in a JDBC warehouse (Snowflake, PostgreSQL, Redshift, SQL Server, Oracle, BigQuery, Databricks, and similar).
- You want to reuse the warehouse's own SQL dialect and its query planner.
- The transformation needs joins across multiple base tables or views in the same datastore.
- You want the query pushed down to the warehouse, not evaluated by Qualytics's analytical engine.
Side-by-side comparison
| Feature | Computed File (DFS) | Computed Table (JDBC) |
|---|---|---|
| Source datastore | DFS (S3, GCS, Azure Data Lake Storage) | JDBC warehouse |
| Query language | Spark SQL | Warehouse's own SQL dialect |
| Number of source containers | One source_container_id |
Any base tables and views in the datastore |
| Joins inside the container | No, use a Computed Join | Yes, across base tables of the same datastore |
| Source pre-profile required | Yes, at least once | No |
DISTINCT in the projection |
Not allowed, use GROUP BY |
Allowed if the warehouse allows it |
| Fully-qualified name requirement | Not applicable | SQL Server, Oracle, Redshift |
| Execution runtime | Qualytics's analytical engine | Warehouse engine |
| Materialized on storage | No (metadata-only definition run on demand) | No (metadata-only definition run on demand) |