Skip to content
Keboola Docs

Load Your Data

Load your first four tables into Keboola Storage with the HTTP data source connector, pulling the sample CSV files straight from a URL.

Nothing in Keboola happens until there is data in Storage. This step puts four tables there using a data source connector — the thing that does all real loading in Keboola. Step 2 of the Getting Started arc.

A Keboola project you can sign in to. If you do not have one, start with Get a Project.

Nothing to download — the connector fetches the files itself.

Four small tables describing a sales pipeline: opportunities, the accounts they belong to, the users who own them, and each user’s seniority level. They are published here, and the connector reads them over HTTPS:

All characters in this data are fictitious, and any resemblance to real persons, living, dead, undead, unborn, or otherwise semi-existent is purely coincidental.

Data gets into Keboola through data source connectors — components that fetch from a source on demand or on a schedule. There are hundreds of them: databases, APIs, ad platforms, cloud drives. They differ in how they authenticate and what they can fetch, but they all end the same way: rows in a Storage table.

You will use the HTTP connector, which downloads CSV files from a URL. It is the simplest one that still behaves like a real connector — it can be re-run, scheduled, and dropped into a flow, which is what step 5 depends on.

One configuration can fetch many files, so you will build a single configuration holding four tables rather than four separate configurations.

  1. Open Components and search for HTTP. Two results come back — pick plain HTTP (Data Source), not HTTP Advanced, and click Add Component.

    Screenshot - Find the HTTP data source connector

  2. Choose Connect To My Data. (Use With Demo Data sets the connector up against a dataset Keboola prepared — handy for a look around, but here you want your own URL.)

  3. Replace the suggested name with [TUTORIAL] Sample data, add a description, and click Create Configuration. Descriptions are what keep a project readable six months later; see the best practices cheat sheet.

    Screenshot - Create the configuration

  4. Open Base URL and Connection Options and set Base URL to the prefix shared by every file this configuration downloads, then click Save:

    https://help.keboola.com

    Screenshot - Set the base URL

Each file is a configuration row — its own path and settings, sharing the configuration’s base URL.

  1. In the Rows section, click Add Row, name it opportunity, and click Create. The row name becomes the Storage table name, so use exactly this spelling.

  2. Under Download Settings, set Path to the file, relative to the base URL:

    /getting-started/opportunity.csv
  3. Check the rest of the row and click Save:

    • Save Settings → Table name is already opportunity, taken from the row name.
    • Delimiter , and Enclosure " are already right for these files.
    • Leave Incremental load off: each run should replace the table, not append to it.
    • Header & Primary Key → Read Header already reads Read the header from the file(s) header, which is what you want — the sample files carry column names on the first line. Leave it alone. (The alternatives are typing the columns yourself or having them generated as col_1, col_2, ….)

    Screenshot - Row path and save settings

  4. Repeat steps 5–7 for the other three files:

    Row namePath
    account/getting-started/account.csv
    user/getting-started/user.csv
    level/getting-started/level.csv
  5. Back on the configuration, click Run Component and confirm with Run. One job fetches all four rows.

    Screenshot - The configuration ready to run

Watch it in Jobs. The rows are fetched one after another, so expect a couple of minutes for all four — the run behind these screenshots took 2 minutes 4 seconds.

Then open Storage. Data lives in buckets, and each bucket holds tables. The connector created a bucket of its own — its name is the component plus the configuration’s ID, like keboola-ex-http-01kz5050bhhezq9scmd0t9c73f, shown with an IN badge — holding four tables: opportunity, account, user and level.

Screenshot - The four tables in Storage

Click a table and open its Data Sample tab to see the real contents. opportunity should have 639 rows with columns like AccountId, Amount and StageName; account 275; user and level 28 each. If that matches, this step is done.

Screenshot - Table detail with data sample

  • The job fails with a 404. The path is wrong, or missing its leading slash. Base URL and path are concatenated, so https://help.keboola.com + /getting-started/user.csv is right, while a base URL with a trailing slash gives you a double slash.
  • Every row arrives as one column. The Delimiter setting does not match the file. These files are comma-separated.
  • The first data row is missing, or columns are called col_1. Wrong header option — set Read Header back to Read the header from the file(s) header.
  • The table is empty but the job succeeded. The URL returned an HTML error page instead of a CSV. Open it in a browser to see what actually comes back.
  • You want the four files fetched at the same time. Raise Parallel jobs on the configuration — the connector then processes its rows concurrently.

Next: Transform your data →

Ask Kai

Hi, I'm Kai — Keboola's AI assistant for the docs. Ask me anything and I'll answer from the documentation and cite the pages I use.

Kai is an AI and can make mistakes. Check the sources it links.