Import data
Load a CSV, JSON, Excel, Parquet or Avro file, a Google Sheet, or whatever is on your clipboard into a BigQuery table. Schema is detected from the first 1,000 rows and editable before anything is written.
Drop file here to import
or click to browse your files
or import from
Opening it
- Drag a file onto the app window.
.sqland.bqsqlfiles open as query tabs instead. - Right-click a dataset or table in the schema tree → Import.
- ⌘ K → Import data.
Only one Import tab exists at a time; opening it again switches to the existing one. Importing needs a signed-in Google account — it’s unavailable in the playground.
Sources
| Source | What it accepts | Limit |
|---|---|---|
| Drop zone | .csv .json (array or NDJSON) .xlsx .xls .parquet .avro | None enforced |
| Google Drive | The same formats from the Drive picker | 200 MB |
| Google Sheets | A spreadsheet from the Drive picker (filtered to Sheets) | — |
| Clipboard | JSON, tab-separated, comma-separated, or one value per line | 10 MB |
Picking a Google Sheet from the Drive picker reroutes you to the Sheets flow. Clipboard text is detected in that order: JSON if it starts with [ or { and parses; TSV if most of the first 10 lines contain a tab; CSV if most contain a comma; otherwise a single column.
The schema step
Once a source is loaded the tab splits: sections on the left, Data preview on the right (Showing 100 of 15,847 rows; the preview caps at 100) plus a list of skipped rows and why. Everything you change on the left is reflected in the preview before you import.
| column⏷ | type⏷ | mode⏷ | |
|---|---|---|---|
| 1 | order_id | INT64 | REQUIRED |
| 2 | customer_id | STRING | NULLABLE |
| 3 | ordered_at | TIMESTAMP | NULLABLE |
| 4 | amount | NUMERIC | NULLABLE |
Choosing where the data goes
Project and dataset are selects; the project defaults to the one you used last. Table Name autocompletes over existing tables and must start with a letter or underscore. With Create if needed, the app checks first and refuses to overwrite an existing table — switch to Append to table or Overwrite table, or pick another name.
Import as temporary table adds an Expires after select (1, 6, 24 or 72 hours; default 24) and sets the table’s expiration.
Editing the detected schema
Each detected column is a row you can edit in place:
- Click the name to rename it, the italic No description to describe it.
- Click the type badge to change it (STRING, INT64, FLOAT64, BOOL, DATE, TIMESTAMP, DATETIME, TIME, JSON, STRUCT, ARRAY, BYTES, NUMERIC, BIGNUMERIC, GEOGRAPHY). Numbers that look like epochs get an extra Epoch Conversion choice — seconds or milliseconds to TIMESTAMP, or keep as INT64.
- Click NULLABLE / REQUIRED to toggle the mode.
- Drag rows to reorder.
Columns can’t be removed. Untick First row is header (CSV and Excel) to get column_1 … column_n, all STRING. With Prism AI enabled, Fill with AI names and describes columns for you, with undo. Excel files with several sheets get a Sheet select above the schema.
Partitioning, clustering and CSV parsing
- Partitioning: None, Ingestion time, or By column — the last needs a DATE, TIMESTAMP or DATETIME column and asks for a Granularity (DAY, HOUR, MONTH, YEAR).
- Clustering (up to 4 columns).
- CSV only: Delimiter (comma, tab, semicolon, pipe — the detected one is marked) and Null marker.
Running it
Start Import uploads the file and runs a BigQuery load job; the progress card shows rows so far, the destination and elapsed time, with Cancel. On success you get the row count, duration and size, plus Query This Table — a new tab with SELECT * FROM … LIMIT 100 — and Import Another. The schema tree refreshes on its own. Load jobs are free in BigQuery; you pay for storage only.
Google Sheets
A Google Sheets section appears above Destination with a Sheet tab select, a Range field in A1 notation (A1:D100, A:D) and Apply to re-fetch. Formula errors in the first 100 rows (#REF!, #N/A, #DIV/0! …) surface as a warning per column.
Tick Connected table to create an external table instead of copying the data — BigQuery reads live data from Sheet. No column reordering, type mapping, or partitioning. The Schema and Options sections, write mode and the temporary-table option disappear, and the button becomes Create Connected Table, which runs a CREATE EXTERNAL TABLE … OPTIONS(format='GOOGLE_SHEETS') statement.