Product

How to Import a CSV File Into a Reusable Dataset

The DataQloo Team··4 min read

The file that gets re-downloaded every time

Every time the warehouse team needs to check this week's orders, someone exports a CSV from the order system and emails it around. There's no live database connection for warehouse staff to query directly — just a file, attached to a message, that everyone opens in their own copy of Excel, scrolls through, and eventually deletes once the week is over.

The next week, it happens again. A fresh export, a fresh email, a fresh round of "wait, is this the same file Priya sent, or the one from yesterday?"

Nobody's doing anything wrong here — a CSV export is often genuinely the only option when there's no live connection to the source system. The problem isn't the file. It's that the file never becomes anything more reusable than a file. (This is a common enough shape for operations teams specifically that it's worth its own page — see DataQloo for Operations.)

Why this keeps happening

A lot of data doesn't live somewhere you can connect to directly. A partner sends an export. A legacy system's only way out is "download CSV." Someone in another department pulls a report and forwards it. In all of these cases, a spreadsheet attachment is the real, permanent interface — not a temporary inconvenience on the way to a proper connection.

That's fine as a source. What's not fine is treating every arrival of that file as a one-off event, cleaned and interpreted from scratch, instead of a new version of something that already has a shape and a process built around it.

The manual approach

Concretely, this usually looks like:

  1. Open the CSV attachment in Excel.
  2. Scroll through to eyeball whether anything looks off — a shifted column, a truncated row, an unexpected blank.
  3. Maybe save a cleaned-up copy with today's date in the filename.
  4. Answer whatever question prompted the download, using that one sitting of the file.
  5. Next week: repeat, starting from zero, usually not even the same person doing it.

Why the manual version breaks

  • There's no single "current" file. Between everyone's inbox and their own saved copies, there are as many versions of "the data" as there are people who've opened it.
  • Nothing about the cleanup carries forward. If someone figured out last week that a particular column needed fixing, that knowledge doesn't travel with the next week's export — it lives in that one person's memory, if anywhere.
  • There's no way to tell what changed. Two exports a week apart, both named orders.csv in someone's downloads folder, look identical until you actually diff them by hand.

Turning the file into a dataset

Here's the same weekly export, imported once through DataQloo's Import Wizard — four steps, ending with something reusable instead of another attachment to lose track of.

Step 1 — upload the file

In the Import Wizard, choose "Upload a file" and select the CSV. Nothing needs to be pre-formatted or cleaned first — the point of the next two steps is to surface exactly what state the file is actually in.

Step 2 — preview the rows

The Import Wizard shows a row-level preview before anything is committed — the same kind of eyeballing someone would otherwise do by scrolling through Excel, except it's a fixed, deliberate step rather than a habit that depends on someone remembering to do it.

Step 3 — check the column profile

Before saving anything, the Import Wizard profiles every column: inferred type, fill rate, unique count, null percentage, and an average or top value — see what data profiling actually is for the full idea behind this step. This is where a blank sales_rep cell or an inconsistent date format shows up as a number, not something someone has to notice by scrolling past it.

Step 4 — save it as a dataset

Name it — Sales Orders, not orders-final-v3.csv — and save. From this point on, the file itself is no longer the thing anyone works from. The dataset is.

What "reusable" actually means here

The saved dataset can be selected directly from an Input node in a new workflow, the same way a live database table would be. A simple example — filtering to completed orders only:

Because the Import Wizard writes an uploaded file into DataQloo's own storage, even a file-sourced dataset gets a real, inspectable query when a workflow runs against it — not a black box:

SELECT *
FROM sales_orders
WHERE status = $1
LIMIT 100

Next week's export doesn't require repeating any of this. Import it, and either save it as a fresh version of the same dataset or build the same downstream workflow against it again — either way, the profiling and the logic aren't being reinvented each time.

What comes out the other side

Before: an email attachment, re-opened and re-interpreted by whoever needs it this week, with no record of what was checked or fixed last time.

After: a named, profiled dataset that can be the starting point for any workflow, with the exact same fill-rate and type information available to the next person who touches it.

Key takeaways

  • The Import Wizard turns a CSV — from anywhere, not just your own database — into a dataset with the same status as a live connection.
  • Profiling happens automatically before anything is saved, catching what a quick scroll through Excel would otherwise rely on someone noticing.
  • The real shift isn't the upload step — it's that the file stops being a one-off event and becomes something with a name, a shape, and a place to be reused from, the same idea behind not rebuilding the same report from scratch every week.
  • Even a file-sourced dataset runs through a real, visible query once it's part of a workflow — not just a static upload.

Next

If the file you're working from is an Excel workbook instead of a CSV, importing an Excel file walks through the same Import Wizard flow with the differences that actually matter (sheets, legacy .xls format, formulas).

Try it yourself

Upload a CSV through the Import Wizard and save it as a dataset — get early access to try it against your own export.

ShareXLinkedIn

Related reading

Get new posts by email

Engineering notes and product updates from the DataQloo team, occasionally.