Skip to content
Monghoul
Free, monitor on Pro

A ClickHouse IDE that shows the granules a query reads

Monghoul is a desktop ClickHouse IDE for Windows, macOS and Linux. It plans a SELECT without running it and counts the granules the read selects. It reads {name:Type} parameters, edits rows in a MergeTree table by its sorting key, and asks first before a mutation, which ClickHouse cannot undo.

Download Monghoul Read the ClickHouse docs
ClickHouse · Explain shows the parts and granules the key skipped
Explain of a ClickHouse read: the plan, with the sorting key pruning the read to 3 of 1,256 granules
Fig 01 Explain · The sorting key pruned this read to 3 of 1,256 granules
A ClickHouse table with two staged changes; Review Changes says ClickHouse has no transactions and each stage commits on its own; after Apply, a line says 2 changes committed and that ClickHouse cannot lock rows
ClickHouse · Each stage commits on its own, with no transaction

How many granules does my ClickHouse query read?

Explain plans a SELECT without running it and adds the estimated granules. A read of 64 granules or more that selects every granule is graded Full read, so a sorting key that does not prune shows before you run the query.

Can I use {name:Type} parameters?

Yes. While the text uses a parameter, a Query parameters strip above the editor has a field for each one, typed from the text, with NULL where the type allows it. A date or a time gets a calendar. A write that uses a parameter is refused.

A ClickHouse draft with {name:Type} parameters and the Query parameters strip above it: a UInt32 value, an empty String and a Nullable set to NULL
Fig 02 Parameters · Each {name:Type} gets a typed field above the editor

How does it edit rows when ClickHouse has no transactions?

A result of one MergeTree table, named by its sorting key, can be edited in the grid. Review Changes says that each stage commits on its own, deletes then updates then inserts, and that ClickHouse cannot lock rows. A table with a row policy is refused.

What if an edit only partly applies?

Each change then shows its own status, Applied, Not applied or Unknown, with the server’s detail, and the head line counts them. Nothing is sent again by itself.

Does it ask before an ALTER TABLE ... UPDATE?

A mutation (ALTER UPDATE or DELETE) asks first, and the dialog says ClickHouse cannot undo it. So do MODIFY COLUMN of a type, EXCHANGE TABLES and OPTIMIZE DEDUPLICATE. A WHERE that names no column, such as WHERE toUInt8(1), counts as every row.

Can I watch replicas, parts and slow queries?

On Pro, the Cluster Monitor reads every replica of a cluster and rates memory, connections, the most parts in one partition, replica delay and running queries. Query log lists the slowest or failed queries of the last hour with each error.

The ClickHouse Cluster Monitor in Query log mode: the slowest queries on every replica, a failed insert open with its too many parts error
Fig 03 Monitoring · The query log across replicas, with each failure’s error Pro

Connecting to ClickHouse

  • A ClickHouse server reached over its HTTP interface, plain or with TLS. Test Connection names its version.
  • Port 8123 for plain HTTP and 8443 with TLS; the port follows the TLS mode until you type one.
  • Paste URL takes a clickhouse://, http:// or https:// URL.
  • TLS with the system CAs or a CA file, and an SSH tunnel.
  • A login whose own readonly setting is 1 can still page through results, up to 1,000,000 rows.

What it does not do on ClickHouse

  • No transactions and no Manual commit.
  • Import has no upsert mode.
  • FORMAT, INTO OUTFILE, ON CLUSTER, USE, KILL, a session SET and SYSTEM statements are refused in a draft, each with the reason.
  • Columns of type Array, Map, Tuple, JSON, a geo type or an aggregate state are not generated by Generate Data.

Shared with the other engines

The same windows as on the other engines, with ClickHouse's words and limits. Compare all five.

ClickHouse questions

Does Monghoul show a materialized view’s data flow?

Yes. Open Details on a ClickHouse object shows its engine with the sorting, primary, partition and sampling keys, its columns, skip indexes, projections, the data flow and the CREATE text.

Why does the Database Map show only Likely lines on ClickHouse?

ClickHouse has no foreign keys, so every line comes from the column names. It has no unique key either, so a Scan cannot make a line Verified; only Confirm or Add makes a link.

What does Stop do to a running ClickHouse query?

It kills the query on the server. When your user may not kill it, the run is cancelled in the app only.

How does it handle a mutation that is still running?

An ALTER TABLE waits for its mutation. If the mutation still runs when the wait ends, the result says the outcome is unknown and tells you to check `system.mutations` before you run the write again.

Can I filter a result from a cell, or run a whole script?

Yes. Filter by This Value on a cell adds the condition to the statement’s own WHERE, or to its HAVING when the query groups, and runs it again. Run all statements (Alt+X) runs up to 200 statements in order, and each write commits on its own, because ClickHouse has no transactions.

Point it at your ClickHouse database

43 MB installer. Free for 8 connections, and a 14-day Pro trial with no card.

Download Monghoul