Al Brown (@sdairs) profile picture

Product @ ClickHouse Thinking about agentic experience & identity

Joined April 2015
Photo by Al Brown (@sdairs)Photo by Al Brown (@sdairs)Photo by Al Brown (@sdairs)Photo by Al Brown (@sdairs)Photo by Al Brown (@sdairs)Photo by Al Brown (@sdairs)Photo by Al Brown (@sdairs)Photo by Al Brown (@sdairs)Photo by Al Brown (@sdairs)Photo by Al Brown (@sdairs)
1/5 ClickHouse 26.10 (@ClickhouseDB) can read less data for GROUP BY queries ordered by key with LIMIT. The aggregation's Top-K boundary lets the scan skip rows and granules whose keys cannot enter the result.
1
1
98
4/5 All rows of the retained groups still contribute to their aggregates. ORDER BY count() DESC is a different problem; this is a boundary on group keys, not on aggregate scores.
1
5
5/5 enable_group_by_top_k_dynamic_filtering is on by default for eligible reads, excluding FINAL and parallel replicas. Inspect read bytes and TopKGranulesSkippedByPrimaryKey as well as time.
6
This is a first for me; I sent an email to an "enterprise" vendor we use, asking a simple question. It was clearly forwarded directly to LLM that proceeded to randomly delete data across our account. Then sent me a slop response that didn't even answer my question.
1
30
When I replied asking wtf just happened...off the LLM went and did it again! 🤣
11
1/4 ClickHouse 26.10 can pack an array of yes/no values into a bitmask, with a lambda deciding each bit. arrayPackBitsToUInt64(c -> c = 'Y', ['Y', 'N', 'N', 'Y']) returns 144, whose packed byte is 10010000.
1
1
111
3/4 String keeps the whole bitstream, FixedString(n) pads or truncates it to n bytes, and UInt64 keeps at most 64 bits. The group variants pack several low bits per element, so 4-bit codes [1, 2, 3, 15] become 0x123F.
1
10
4/4 These are tools for quantization, not a complete vector-search path. Sign-only embeddings discard magnitude, so check retrieval quality. For external producers, keep bits MSB-first per byte, with UInt64 reading those bytes little-endian.
9
Agree with every word from Proton's CTO
Replying to @josephfcox
Here is Proton CTO's AI manifesto, that I obtained multiple copies of 404media.co/manifestos-fear-…
46
1/5 Monitoring dashboards with moving time windows can reuse query-condition-cache entries in ClickHouse 26.10, even when the filter uses now(). The cache key is rounded while the actual query filter stays exact.
2
1
76
4/5 An aligned bound such as today() - 10 can reuse entries in the same grid cell, while an unaligned sliding lower bound primes the next cell. An unaligned upper bound such as time < now() doesn't get that later-query reuse.
1
10
5/5 This path applies to MergeTree. use_query_condition_cache_for_time_conditions is on by default and needs use_query_condition_cache. Compare rows read across a grid boundary, not just two immediate repeats.
9
My 7+ years of #podcast charts and rankings from Apple and Spotify is finally migrated completely off MongoDB and onto ClickHouse and Postgres! I've cut the umbilical cord and I look forward to seeing how much lower my next @Hetzner_Online bill will be now that I'm not paying for 9 TB of volume storage! (I'll soon be able to shut down some extra servers, too.) This should save me about $700/month. And this also means I can finally implement a backup strategy because not only is it much easier to back up 400 GB than 4.5 TB, but ClickHouse and Postgres are also a lot smarter for backing up, supporting incremental backups! Now to move the rest of my apps off MongoDB and be done with it forever.
4
1
7
300
Replying to @RamaswmySridhar
I don't think we should fight. The two companies are complementary. Since you're not doing this AI stuff, I really think Snowflake should consider getting its AI tokens through Databricks. You can get both cheap OSS models as well as frontier (OAI/Ant/Gemini/Grok) models from our platform. It all goes through Unity Gateway which has Smart Routing, Budgets, and Access Control. You can even use Omnigent with any harness, including CoCo. Most of our customers used this to reduce token spend ~30% last few months while token count went up. Genie lets you then track, control, manage that spend, all your financials, marketing, etc. Quick POC?
37
1/4 normalizedQueryHashUnordered in ClickHouse 26.10 can group SELECT a, b and SELECT b, a together. It helps find query families when BI tools or ORMs shuffle the same SQL tokens.
1
1
2
142
3/4 SELECT a - b and SELECT b - a get the same unordered hash, as can SELECT 1 and invalid text such as 1 SELECT. This is deliberately lossy workload grouping.
1
18
4/4 Use it to group system.query_log and inspect the SQL inside expensive buckets. Matching hashes are not evidence that one query's cached result can substitute for another's.
8