Import files
Importing files starts from the Import metadata action on a workspace. The wizard runs four numbered steps: Files, Structure, Columns, Review. The Back and Continue buttons sit at the top right of the wizard, on the step strip, so they stay put as you move between steps, and Continue stays disabled until the current step is complete. Going back is always free: use Back, or click any completed step in the strip.
Import metadata options
Section titled “Import metadata options”Choose Import metadata. The action sits in the page header of a workspace while its Details tab is active, on the workspace Catalog page, on a project’s Details and Workspaces tabs, and on a project’s Catalog page, so you can start an import from wherever you are working with metadata. On a project it targets that project’s default workspace. DeltaVault looks at the project’s source connection and offers only the options that fit it:
- Database sources (for example SQL Server or Snowflake): Agent
discovery, which discovers live tables through a paired local agent, or Delimited
upload of a CSV or SQL file. Once the source connection is verified with a local
agent, Agent discovery is enabled and selected by default.
When you choose Delimited upload for a database source, the form’s Copy SQL script button gives you a ready-made query for your database; it already filters out system schemas and vendor helper tables so the export carries only your own metadata, and you can edit its
NOT INlists if you need a system object included. - File sources (Azure Data Lake Storage): Delimited upload, or File discovery, which opens the file wizard below with the source connection already selected.
- Other or unrecognized sources: Delimited upload.
Pick Delimited upload for the short path described next, or File discovery for the four-step wizard described after it.
Delimited upload (CSV or SQL)
Section titled “Delimited upload (CSV or SQL)”Delimited upload collects what it needs in the Import metadata dialog itself, which is what makes it the only option with an inline form. Fill in:
- Connection, the connection these tables belong to. The list holds the connections this project references.
- Catalog, shown once you have picked a target connection. If the project has no catalogs assigned, the field says so and points you at the project editor.
- File path, and the file itself through Choose file.
With a connection picked, a Copy SQL script control appears, offering a ready-made query for that connection’s database. It already filters out system schemas and vendor helper tables so the export carries only your own metadata, and you can edit its exclusion lists if you need a system object included.
Choose Submit, or Back to return to the option list. DeltaVault parses the file and takes you straight to the import review page. There is no separate connections-matching step: because you named the connection in the dialog, every table in the file is attributed to it, and nothing is left for you to map.
A command line path for imports is planned but not yet linked from the import flow: direct bundle upload is coming in a later release. If you do land on its placeholder panel, the Get the dv CLI link there points at Toolkit → Local Agents, where the download cards link to the releases page and the CLI packages are published alongside the agent installers.
When you reach this wizard through Discover from file, the source connection is already selected; otherwise pick an Azure Data Lake connection (only Azure Data Lake Gen2 connections are offered). Then add files to the dropzone: “Drop CSV, Parquet, JSON, or other text-based files here, or click to browse.” Anything text-based is accepted and parsed right in the browser. Archives, office documents, images, and other binary formats are rejected at the dropzone, as is any file over one gigabyte. Each added file appears with its discovery status and a Remove button.
Drop several files in one go if you like. Each parses independently, and a failure shows on that file’s card in the next step; fix its settings or remove it, because Continue out of Structure needs every file ready.
Structure
Section titled “Structure”Each file gets a card with a format chip (delimited, parquet, or json) and the settings discovery used to parse it:
The delimited controls now sit together on one row, most important first:
- First row is a header. Untick when the file starts straight at data.
- Delimiter and Quote character. Pre-filled with the defaults, a comma and a double quote. Check them against the First lines preview and adjust when the file uses something else.
- Rows to sample. How many rows type inference reads. The default is 200; raise it when the early rows aren’t representative of the rest.
- Minimum string length. Pads every inferred string length up to at least this value. It never shrinks a length, and it leaves unbounded strings and non-string types alone. Useful when a small sample understates how wide a text column runs in production.
The delimiter, quote, and header controls apply to delimited files; a JSON file’s card shows only the two sampling settings.
Below the settings, a First lines preview shows the raw text of the file’s opening lines, so you can check the delimiter and header settings against reality before moving on.
Parquet files have no structure settings. Their card reads “Schema comes from embedded file metadata: there are no structure settings to adjust.”
Changing any setting re-runs discovery for that file alone. Re-discovery rebuilds the column list, which discards any column edits you’ve already made; once edits exist, the card warns “Changing these settings re-runs discovery and resets your column edits for this file.” Settle structure first, then curate columns.
Each card also carries two Recommended fields, Source folder and File pattern, recording where the file lives in storage and what its siblings are named. They don’t affect parsing, but setting them lets re-imports and discovery match this table and pick up newly-arriving files, so while either is blank the card shows a short warning nudging you to set it. The wizard derives both from the dropped filename: a file like Account_20211205_030701.csv suggests the source folder Account and the file pattern Account_*.csv, collapsing the date or sequence part of the name to *. The suggestion appears as gray ghost text; press the Right arrow key in the empty field to accept it, or click the tick accept control. Type your own value to ignore the suggestion.
Columns
Section titled “Columns”One grid per table, spanning the full width of the page, with columns Include, Column, Type, PK, BK, Nullable, and Sample Values. The grid has no column filters, so headers and sample data have room to read in full. A single click edits a cell.
- Choosing a type. Click the Type cell to open the data-type editor. It’s the same searchable picker the table and system-column grids use, drawing on the one canonical catalog (Internal types → Data types): type a familiar name like
varchar,int, orguidand it matches the canonical type by its “known as” aliases. Depending on the type, the editor also offers Length, Precision, and Scale, and the cell then reads as the complete type:STRING(60),DECIMAL(18,2). (Collection types such asARRAYaren’t offered for imported file columns.) - Recommended types. Discovery keeps its inferred type as a recommendation. Change the Type and the cell shows a hint underneath, “Recommended: DECIMAL(10,2)”, with a Revert link that snaps the column back in one click. Parquet columns add “(from file metadata)”, because their recommendation comes from the file’s embedded schema rather than sampling.
- Excluding columns. Untick Include to drop a column from the import. Exclude every column and the card says “All columns are excluded: this table will be dropped from the import.” The wizard won’t continue if no tables remain.
- Keys. Tick PK to mark a primary-key column, BK for a business key. A table with neither shows the chip “No primary key or business key selected”. That’s a warning, not a blocker; you can proceed and set keys later.
Re-importing into an existing table
Section titled “Re-importing into an existing table”When a file’s table name matches a table already cataloged on the chosen connection, the wizard badges it Existing table, and every column already in the catalog gets an Existing badge. Catalog values are retained on re-import: the existing columns keep their curated type, length, precision, scale, nullability, key flags, and descriptions, so their Type, PK, and BK editors are disabled. To change an existing column’s type, edit it in the catalog, not here.
The Include checkbox stays active on existing columns: unticking one is how you propose removing it, and it shows as a Removed column in review. New columns in the file are fully editable and import with their inferred metadata. Tables missing from the upload are never marked removed; a file import only speaks for the tables it contains.
Review
Section titled “Review”The last step lists one row per table: name, format, and how many of its columns are included, plus the same Existing table badge and key warning where they apply. Tables with no included columns are called out as dropped from the import. Create import and review creates the import and opens the review surface: see Review an import for reading the Review changes grid and the Generated layers branch.