Browse the docs
Input node

Trino / Starburst input

Read a table or SQL query from a Trino / Starburst cluster. A Bookmark can read only the rows added or changed since the last successful run.

Category
Input
Connection
Trino / Starburst

What it does

Reads from a Trino / Starburst cluster through a saved Connection and streams the result into the pipeline in batches. Trino queries many underlying systems through one endpoint, so one node can read a lakehouse table, a relational database, or a join across both. Pick a table with the live catalog, schema and table browser, or write your own SQL.

Inputs and outputs

InputsNone. This node starts a pipeline.
OutputsOne.

When to use it

  • Query data across many sources through one Trino cluster
  • Read a table straight from a lakehouse catalog (Hive, Iceberg, Delta)
  • Push filtering, joins and aggregation down to Trino, where they run faster

Examples

Pick a table

hive.sales.orders

Fully qualified as catalog.schema.table; the browser fills all three in.

Aggregate at the source

SELECT region, SUM(total) FROM hive.sales.orders GROUP BY region

Returns a summary rather than every row.

Cross-catalog join

SELECT * FROM hive.s.a JOIN postgresql.public.b USING (id)

The thing Trino is for: one query across two different systems.

Recent slice

SELECT * FROM iceberg.sales.orders WHERE order_date >= DATE '2026-08-01'

A typed date literal, so the lakehouse can prune partitions.

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.
  • The query is Trino SQL, the cluster's own dialect. This is a source query, not a Trinium row expression.
  • Columns appear as soon as you pick a table or write a query, with no test run needed. Trinium asks Trino to describe the statement's output, which runs nothing.
  • The browser needs a Connection; a local Trino is usually http on 8080, Starburst Galaxy https on 443.
  • Numbers and booleans come across natively; decimals, dates and timestamps arrive as text. Cast in SQL if you need them typed on the canvas.
  • Timestamps keep their full precision. A microsecond timestamp is not silently rounded to milliseconds on the way out.
  • A table name can be given bare or partly qualified, and the connection's default catalog and schema fill in the rest.
  • A query that returns no rows still passes its columns downstream, so a Union or Join below it keeps working.
  • 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.