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.
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.
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.
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://orhttps://URL. - TLS with the system CAs or a CA file, and an SSH tunnel.
- A login whose own
readonlysetting 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.
- Explain a query
- Database Map
- Edit values in place · by sorting key
- Import a file
- Export
- Generate test data
- Schema from a sample
- Cluster Monitor · Pro
- AI assistant access · Pro
- Write protection
- Operation logs
- Not on ClickHouse: Manual commit.
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.