The POSTGRESQL route stores MQTT messages in PostgreSQL databases. It supports SSL connections, parameterized queries, and automatic reconnection for reliable data persistence.
PostgreSQL is ideal for structured data that requires complex queries, joins, and ACID compliance. Use it when you need relational integrity and powerful SQL capabilities.
DEFINE ROUTE SensorDB WITH TYPE POSTGRESQL ADD SQL_CONFIG WITH SERVER "postgres.example.com" WITH PORT '5432' WITH DATABASE "iot_data" WITH USERNAME "iot_user" WITH PASSWORD "secure_password" ADD EVENT StoreSensorReading WITH SOURCE_TOPIC "sensors/+/reading" WITH QUERY "INSERT INTO readings (ts, sensor_id, value) VALUES (NOW(), '{sensor_id}', '{value.json}')"
DEFINE ROUTE TemperatureDB WITH TYPE POSTGRESQL ADD SQL_CONFIG WITH SERVER "postgres.example.com" WITH PORT '5432' WITH DATABASE "iot_data" WITH USERNAME "iot_user" WITH PASSWORD "secure_password" ADD EVENT StoreTemperature WITH SOURCE_TOPIC "sensors/+/temperature" WITH DESTINATION_TOPIC "db/status/temperature" WITH QUERY "INSERT INTO temperature_readings (recorded_at, sensor_id, value, unit) VALUES (NOW(), '{sensor_id}', {value.json.value}, '{value.json.unit}')"
Input atsensors/temp001/temperature:
Copy
Ask AI
{"value": 23.5, "unit": "celsius"}
Secure connection with SSL:
Copy
Ask AI
DEFINE ROUTE SecureDB WITH TYPE POSTGRESQL ADD SQL_CONFIG WITH SERVER "postgres.cloud.com" WITH PORT '5432' WITH DATABASE "production" WITH USERNAME "app_user" WITH PASSWORD "secure_password" WITH USE_SSL "true" WITH TRUST_SERVER_CERTIFICATE "false" ADD EVENT StoreEvent WITH SOURCE_TOPIC "events/#" WITH QUERY "INSERT INTO events (ts, topic, payload) VALUES (NOW(), '{source_topic}', '{value.json}')"
Different tables for different data types:
Copy
Ask AI
DEFINE ROUTE MultiTableDB WITH TYPE POSTGRESQL ADD SQL_CONFIG WITH SERVER "postgres.example.com" WITH PORT '5432' WITH DATABASE "iot_data" WITH USERNAME "iot_user" WITH PASSWORD "secure_password" ADD EVENT StoreSensorData WITH SOURCE_TOPIC "sensors/+/data" WITH QUERY "INSERT INTO sensor_data (ts, sensor_id, value) VALUES (NOW(), '{sensor_id}', '{value.json}')" ADD EVENT StoreAlerts WITH SOURCE_TOPIC "alerts/+" WITH QUERY "INSERT INTO alerts (ts, alert_type, message) VALUES (NOW(), '{alert_type}', '{value.json}')" ADD EVENT StoreMetrics WITH SOURCE_TOPIC "metrics/#" WITH QUERY "INSERT INTO metrics (ts, topic, data) VALUES (NOW(), '{source_topic}', '{value.json}')"
Store full payload in JSONB column:
Copy
Ask AI
DEFINE ROUTE JSONStorage WITH TYPE POSTGRESQL ADD SQL_CONFIG WITH SERVER "postgres.example.com" WITH PORT '5432' WITH DATABASE "iot_data" WITH USERNAME "iot_user" WITH PASSWORD "secure_password" ADD EVENT StoreJSON WITH SOURCE_TOPIC "devices/#" WITH QUERY "INSERT INTO device_data (ts, topic, payload) VALUES (NOW(), '{source_topic}', '{value.json}'::jsonb)"
This allows powerful JSON queries in PostgreSQL:
Copy
Ask AI
SELECT * FROM device_data WHERE payload->>'temperature' > '25';