Integrations
OPC UA to PostgreSQL, without a script.
Read the OPC UA nodes with MaestroHub, give each value a name, unit and quality, and insert the rows into a PostgreSQL or TimescaleDB table. Inserts are buffered on disk when the database is unreachable and delivered when it returns.
The flow
One value, from the machine to PostgreSQL. Illustrative.
OPC UAindustrial protocolns=2;s=P101.VIB
MaestroHubPump 1 vibration · 3.4 mm/s · Good
- named, unit, quality
- origin stamped
- buffered on disk
PostgreSQLdatabasetelemetry tableWhy do it with MaestroHub
More than a pipe from OPC UA to PostgreSQL.
A schema you can query
Columns for asset, signal, unit and quality instead of a key-value dump.
No missing rows after a restart
Database maintenance windows become a pause; buffered rows arrive afterwards.
Reference data both ways
Read lookup tables back from PostgreSQL to enrich values in the same pipeline.
What lands in PostgreSQL
An example. You choose the fields in the pipeline.
| ts | asset | signal | value | unit | quality |
|---|---|---|---|---|---|
| 2026-10-03 06:00:01 | line2/pump1 | vibration | 3.4 | mm/s | good |
Set it up in three steps
- 1
Connect OPC UA
Add the OPC UA server, browse its address space and pick the nodes, or add hundreds at once with bulk creation.
- 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 PostgreSQL
Add a PostgreSQL output and map the fields to the table's columns.
Before you start
What each side needs, from the connector documentation.
OPC UA
- The server address, built as opc.tcp://host:port/path. The standard OPC UA port is 4840.
- For any Security Policy other than None, a client certificate: paste your own (RSA keys only) or let MaestroHub generate a self-signed one.
- If you use the auto-generated certificate, the OPC UA server administrator must trust it on the server.
- A username and password when the server does not allow Anonymous access.
Example settings
- Server Hostname
- opcua.example.com
- Port
- 4840
- Security Policy
- Basic256Sha256
- Security Mode
- SignAndEncrypt
- Certificate Mode
- Auto-generate (self-signed)
- Authentication Type
- UsernamePassword
PostgreSQL
- PostgreSQL 9.6 or later (TimescaleDB works too), reachable on its port, 5432 by default.
- A database user and password, plus the database name and schema (public by default).
- For verify-ca or verify-full: the CA certificate in PEM. Add a client certificate and key for mutual TLS.
Example settings
- Host
- <your-db-host>
- Port
- 5432
- Database
- mydb
- Schema
- public
- Enable SSL
- true
- SSL Mode
- verify-full
Things to know
Pitfalls and limits the documentation calls out, so they don't surprise you on site.
OPC UA
- Security Policy and Security Mode must agree. Policy None requires Mode None. Any other policy requires Sign or SignAndEncrypt.
- Node identifiers need a namespace index and a type prefix (i=, s=, g=, b=). Namespace 0 is typically standard nodes, 2 and up custom nodes. Browse a small scope first to find the exact IDs.
- On Monitor functions, set the sampling interval equal to or faster than the publishing interval, or changes can be missed. Subscriptions are recreated automatically after a lost connection or a session timeout.
Limits
- Manual client certificates support RSA keys only. Auto-generated certificates are RSA 2048-bit and valid for 365 days.
- Monitor functions cannot be created through Quick Add. Use the full Function Builder.
PostgreSQL
- If incoming data has a field with no matching column and Allow Schema Evolution is off, Write fails before inserting and names the field. Turn the switch on, add the column, or remove the field upstream.
- Write batches are not wrapped in one transaction. If batch 3 of 5 fails, batches 1 and 2 stay committed, and rowsInserted shows how many rows landed.
- Without a schema, column types are inferred: 55.0 arrives as 55 and becomes BIGINT, and objects and arrays become TEXT. Define the type in the schema editor when you need NUMERIC or similar.
Limits
- Schema evolution only adds columns. It never changes a column's type or drops a column; run ALTER TABLE through an Execute function for that.
What teams use it for
Custom applications
Line apps and reports reading a clean table.
TimescaleDB as a historian
Time-series storage with SQL people already know.
Integration with MES
Production data in the database the MES reads.
Ways to connect OPC UA to PostgreSQL
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 OPC UA | 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 store OPC UA data in PostgreSQL or TimescaleDB?
Read the OPC UA nodes with MaestroHub, give each value a name, unit and quality, and insert the rows into a PostgreSQL or TimescaleDB table. Inserts are buffered on disk when the database is unreachable and delivered when it returns.
Do I need to write code to connect OPC UA to PostgreSQL?
No. You configure the OPC UA connection and the PostgreSQL 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. Nothing has to leave your network.
Why not just write a script for OPC UA to PostgreSQL?
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 OPC UA 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 OPC UA to PostgreSQL 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.



