Executable user-defined functions (UDFs) have moved from public beta to general availability on ClickHouse Cloud across AWS, GCP, and Azure. The GA release adds a Native runtime for precompiled statically linked binaries in Rust, Go, C++, and JavaScript, requiring both amd64 and arm64 architectures, alongside the existing Python support. UDFs now have network access to public endpoints, a per-process memory limit, a deterministic flag that enables query caching, and are not billed separately, running inside service pods. ClickHouse 26.6+ provides eight ProfileEvents counters and two asynchronous metrics for per-query UDF cost monitoring, and the Cloud API and Terraform provider support UDF management with per-service version pinning. The post demonstrates counting LLM tokens and grading completions using these UDFs, showing how to put tokenization libraries next to the data in ClickHouse.
Context
Executable UDFs were in public beta for four months; the GA release adds Native runtime, network access, Azure support, memory limits, deterministic flag, Cloud API and Terraform support, and observability metrics.
Approach / What changed
Added Native runtime for precompiled statically linked binaries in Rust, Go, C++, and JavaScript (compiled with Bun), network access to public endpoints, per-process memory limit, deterministic flag for query caching, Cloud API and Terraform provider support with per-service version pinning, and per-query UDF metrics in ClickHouse 26.6+.
Takeaways
1
Executable UDFs now support a Native runtime for precompiled statically linked binaries in Rust, Go, C++, and JavaScript (compiled with Bun), requiring both amd64 and arm64 architectures.
2
UDFs can make outbound calls to public endpoints, have a per-process memory limit, and a deterministic flag that enables query caching; they are not billed separately and run inside service pods.
3
ClickHouse 26.6+ provides eight ProfileEvents counters and two asynchronous metrics for per-query UDF cost monitoring, including wall time, pool wait, CPU, memory, and bytes over the pipe.
FAQ
What runtimes are supported for executable UDFs?
Executable UDFs support a Native runtime for precompiled statically linked binaries in Rust, Go, C++, and JavaScript (compiled with Bun). Python scripts are also supported via the existing runtime.
How are executable UDFs billed?
UDFs are not billed separately. They run inside your service's pods and consume the same CPU and memory as your queries.
What new observability is available for UDFs?
ClickHouse 26.6+ adds eight ProfileEvents counters and two asynchronous metrics, so per-query UDF cost (wall time, pool wait, CPU, memory, bytes over the pipe) appears in system.query_log.
Arabic is not a single target for a language model. This explainer maps its four parts — dialect surface, data pipeline, model, and evaluation — so you can tell where an Arabic feature really succeeds or fails.
Keep reading
Related reading
The Good Stuff
Paid picks we use ourselves. Links carry a referral code — a subscription through one earns us a commission at no extra cost to you.