Bring data in

You have data — a file, a spreadsheet, a Google Sheet, a warehouse. This guide shows each way to get it onto a dashboard, and how to keep it fresh.

Whatever the way in, the result is the same: a datasource — a named set of rows saved into the dashboard. Charts and tables read those saved rows. Viewers read them too, and never touch your file, your sheet, or your accounts.

Drop a file on the canvas

The fastest path. arkush reads CSV, Excel, JSON, and Parquet files.

  1. Open your dashboard in Edit mode.
  2. Drop the file anywhere on the canvas.

That is the whole import. The file becomes a datasource, and a table bound to it lands where you dropped the file. A notice states the file name and the row count. One undo removes both. On an empty dashboard the same import is the first step of the Start your dashboard walk: Upload a file opens the file picker.

An Excel workbook with one sheet imports the same way. A workbook with several sheets opens the import editor with a Sheet picker instead — the app never guesses which sheet you meant. Pick the sheet, then select Create datasource.

When the file has more than 50,000 rows

A large file is not refused. The import editor opens with the file already read and the true row count shown. Rows over the 50,000 limit cannot be stored as-is, so a SQL editor stands ready over the file — the query's result becomes the datasource.

  1. Keep the starter query for a quick cut — it keeps the first 50,000 rows. Or aggregate for the full picture: the Insert a transform picker offers starters built on your own columns — group and count, count by month, top 10, and more.
  2. Select Run query and check the preview.
  3. Select Create datasource.
The import editor with 60,000 pasted rows staged: the facts line reads 'Pasted data · 60,000 rows · 4 columns · read as CSV', the seeded query SELECT * FROM data LIMIT 50000, Run query beside Create datasource, and the first rows previewed with a type picker per column.
Over the cap — here 60,000 pasted rows — the editor opens with the true count and the starter LIMIT query. The query's result becomes the datasource.

Paste rows from a spreadsheet

Copied cells paste straight in — no file needed.

  1. Copy the rows in Excel or Google Sheets.
  2. Open the Data panel — the Data icon on the right-hand rail.
  3. Select New. The Data workspace opens, with the editor under the data grid.
  4. Select Import as the source.
  5. Paste into the Or paste your data here. box.
  6. Check the facts line: the row count, the columns, and how the text was read.
  7. Select Create datasource.

The preview shows each column's type under its name. If a column read wrong — a date read as text, for example — pick the right type there. A value that will not convert is marked before you commit, struck through with the reason — never a silent blank after.

The new datasource is ready for a chart or a table — add one from the block palette in the header.

The Data workspace: datasources listed on the left, the selected datasource's rows in the grid, and the editor below with the import zone and its paste box.
The Data workspace. The editor opens under the grid — the import zone takes a file, a drop, or a paste.

Connect a Google Sheet or a file at an address

Data that lives at an address — a Google Sheet, or a CSV, JSON, or Parquet file on the web or in cloud storage — can refresh itself on a schedule.

  1. Open the Data panel and select New.
  2. Select Sheets/URL as the source.
  3. Paste the address. The field states what was recognized: the source, the sheet tab, and the table name your SQL reads. For a sheet, copy the link while the tab you want is open — the link carries the tab.
  4. Write the SQL. Start with SELECT * FROM sheet and narrow it once you see the columns.
  5. Select Create datasource.
The Sheets/URL branch of the datasource editor: a Google Sheet address recognized — 'Google Sheet, tab 0 · your SQL reads sheet' — the Read with choice on 'This server's Google account', and the SQL box with select * from sheet.
A recognized sheet address. The field states what was read from it, and Read with picks whose Google account fetches.

Who can read what:

Query BigQuery with your own account

Write SQL against the warehouse and save the result. The query runs as you.

  1. Open the Data panel and select New.
  2. Select BigQuery as the source.
  3. Write the SQL, or select a table in the table browser for a starter query.
  4. Select Run in BigQuery. You do not need to connect first: the first run asks for Google sign-in, with read-only access to BigQuery and nothing more.
  5. Check the preview, then select Create datasource.

The connection row above the SQL shows which Google account the queries run as, with explicit Connect and Disconnect. Queries bill to a billing project — the deployment sets a default, and the same row lets you pick another.

NOTE — Your Google sign-in stays on your machine. It is never written into the dashboard, and it is never sent to the server.

BigQuery under the org's own credential — the kind a schedule or an agent refreshes server-side — needs the analyst right.

Store a file for reuse

An import copies rows into one dashboard. The files store keeps the original file: several dashboards can read it, and a replacement reaches all of them. The store needs a signed-in account, and it holds CSV, JSON, and Parquet files.

A datasource built on a stored file keeps its reduction SQL. Refresh re-runs that SQL over the file's current bytes, on the server. When someone replaces the file — Replace file, on the file's own page — every dashboard that reads it shows File changed until its next refresh.

A file is private to you until you share it from its page. Refresh needs access to the file itself, not only to the dashboard. A deployment may set a per-person space limit: the section shows your usage, and at the limit uploads refuse until you delete a file.

Keep the data fresh

Charts read saved rows, so fresh numbers come from a refresh — never from opening the dashboard.

The Data panel in edit mode: Refresh all and New at the top, each query datasource with its kind, row count, size, refresh date, and its own Refresh button, and the Scheduled refresh section stating the cron and its next run.
The Data panel for an editor: per-datasource Refresh, Refresh all, and the Scheduled refresh section with the next run.

The header shows a freshness chip — "Data: 2 h ago" — with the age of the oldest saved data, for editors and viewers alike. Select the chip to open the Data panel. With a schedule set, the chip turns amber when a run is overdue.

The Data panel beside a dashboard: each datasource with its kind, row count, size, and refresh date. The header shows the freshness chip, Data: 1 d ago.
The Data panel, opened from the freshness chip in the header.

The limits

Every limit has the same remedy: make the data smaller.

The limits are what keeps a dashboard fast to open and safe to share: every viewer reads saved rows, never a live query.