Integrations
Ignition to Snowflake, without a script.
Keep Ignition running the plant floor and add MaestroHub beside it: the MaestroHub Ignition Module lets MaestroHub browse and subscribe to Ignition's tags, give them a governed meaning, and land them in Snowflake with quality and timestamp.
The flow
One value, from the machine to Snowflake. Illustrative.
IgnitionSCADA platform[default]Line2/Filler/Speed
MaestroHubFiller 2 speed · 412 bpm · Good
- named, unit, quality
- origin stamped
- buffered on disk
LINE2.TELEMETRYWhy do it with MaestroHub
More than a pipe from Ignition to Snowflake.
Ignition stays as it is
Nothing changes in your Ignition projects. MaestroHub reads alongside them through a module.
Tags from Ignition and everything else
Ignition tags sit in the same namespace as PLCs and systems Ignition doesn't touch, so Snowflake sees one plant.
Governed path to the cloud
Who can read which tags, and every change to the pipeline, is controlled and audited in one place.
What lands in Snowflake
An example. You choose the fields in the pipeline.
| ts | asset | signal | value | unit | quality |
|---|---|---|---|---|---|
| 2026-10-03 06:00:01 | line2/filler2 | speed | 412 | bpm | good |
Set it up in three steps
- 1
Connect Ignition
Install the MaestroHub Ignition Module on the Gateway, connect, and browse the tag providers to pick tags or UDT instances.
- 2
Give the values meaning
Map each value to a topic in the namespace with its name, unit and schema. Quality and origin are stamped on every value.
- 3
Deliver to Snowflake
Add a Snowflake output to the pipeline and pick the table; with streaming, rows land within seconds.
Before you start
What each side needs, from the connector documentation.
Ignition
- The MaestroHub Ignition Module (.modl file) installed and running on the Ignition Gateway. It is downloaded from portal.maestrohub.com/downloads/plugins/.
- Ignition 8.1.x or 8.3.x, with the module file built for that version.
- Inbound access to the module's WebSocket port, 45280 by default. Make sure the port is free before installing.
- An API Token defined on the module configuration page if you want token authentication. No token is configured by default.
Example settings
- Host
- 192.168.1.100
- Port
- 45280
- API Token
- <your-api-token>
- Default Tag Provider
- default
- Connect Timeout (seconds)
- 30
- Request Timeout (seconds)
- 30
Snowflake
- An RSA key pair. The public key is set on the Snowflake user with ALTER USER ... SET RSA_PUBLIC_KEY, and the private key goes into MaestroHub.
- A Snowflake user whose default role has USAGE on the database and schema and INSERT (and SELECT) on the target tables. The connector always uses the user's default role.
- Extra grants only for the features you use: OPERATE on a custom pipe, CREATE TABLE on the schema, EVOLVE SCHEMA on an existing table.
- The account identifier, for example myorg-myaccount or xy12345.us-east-1, plus the database and schema.
Example settings
- Account Identifier
- <your-org>-<your-account>
- Database
- FACTORY
- Schema
- RAW
- User
- MAESTROHUB_SVC
- Table (Stream Rows)
- TELEMETRY
- Rows (Stream Rows)
- ((data))
Things to know
Pitfalls and limits the documentation calls out, so they don't surprise you on site.
Ignition
- Restart the Ignition Gateway after installing the module, then check that it shows Active and Running on the Modules page. Changes to module settings may also need a restart.
- Tags outside the Default Tag Provider need a provider prefix, for example [System]Gateway/SystemName. Provider-only paths such as [default] are rejected for writes.
- Subscribe functions cannot be tested from the function builder, and the connection must be active for events to arrive.
Limits
- Read and Subscribe functions take up to 50 tag paths each, as the recommended maximum.
- A Browse call returns at most 10,000 nodes (1,000 by default).
Snowflake
- Send epoch timestamps as strings or as ISO-8601 text. Epoch milliseconds sent as a JSON number are read as seconds and stored around the year 57,700 with no error.
- A timestamp without a time zone is read in the account time zone (America/Los_Angeles by default) for TIMESTAMP_LTZ and TIMESTAMP_TZ columns. Send the zone, for example 2026-09-23T08:00:00Z.
- Snowflake skips rows that do not fit the table. Turn on ERROR_LOGGING on the table to keep them, and turn on Wait for Commit when a rejected row must fail the call.
Limits
- Snowflake Streaming only loads rows. To query or run DML and DDL, use the Snowflake SQL connector, which runs through a warehouse.
- A single row larger than 4 MB after compression is refused, and each connection writes to one database and schema. Use a second connection for another schema.
What teams use it for
Enterprise analytics from SCADA data
Ignition's tags joined with ERP and quality data in Snowflake.
Multi-site roll-up
Several Ignition gateways feeding one consistent model in the warehouse.
AI on plant data
The same governed values available to AI agents through MaestroHub's MCP server.
Ways to connect Ignition to Snowflake
In general terms. Check any specific product for its own details.
Compare a custom script, a flow tool, a cloud vendor's edge service and MaestroHub
Swipe sideways to see every column
| A custom script | A flow tool | A cloud vendor's edge service | MaestroHub | |
|---|---|---|---|---|
| Talks Ignition | A library you choose | Community plug-ins | Depends on the vendor | Built in, one of 90+ connectors |
| Names, units and schema | You write it | You build it | Partly, in the vendor's model | One governed namespace |
| Quality on every value | You write it | You build it | Depends on the vendor | Built in, carried through calculations |
| Where each value came from | You write it | You build it | Depends on the vendor | Stamped on every value |
| Survives a network outage | You build it | You build it | Usually, to that vendor's cloud | On disk, per destination, in order |
| Several destinations at once | One script each | Yes, flow by flow | Mostly that vendor's cloud | Any mix, each with its own buffer |
| Permissions and audit | You build it | You build it | Cloud account permissions | Roles, single sign-on, audit trail |
| AI agents can use the data | You build it | You build it | Depends on the vendor | Through the MCP server |
Questions
How do I get Ignition tag data into Snowflake?
Keep Ignition running the plant floor and add MaestroHub beside it: the MaestroHub Ignition Module lets MaestroHub browse and subscribe to Ignition's tags, give them a governed meaning, and land them in Snowflake with quality and timestamp.
Do I need to write code to connect Ignition to Snowflake?
No. You configure the Ignition connection and the Snowflake output in MaestroHub and join them with a pipeline. Transformations can be added where you need them.
Where does MaestroHub run for this?
On your own infrastructure next to the machines: an edge box, a virtual machine or Kubernetes. Only the rows you choose leave the plant for Snowflake.
Why not just write a script for Ignition to Snowflake?
A script works on day one. The cost comes later: decoding and naming values, handling bad quality, buffering through outages, keeping credentials safe, and doing it again for the next machine and the next destination. MaestroHub does those once, for every connector.
What else can Ignition data go to?
More than 90 connectors are included in every edition, among them historians, databases, cloud warehouses, message brokers and business systems, so the same values can feed several destinations at once.
Try Ignition to Snowflake yourself.
The free trial includes every connector. No factory to hand? The Digital Factory Simulator serves OPC UA, Modbus, MQTT and more on your laptop.



