Browse the docs
Input node

ClickHouse input

Read a table or SQL query from ClickHouse. Columns show without a run, even for a query you write yourself. A Bookmark can read only the rows added or changed since the last successful run.

Category
Input
Connection
ClickHouse

What it does

Reads from ClickHouse through a saved Connection and streams the result into the pipeline in batches. Pick a table with the live database and table browser, or write your own SQL. ClickHouse hands its columns over in the pipeline's own columnar format, so the builder shows them WITHOUT a run, for a table AND for a query you type yourself. Credentials live on the Connection.

Inputs and outputs

InputsNone. This node starts a pipeline.
OutputsOne.

When to use it

  • Pull event, log or clickstream data out of ClickHouse for downstream work
  • Push filtering and aggregation down to ClickHouse so far less data crosses the wire
  • Move a ClickHouse result into a warehouse, a file, or a spreadsheet

Examples

Pick a table

default.events

The browser lists real databases and tables.

Custom query

SELECT user_id, count() AS hits FROM events GROUP BY user_id

Prune by time

SELECT * FROM events WHERE event_time >= now() - INTERVAL 1 DAY

Filtering on the table's sort key is the difference between a scan and a seek.

Only rows newer than the last successful run

Bookmark column: updated_at · Start from: 2026-01-01 00:00:00

Each Live run reads only rows added or changed since the last run that succeeded. After an outage, one run catches up.

Tips

  • Press ⤢ beside SQL query for the SQL Studio: a full-screen editor that browses the connection's schemas, tables and columns, shows the columns your query returns without running it, and runs it with Run to here without closing.
  • Columns appear in the builder as soon as the query is valid, with no run needed. They are read with a zero-row probe, so it costs nothing.
  • This query is ClickHouse SQL, the server's own dialect, which is different from Trinium's row expressions.
  • Types come across natively: numbers, dates, timestamps and decimals stay typed rather than arriving as text.
  • Batch size maps to the server's block size. Blank is almost always right.
  • The default HTTP port is 8123; managed and TLS endpoints usually use 8443.
  • Bookmark: each Live run reads only the rows whose bookmark column is past where the last SUCCESSFUL run stopped. A failed or cancelled run never moves it, so after an outage one run reads everything that was missed. Staging and Production keep their own; a Test run always reads from Start from and never moves it.
  • The bookmark column must move forward whenever a row is added or changed: an updated_at stamp, or an ever-increasing id. A row whose bookmark column is empty is never read, and a row DELETED in the database is never seen, so reload the table now and then if deletes matter.
  • With a hand-written query, write WHERE updated_at >= ${bookmark} where the value goes. Editing the table, query, connection or column keeps the bookmark, and the run's Messages say when it last read something else. A Bookmark column of another kind (a date where it was a number) is refused until you Set or Reset it in the node's Bookmark panel.
  • Each value of a text parameter the pipeline uses keeps its own bookmark, so region = EU and region = US each read only their own new rows. A number or true/false parameter in the table name is refused, because one bookmark would serve every value; make it a text parameter with a list of choices. A date in the table name (events_${date:%Y%m%d}) carries the bookmark into each new day's table, so bookmark a date-time column there.
  • When the pipeline uses a text parameter anywhere, such as ${region} in this query or in a Filter after it, each value keeps its own bookmark, so a run for one region never moves another's. A value's first run reads from Start from, and date, number and true/false parameters share one bookmark. Starting or stopping using a text parameter pauses the bookmark the same way, until you Set where the value starts or Reset the old bookmark.
  • Lookback (date-time columns only) re-reads the N minutes before where the last successful run stopped, to catch rows a long transaction committed late. A first run and every Test run read exactly from Start from. Re-read rows load again, so use it with an Upsert output.