iTechGuides is reader-supported. When you buy through links on our site, we may earn an affiliate commission. As an Amazon Associate I earn from qualifying purchases. Learn more
To investigate exported CSV or Parquet data in DBeaver without loading it into a production database, connect DBeaver to DuckDB and query the files directly with DuckDB SQL. This route is distinct from DBeaver’s standalone CSV and Parquet drivers, which handle complex queries by importing the file into an internal database.
Connect DBeaver to DuckDB
DuckDB’s documented DBeaver workflow uses the DuckDB JDBC driver. You can connect to an existing DuckDB database file or use :memory: for a temporary session; DuckDB identifies the in-memory option as useful for tasks such as querying Parquet files. The database connection is the SQL engine for the session—your CSV and Parquet files remain file inputs unless you choose to create tables from them.
- Install and open DBeaver, then choose New Database Connection.
- Select DuckDB from the database list.
- For the database path, enter the path to a DuckDB database file or
:memory:. - Select Test Connection. If prompted, allow DBeaver to download the DuckDB JDBC driver.
- If DBeaver cannot download the driver, use DuckDB’s documented manual driver-installation alternative.
- Open a SQL script for the connection, enter a query, and execute it in DBeaver.
These labels and steps follow DuckDB’s DBeaver SQL IDE guide. Driver setup may require network access if the driver is not already installed.
Query a CSV export
Use read_csv to read a CSV directly. DuckDB can also infer the reader from a CSV filename, so the shorter form works as well.
SELECT *
FROM read_csv('exports/orders.csv')
LIMIT 20;
Equivalent extension-inferred query:
SELECT *
FROM 'exports/orders.csv'
LIMIT 20;
Use read_csv when you need to specify reader options. DuckDB can also create a table from the file if you want a reusable table for later queries:
CREATE TABLE orders AS
SELECT * FROM read_csv('exports/orders.csv');
Creating a table is optional; it is not required for direct file queries.
Rank #2
Check inferred CSV types
CSV files do not carry structural metadata that definitively declares column names and data types. DuckDB infers types, so inspect the results when the meaning of a field matters—especially dates, identifiers with leading zeros, unusual delimiters, or strings that resemble null values. Inference is not a substitute for confirming the business meaning of the data. DuckDB’s CSV import documentation describes its reader and options.
Inspect and query a Parquet export
DuckDB can infer Parquet from the filename extension. First inspect the schema, then select only the columns you need and add a filter.
Rank #3
DESCRIBE SELECT * FROM 'exports/orders.parquet';
SELECT order_id, customer_id, total
FROM 'exports/orders.parquet'
WHERE total > 100
LIMIT 50;
Use read_parquet('path') if the file has a nonstandard extension. DuckDB’s Parquet documentation also covers reading multiple files. For example, a glob can select matching exports:
SELECT *
FROM read_parquet('exports/orders-*.parquet');
A directory path can recursively read Parquet files beneath it; use a glob such as exports/*.parquet to select files directly in that directory. DuckDB provides a filename virtual column by default from version 1.3.0, which can help identify the source file for a row. If files have differing schemas, union_by_name is an available option, but it is not enabled by default.
Rank #4
Choose between DuckDB and DBeaver’s file drivers
In DBeaver, “query a file” can describe two different workflows. With DuckDB JDBC, DuckDB runs the SQL and uses its own CSV or Parquet readers. DBeaver also documents separate CSV and Parquet drivers; these are not DuckDB connections.
Free tools Windows power users keep installed
One-click scans. No signup required.
| Workflow | How queries are handled | Useful distinction |
|---|---|---|
| DBeaver connected to DuckDB | DuckDB reads files using its CSV or Parquet functionality. | Use DuckDB SQL features and query files directly. |
| DBeaver CSV or Parquet driver | A simple query reads the source directly. The first complex query imports the whole file into a temporary internal SQLite database for advanced SQL functions. | Later queries may be faster because the data is already imported. DBeaver documents an option to retain and reuse the processed database. |
DBeaver’s documentation describes the separate CSV driver and Parquet driver. Its CSV driver can also use a DDL sidecar to define schema because CSV itself does not include structural metadata. Choose the DuckDB route when you want DuckDB to run the file queries; choose a DBeaver file driver only with its direct-read and import behavior in mind.
What affects Parquet query performance?
DuckDB documents automatic projection and filter pushdown where applicable: a query that selects a few columns need not treat every column like SELECT *, and filters can use Parquet metadata such as zonemaps to skip data. These optimizations do not guarantee a particular runtime. Their effect depends on the file’s metadata and layout as well as the query.
- Columns selected: selecting only required fields gives projection pushdown an opportunity to avoid reading unnecessary columns.
- Filter and statistics: filter skipping depends on useful Parquet statistics and zonemaps for the data.
- File layout: file count, file sizes, compression, and row-group size can affect the work required.
- Workflow: DuckDB reads through its own file readers, while DBeaver’s standalone drivers import the entire file for the first complex query.
There is no single speed multiplier or file-size cutoff established here; the right workflow depends on the data and the queries you need to run.
Quick Recap
Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.
What’s actually slowing this PC down?
Pick the symptom - the matching free tool is one click away.

