This is a template for IntegratedML - InterSystems GitHub repository.
This repository comes with example Jupyter notebooks demonstrating how to use IntegratedML in InterSystems IRIS Community Edition in a Docker container.
- What is IntegratedML?
- What's inside this template
- Pre-configured environment and sample data
- How to develop your IntegratedML solution
- How to Import data into InterSystems IRIS
IntegratedML is a feature of the InterSystems IRIS data platform that brings machine learning to SQL developers.
IntegratedML is:
- All-SQL -- Build and train machine learning models using intuitive custom SQL commands, fully integrated within the InterSystems IRIS SQL processor
- Turnkey -- No packages or programming languages to learn, nothing to install
- Modular -- Leverages "best of breed" open source and proprietary AutoML frameworks
Learn more about InterSystems IRIS and IntegratedML at the InterSystems Learning site
This template creates a Docker environment (via docker-compose up) with 2 pre-configured containers:
- jupyter: TensorFlow 2.16.1 + Jupyter notebook server with sample notebooks
- irisimlsvr: InterSystems IRIS Community Edition with AutoML package (installed via Dockerfile) and pre-loaded sample data in USER namespace
The template includes sample notebook files accessible at http://localhost:8896/tree:
- campaign-integratedml.ipynb: A simple connection to sample Marketing Campaign data, demonstrating IntegratedML including VALIDATE MODEL command usage.
- readmission-integratedml.ipynb: Demonstrates IntegratedML on a hospital readmission prediction dataset.
- biomedical-integratedml.ipynb: Building and using an IntegratedML model with complex SQL queries using PREDICT() and PROBABILITY() functions.
- ED_visit_90_day.ipynb: Building and using an IntegratedML model to predict Emergency Department visits. NOTE: This notebook requires external data and is not executable out of the box.
All notebooks use the intersystems-irispython DB-API driver for database connectivity.
flowchart LR
subgraph Browser["Web Browser"]
JupyterUI["Jupyter Notebook<br/>localhost:8896"]
IRISPortal["IRIS Portal<br/>localhost:8092"]
end
subgraph Docker["Docker Compose Environment"]
subgraph jupyter["jupyter container"]
J1["Jupyter :8888"]
J2["TensorBoard :6006"]
J3["TensorFlow 2.16.1"]
J4["DB-API Driver"]
end
subgraph iris["irisimlsvr container"]
I1["IRIS Community Edition"]
I2["AutoML Package"]
I3["SuperServer :1972"]
I4["Web Server :52773"]
I5["USER namespace"]
end
end
JupyterUI --> J1
IRISPortal --> I4
J4 <-->|"port 8091:1972"| I3
Port Mappings:
| Host Port | Container Port | Service |
|---|---|---|
| 8896 | 8888 | Jupyter Notebook |
| 6026 | 6006 | TensorBoard |
| 8091 | 1972 | IRIS SuperServer (DB-API) |
| 8092 | 52773 | IRIS Web Portal |
Make sure you have git and Docker or Podman installed.
This template is tested on AWS Ubuntu, Mac OS, and Windows 10. It should work on other Docker environments too - let us know if you encounter any issues.
- Clone the repository:
git clone https://github.com/intersystems-community/integratedml-demo-template.git
cd integratedml-demo-template- Build the Docker images:
docker-compose build- Run the containers:
docker-compose up -d- Access the Jupyter notebooks:
http://localhost:8896/tree
- Access the IRIS Management Portal / Web Terminal:
http://localhost:8092/terminal/
Credentials: SuperUser / SYS
Enter /sql mode to make SQL queries and examine data in IRIS.
Click the button "Use this template" on GitHub to create a new repository which will be a copy of this one.
Clone your new repo to a local folder.
Install VSCode with the Docker extension and ObjectScript extension, then open the folder in VSCode.
Import your data as listed below, rebuild containers to let the data be imported, and use IntegratedML via SQL tools, as described in Jupyter notebooks.
- Add a CSV file into the repository, e.g., like titanic.csv
- Add an import data call to your IRIS initialization script (example)
- Query the data from any SQL tool, web terminal, or from InterSystems ObjectScript:
SELECT * FROM Titanic.PassengerIf your file is accessible remotely, you can import it as follows:
- Add the import CSV from URL line to iris.script
- Rebuild the Docker image:
docker-compose build - Query the imported data:
SELECT * FROM SQLUser.CountriesIf you see the error:
Error: Invalid Community Edition license, may have exceeded core limit.
This typically occurs with outdated Docker images. The official IRIS Community Edition from containers.intersystems.com supports up to 20 CPU cores. The intersystemsdc/iris-ml-community images on Docker Hub have expired licenses and should not be used.
Solution: This template uses the official InterSystems Container Registry image which has a valid license. If you encounter this error, ensure your Dockerfile uses:
FROM containers.intersystems.com/intersystems/iris-community:latest-em
- InterSystems IRIS Community Edition from official registry (supports up to 20 cores)
- TensorFlow 2.16.1 with Jupyter
- Python with intersystems-irispython DB-API driver
- AutoML (intersystems-iris-automl)
- Updated TensorFlow from 2.2.0 to 2.16.1
- Switched from JDBC/PyODBC to DB-API driver (intersystems-irispython)
- Switched to official InterSystems Container Registry (
containers.intersystems.com) - Modernized docker-compose configuration
- Added GitHub Actions CI/CD workflow
- Updated all Python dependencies with version pinning
- Multi-architecture support (ARM64 for Apple Silicon, AMD64 for Intel)