Learn how to integrate Proxus with an existing ClickHouse instance, send device data, and leverage high-performance analytics for real-time monitoring and insights.
Verify Connectivity
http://<clickhouse-host>:8123/ping
). It should return OK
.Check Credentials
admin
/clickhouse123
).Log in to Proxus
Navigate to Outbound Channels
Create New Channel
Fill in Channel Details
ClickHouse
ClickHouseAnalytics
(e.g.)ClickHouse Integration for Device Data
Pass Through Strategy
Go to Parameters Tab
Add Key-Value Pairs
Parameter Details
Host
, Value: <clickhouse-host>
(e.g., localhost
)Port
, Value: 8123
(or your ClickHouse HTTP port)Username
, Value: admin
(or your username)Password
, Value: clickhouse123
(or your password)Database
, Value: proxus
(default or your database)Table
, Value: DeviceRawData
(default or your table)WriteIntervalSeconds
, Value: 5
(buffer every 5 seconds)TTLExpression
, Value: See examples below (optional)Save Configuration
TTLExpression
parameter defines how long data remains in ClickHouse before automatic deletion. Use ClickHouse’s TTL syntax based on the Time
column. Here are some examples:
30 Days Retention
1 Week Retention
6 Months Retention
Custom Retention with Condition
Navigate to Devices
Select Device
Go to Target Profiles
Add ClickHouse Profile
ClickHouseAnalytics
ClickHouse
Pass Through Strategy
Activate Device
Check Logs
[ClickHouse] Added X records to buffer
and [ClickHouse] Flushed Y records
.clickhouse-client
) or the HTTP interface (e.g., http://<clickhouse-host>:8123
).
Verify Data
Aggregate Data
DeviceRawData
table in ClickHouse has the following schema:
Column | Type | Description | Example |
---|---|---|---|
Time | DateTime64(3) | Timestamp of data collection | 2025-02-25 09:36:00.000 |
DeviceId | UInt32 | Unique device identifier | 1 |
DeviceName | String | Name of the device | Sensor1 |
Key | String | Data key (e.g., temperature) | temperature |
DataType | Enum8 | Type of data (e.g., Double, String) | 8 (Double) |
NumericValue | Float64 | Numeric value of the data | 25.5 |
StringValue | String | String value (if applicable) | "" or "High" |
WriteIntervalSeconds=5
), which aligns with server-side settings if configured (e.g., async_insert_busy_timeout_ms=5000
).
Connection Failed
Host
and Port
match your ClickHouse instance.
Too Many Parts
WriteIntervalSeconds
(e.g., to 10) or ensure server-side async_insert
is enabled.
Data Not Visible
[ClickHouse] Flushed
messages.
WriteIntervalSeconds
based on data volume (e.g., 5-10 seconds for high throughput).
TTLExpression
to control data lifecycle. Examples:
toDateTime(Time) + INTERVAL 1 WEEK
toDateTime(Time) + INTERVAL 1 YEAR
system.parts
to optimize part count and storage.
ClickHouseIntegrationActor
. You can now efficiently store device data, perform real-time analytics, and scale your monitoring solution with ease.