Hello Community! 👋
Welcome to the second part of the IRIS IO Utility series. This extension represents my submission for the InterSystems "Bringing Ideas to Reality" Contest 2025 and offers you an intuitive and powerful interface for importing and exporting data directly inside VS Code.
- You can find the extension on my GitHub page: pietrodileo/iris_io_utility
- VSIX file to install the extension on VSCode can be found on the related release page: releases: iris-io-utility
If you find this extension useful, please consider voting for me at the contest!
In the previous article, we covered:
- Extension overview
- ODBC driver configuration
- Export capabilities
Now it’s time to dive into the Import Engine — designed to support:
- CSV
- TXT (with any delimiter)
- JSON
- XLSX
The extension features a smart inference layer that analyzes the input file and automatically suggests the optimal IRIS table data formats, providing guided, assisted data modeling.
Import Modes — Two Distinct Workflows
The extension supports two distinct scenarios:
- Create New Table
- Load into Existing Table
Option A — Import to New Table
This is ideal when:
- You’re loading a new dataset
- You want a clean start, with a fresh table and schema
- You’re in a prototyping or exploratory phase
What happens:
- The extension reads the file’s data and infers column types automatically
- You can customize the types if needed
- You choose a schema and table name
- You optionally define indexes
- Then data gets imported — all in a safe, atomic operation
Option B — Import into Existing Table
Perfect for:
- Updating a table
- Adding new rows
- Replacing outdated data
Two actions are available:
- Append — simply adds new rows from the file
- Replace — clears the current table data and replaces it with the new data
Before importing, the extension validates that the file’s columns match the target table’s structure. If there are mismatches, it will notify you and abort — protecting you from schema drift or data corruption.
.png)
Creating a new table by the IRIS IO utility
Step 1 — Open the Import View and select a file
After connecting to an IRIS instance:
- Click the cloud-up arrow icon
- Click on the "Create New Table" tab
- Choose the file to import
Supported formats are CSV, JSON, TXT and XLSX..png)
Step 2 — File Analysis & Type Inference
After loading a file, the import engine automatically:
- Samples the file’s values to guess column types
- Determines the most likely SQL types
- Converts them to valid IRIS SQL types
- Shows sample data beneath each column
- Lets you manually override the type if needed
Detected types include:
- INTEGER
- BIGINT
- NUMERIC
- DOUBLE
- VARCHAR (255 or 4000 characters)
- CLOB
- DATE
- TIMESTAMP
- BIT
The result of the analysis is shown in the "Column Type Mapping" section at the bottom of the import webview.
You can change the data type and look at a sample of the data:
.png)
Step 3 — Create custom indexes
The extension supports index creation while creating a new table.
For each column, you can:
- Check an “Index” checkbox if you know you’ll often query or filter by that column
- Select index type. Available types are:
- INDEX
- BITSLICE
- BITMAP
- COLUMNAR (IRIS Analytics)
- You can edit the index name — if left empty, the extension auto-generates one
Step 4 — Select Schema
When selecting a schema for the new table, you can choose to use a previously existing schema or to create a new schema.
When using a previously existing schema:
- You can either specify a schema filter (optional) or just hitting the "Load Schemas" button to load all the available schemas within the selected namespace.
.png)
When creating a new schema:
- You can specify a new schema name in the format
MySchemaName_SubSchemaName
.png)
Step 5 — Select Table Name
Once schema has been selected, you can specify a new table name. If a table with the same schema and table name already exists, the import will be aborted to prevent accidental overwriting.
Step 6 — Create Table & Import
Click on the Create button to create a new table and import data.
The extension logs progress in the Output panel, and shows a popup notification when done.
.png)
Loading data into an existing table by the IRIS IO utility
To inject new data into an existing table:
- Switch to the “Load into Existing Table” tab
- Select your file
- Choose target schema and table name
- Select import action: Append or Replace
The extension validates that the file’s columns align with the existing table schema and aborts if there are mismatches — safeguarding your data integrity.
.png)
Special case of TXT files: define the correct delimiter
When importing TXT files, the extension allows you to specify a custom delimiter to ensure the file is parsed correctly. This is especially useful when working with unconventional separators such as pipes (|), semicolons (;), tabs, or multi-character delimiters. Selecting the correct delimiter guarantees proper column detection and prevents misaligned or corrupted data during the import process.
.png)
.png)
Final Thoughts
The Import engine transforms IRIS IO Utility from a simple helper into a real data engineering tool.
It handles:
- Type inference
- Schema building
- Index creation
- Data loading
- Diagnostic logging
All inside VS Code — clean, discoverable, and convenient.
Together with the Export engine, IRIS IO Utility provides a complete, modern, developer-friendly IO workflow for InterSystems IRIS.
If you enjoyed this feature and find IRIS IO Utility useful, please vote for it in the InterSystems Contest!🚀