> ## Documentation Index
> Fetch the complete documentation index at: https://docs.bow.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# CSV, QVD and PBIX

> Turn CSV, Qlik QVD and Power BI .pbix files on the backend host into SQL tables the agent can query

The **CSV**, **QVD** and **Power BI (.pbix)** connectors expose data files as **SQL tables**. You point each connection at file paths or glob patterns, and every matching file becomes one or more tables the agent can query with SQL, join, and aggregate.

> [!TIP]
>
> Use these when the file *is* a dataset. If you want the agent to search and read documents — PDFs, Word files, mixed folders — use [Files and Directories](https://docs.bow.ai/data-sources/connectors/files-and-directories.md) instead, which exposes files as a searchable catalog rather than as tables.

## How it works

Both connectors run on **DuckDB** inside BOW. Paths are resolved on the **backend host**, exactly like the Files and Directories connector, so a local folder or an already-mounted SMB/NFS share both work. There are no credential fields — access is whatever the operating system grants the backend process.

* **CSV** is read natively by DuckDB. There is no conversion or cache: each resolved file is exposed directly as a table at connect time. One file, one table.
* **QVD** is a proprietary binary format, so each file is converted to a columnar cache on the backend the first time it is indexed, then queried with SQL from there.
* **Power BI (.pbix)** files carry an embedded semantic model, so one file yields **several** tables — the model's tables, not one table per file.

Glob patterns are expanded at connect time, so adding a file that matches an existing pattern makes it available on the next index without editing the connection.

## Before you start

* The files exist on the **BOW backend host** and are readable by the process that runs it.
* For a network share, mount it with the OS first. If BOW runs in a container, the mount must be visible inside the container.
* Give each file a stable, meaningful filename — the filename becomes the table name the agent sees.

***

## CSV

Go to **Data Sources → Add data source → CSV**.

| Field | Required | Default | Notes |
| :- | :- | :- | :- |
| `file_paths` | Yes | — | CSV file paths or glob patterns, one per line, e.g. `/data/*.csv` or `/mnt/exports/sales_2025.csv`. |
| `delimiter` | No | *(blank)* | Column delimiter. Leave blank to auto-detect. Examples: `,` `;` `&#124;`, or `\t` for tab. |
| `has_header` | No | `true` | Whether the first row contains column names. Turn off for headerless files. |
| `encoding` | No | `utf-8` | File encoding, e.g. `utf-8`, `latin-1`. |

The settings apply to **every** file in the connection. If some of your CSVs are semicolon-delimited and others comma-delimited, or they use different encodings, create a separate connection per group.

### Authentication

A single mode, **No Authentication** (`none`), at system scope. Nothing to enter.

***

## QVD

> [!NOTE]
>
> The QVD connector is part of the **Enterprise Edition**.

Go to **Data Sources → Add data source → Qlik (QVD)**.

| Field | Required | Default | Notes |
| :- | :- | :- | :- |
| `file_paths` | Yes | — | QVD file paths or glob patterns, one per line, e.g. `/data/*.qvd`. |

QVD files carry their own field names and types, so there is nothing to configure beyond the paths.

> [!NOTE]
>
> Indexing a large QVD set takes longer than CSV, because each file is converted before it can be queried. The conversion is cached, so subsequent indexing only touches files that changed.

### Authentication

A single mode, **No Authentication** (`none`), at system scope. Nothing to enter.

***

## Power BI (.pbix)

Go to **Data Sources → Add data source → Power BI (.pbix)**.

Each `.pbix` file contains an embedded semantic model, and every table in that model becomes a queryable table. Unlike CSV and QVD, one file therefore contributes **many** tables rather than one.

| Field | Required | Default | Notes |
| :- | :- | :- | :- |
| `file_paths` | Yes | — | Power BI file paths or glob patterns, one per line, e.g. `/data/*.pbix`. |

> [!WARNING]
>
> The data you query is the data that was **last refreshed into the file**, not live data from the Power BI service. A `.pbix` is a point-in-time snapshot: it is as current as whoever last saved it. Connect [Power BI](https://docs.bow.ai/data-sources/connectors/power-bi.md) or [Power BI Report Server](https://docs.bow.ai/data-sources/connectors/power-bi-report-server.md) instead when you need the live semantic model.

### Authentication

A single mode, **No Authentication** (`none`), at system scope. Nothing to enter — access is whatever the operating system grants the backend process.

***

## Troubleshooting

> [accordion] No tables appear after saving
>
> The glob matched nothing. Check that the path is absolute and correct **from the backend host's point of view** — a path that works on your laptop is not necessarily the path inside the container.

> [accordion] A CSV loads with one giant column, or the columns are shifted
>
> Auto-detection picked the wrong delimiter. Set `delimiter` explicitly on the connection.

> [accordion] Column names look like data (col0, col1, …)
>
> The file has no header row but `has_header` is on, or vice versa. Toggle `has_header`.

> [accordion] Accented or non-Latin characters are mangled
>
> Set `encoding` to match the file — `latin-1` is the usual fix for exports from older Windows tools.

> [accordion] A .pbix file's numbers are out of date
>
> That is expected. The connector reads the data saved inside the file at its last refresh. Re-save the file after refreshing it in Power BI Desktop, or connect the live [Power BI](https://docs.bow.ai/data-sources/connectors/power-bi.md) semantic model instead.

## Related

* [Files and Directories](https://docs.bow.ai/data-sources/connectors/files-and-directories.md) — the same paths, exposed as a searchable document catalog instead of tables.
* [Amazon S3](https://docs.bow.ai/data-sources/connectors/s3.md) — data files in object storage.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.