On the Tables step of a file datasource you choose how incoming files become Lake tables: which files go together, what each table is called, which date comes out of the file names, and how values that do not fit are handled. The step appears for CSV, TSV, JSON, Parquet and Excel Workbook sources; reach it while creating one (see Load files).
The step starts with a mode:
| Mode | What it does |
|---|---|
| Union by pattern | Each group of files becomes one table; files of a group are appended together. |
| Each file separately | Every file becomes its own table, named after the file. |
book. xlsx/ Sheet1. tsv.For an Excel Workbook source the step asks How do sheets become tables? and offers four layouts, each card counting the tables it would create:
| Layout | What it does |
|---|---|
| Each sheet | One table per sheet of every workbook |
| Union by sheet name | One table per sheet name; sheets with that name in every workbook are combined |
| Union inside workbook | One table per workbook; all sheets of the workbook are combined |
| Union all | One table with every sheet of every workbook |
While the workbooks are read the picker shows Refreshing preview..., then Reading the sheets..., and says The choices appear once the workbooks have been read. The footer adds Counts cover the sheets read so far. Custom groups are under Advanced. Custom groups sit under Advanced: custom groups, which opens by itself when custom groups already exist. After tables are imported the layout locks as well: Tables of this source are already imported, so the layout cannot change. Workbook-level options live on the Format step; see File formats and preview.
A union group finds its files with a selector under Files:
sales_), Contains (for example daily), Ends with (before extension) (for example _final) and the Extensions: toggles. At least one extension always stays on, and the form compiles your choices into a pattern shown under the fields.table: every distinct captured value becomes its own table. A pattern without it is refused with Use exactly one named group (?...) for the table name, and the count line adds the table count after the file count.
The card lists what the selector catches under Matching files ({N}), with Date and Table columns where they apply; up to 200 files are listed and the rest are summarised with and {N} more. When a union group matches no file, the step blocks with No file matches this group; for a server or bucket source where files may arrive later, it is only a warning: No file matches yet; files may arrive later. A file that also lands in another group raises {n} matching file(s) also match another group.
Union groups carry a Label (placeholder e.g. Daily sales) and a Table name:
Table name must be 1-63 characters: lowercase letters, digits and _._2, _3 and so on when they collide; Some captured table names produce the same slug warns when captured values do. A name typed by hand must be unique: Table name "{name}" is used by another group.{workbook}_{sheet} for an Excel sheet.Turn on Extract a date from each file (_file_date) to fill the _file_date column from each file's name or path; this date can then drive an incremental load (see Choose a sync type).
The format uses the tokens yyyy, yy, MM, dd, HH, mm, ss; a live example under the field shows how a name parses. A refused format explains itself: Enter a date format, for example yyyyMMdd, Unsupported pattern letter. Use yyyy, yy, MM, dd, HH, mm, ss, Each pattern token may appear only once, The format needs a year (yyyy) or A day (dd) needs a month (MM).
Files with no matching date are skipped by date-incremental loads; a run lists them in its Files Skipped (no date) step (see Run, stop and troubleshoot loads).
_rescued_data (Values that do not fit the column type load as NULL; the raw text goes to _rescued_data.), while Fail the run stops the run and names the file, column and value that did not fit (The run stops and names the file, column and value that did not fit.).Each card has Settings and Preview tabs. The preview samples what the group will load: pick a table with the Table selector when the group makes several, and read up to 20 sample rows per table. It shows Loading preview... while it loads, and No preview for this group yet when there is nothing to sample. When a group resolves to many tables, only the first 10 carry columns and sample rows: {n} tables match this group; columns and sample rows are shown for the first 10. Across one preview, at most 20 tables carry columns and sample rows; the rest show file counts only.
a-z, 0-9 or _.For the messages you may see on this step, read Lake troubleshooting.
Union by pattern appends the files of each group into one table, which suits daily files with the same structure. Each file separately gives every file its own table, named after the file (every sheet for an Excel Workbook). The mode is fixed once your tables are imported.
Use a Dynamic selector: a regular expression with exactly one named group table. Every distinct value it captures becomes its own table, and the count line shows how many. A pattern without the group is refused with Use exactly one named group (?
Because every sampled date fits both readings, for example 03/. Choose the order your file names use; it changes only the dates where day and month could swap.
They use the tokens yyyy, yy, MM, dd, HH, mm, ss and must include a year. Each token may appear once, and a day needs a month. Examples: yyyyMMdd, dd., yyyy-MM. The live example under the field shows how your format reads a sample name.
Yes. Every group that matches loads the file into its own table, and the card warns {n} matching file(s) also match another group. Narrow the selectors so each file matches one group, or accept the extra load.
No. Once any table of the source is imported the step locks: Tables of this source are already imported, so the mode cannot change. An Excel Workbook source locks the layout the same way.
The group has imported tables. Imported tables keep their name; only the label can change. The group also cannot be removed until those tables are gone: Group "{label}" has imported tables; delete those tables before removing the group.
Lowercase letters a-z, digits 0-9 and underscores _, 1 to 63 characters. The field takes only those characters, and a name that breaks the rule is refused with Table name must be 1-63 characters: lowercase letters, digits and _.
It depends on Bad values. Rescue loads the value as NULL and keeps the raw text in _rescued_data; Fail the run stops the run and names the file, column and value that did not fit. When every column is String, no value can be rejected, so the choice is disabled.
A group can resolve to many tables, for example with a Dynamic selector. The preview shows columns and sample rows for the first 10 tables of the group, and one preview covers at most 20 tables; the rest show file counts only. Adjust the selector if you need a specific table sampled.