DbSchema opens a directory of CSV files through a JDBC driver and treats each file as a table: column types inferred automatically, SQL joins across files, a visual data explorer, and diagrams — no server, no import step.
Trusted by teams at
A data delivery lands as forty flat files, and the questions begin: which columns join, which types lie, which file is the fact table. A spreadsheet answers one file at a time, slowly.
DbSchema treats the whole folder as a schema — each file a table, each column typed by inference — so you interrogate it with SQL and diagrams instead of scrolling.
Everything a database client offers, applied straight to files on disk.
DbSchema samples each file, infers column names and types from headers and rows, and places the resulting tables on a diagram canvas — reviewable and adjustable before any migration.
Compose SELECT, JOIN, and aggregation queries over several files in the visual builder, then read and rerun the generated SQL.
Filter, sort, and page through rows in the data explorer to check that values match their declared types before an ETL run depends on them.
One export builds interactive HTML5 documentation of every inferred table — columns, types, and the annotations you added. Whoever receives the data reads what it contains in a browser before opening a single file.
Explore the Documentation Tool
Two routes lead in. The CsvJdbc driver (csvjdbc.jar) with the URL
jdbc:relique:csv:/path/to/directory maps every .csv in that directory
to a table; its connection properties tune type inference when the defaults miss. Alternatively,
a DuckDB in-memory connection reads files via read_csv_auto('/path/to/file.csv')
in the SQL editor. DbSchema also maintains its own open-source CSV JDBC driver on
GitHub — setup notes live on the
CSV JDBC driver page.
No server, no account — just the free desktop app, with a 15-day Architect trial inside.
Teams working with CSV Files often use these engines too. Explore dedicated guides and JDBC setup for each.