Load Data from Text or Excel Files
Bragi makes it easy to ingest data from a wide range of file formats including CSV, TXT, and Excel. You can upload files manually, or pull from a file system.
Step 1: Select the Source File
You can either:
Upload a file directly, or
Reference a file path using a UNC-supported path, provided Bragi has permission to access it.
Once the file is selected, Bragi automatically scans the contents to detect:
Column names
Data types (e.g. string, date, integer)
Basic relationships between fields
This kickstarts the process of preparing the data for use.

Step 2: Configure File Analysis Settings
These options control how Bragi samples and interprets your data before it’s loaded.
Field | Description |
|---|---|
Rows to Scan for Data Types (default: 10,000) | Determines how many rows Bragi should look at to estimate each column’s data type and size. A higher number gives better accuracy, especially for variable-length strings or mixed content. |
Fixed Width File | Enable this if your file uses fixed-width formatting (no delimiters like commas or tabs). Bragi will use predefined column widths instead of splitting by a character. Great for older systems or mainframe exports. |
Treat Empty Values as NULL | Switch this on to convert empty strings (e.g. "") into NULLs. Useful for reducing storage and avoiding noise in your dataset. |
Treat “NULL” Values as NULL | If your file contains the literal string "NULL" to represent missing values, this will convert those to proper database NULLs. |
Has Column Headers | Turn this on if the first row of your file contains field names. Bragi will use those to automatically map columns. If headers are missing, you'll need to map fields manually. |
Only Load Distinct Data | Skips duplicate rows during the load process. Handy for avoiding repeated inserts when source files are noisy or already de-duped upstream. |
Ignore Leading Rows | If the top of your file includes non-data lines (e.g. notes, timestamps, metadata), this lets you skip them. |
Ignore trailing rows | Similar to above, but for the end of the file. Skip totals, footers, or closing comments that aren’t part of your dataset. |
Click Continue to move to table setup.
Step 3: Configure the Load Table
Define how and where the data will be stored in Bragi:
Field | Description |
|---|---|
Schema | Schema the table belongs to. |
Table Name | The actual name of the table in the database. |
Display Name | A more friendly name used inside Bragi. |
Description | Notes for future you (or someone else) - especially helpful if this load isn’t a typical one. |

Step 4: Set the Source File Options
Before telling Bragi exactly which file to load, you need to point it to the right folder. Bragi does this using File Sources
File Sources are preconfigured folder locations that can vary by environment.
By using a File Source instead of hard-coding paths, Bragi automatically picks the correct folder based on the environment the load is running in. You must configure File Sources in Source Administration → File Sources before they will appear here.
Now, configure your load’s file location:
Field | Description |
|---|---|
File Source | Choose from a preconfigured source folder. |
Path to Folder | Acts as a base or sub-path within the selected File Source. |
File Mask | Use wildcards to match filenames (e.g. Report_*.csv). |
File Count | Expected number of files (use if the count varies). |
Has Columnn Headers | Lets Bragi know whether headers are present. |

Step 5: Archive File Options
Automatically move processed files to another folder for safekeeping and keep a historical record of your data.
Field | Description |
|---|---|
Archive File After Load | Moves file once loading is complete. |
Archive on Empty Input File | Move the file even if it had no usable data. |
File Source / Path to Folder | Where to send archived files. |

Step 6: Advanced File Options
Control how Bragi handles columns and load behaviour behind the scenes:
Field | Description |
|---|---|
Lookup (default) | Columns matched by name. Best for files with headers or columns that may change order. |
Fixed | Columns matched strictly by position. Only use this when Lookup fails or column order is guaranteed. |
Fail on Empty Source | Bragi will throw an error if the file is empty. Use this if empty files are unexpected and should halt the process. |
Fail on Missing | Stops the load if the number of files doesn’t match the expected |
Rename File After Load | Adds a |
Truncate Table Before Load | Clears the target table before inserting new rows. The default behaviour for most loads. |
Auto Trim Values | Strips leading and trailing whitespace from string fields. Usually a good idea unless whitespace has meaning in your data. |

Step 7: Use Placeholders and Inspect Columns
After Bragi analyses the file, you’ll be able to review the inferred column types and relationships. You can also use unbound placeholders in your data for dynamic values:
Placeholder | Description |
|---|---|
| File name of the source |
| Timestamp of the load |
| Current date |
| Tomorrow’s date |
| Current date and time |
| Random GUID |
| Auto-incremented integer |
| File creation timestamp |
| File modification timestamp |
| Incremental row number |
To add a placeholder, click the ‘+’ icon to add a column, and insert the placeholder in ‘Default’.
By setting up your file loads carefully and using the right options, you’ll save time and reduce manual errors.