On-demand compute for copy jobs¶
Copy jobs can now run on on-demand compute instances. If a Copy Pipe hits memory limits on your main compute (either shared or dedicated), you can offload it to a dedicated instance with a single flag.
In the CLI (4.4.0+):
tb copy run my_copy_pipe --on-demand-compute
Or via the API by passing on_demand_compute=true to the copy job endpoint.
This is available on all paid plans, just like on-demand compute for populates. Previously gated behind a feature flag, on-demand compute for copies is now generally available.
CLI 4.4.0 is required. Update with tb update.
optimize_aggregation_in_order in API queries¶
You can now pass optimize_aggregation_in_order as a query setting in API requests. This ClickHouse® setting can speed up aggregation queries on tables where the Sorting Key matches the GROUP BY columns, by reading data in order and producing partial results without a full hash table.
Useful for time-series aggregations over large Data Sources with a matching Sorting Key.
TypeScript SDK updates¶
Several improvements landed in the TypeScript SDK (v0.0.62–0.0.64):
--last-partitionflag for branch creation. When creating a branch withtb buildortb dev, you can now pass--last-partitionto only copy the most recent partition into the branch, making branch creation faster for large Data Sources.ingestBatchmethod on Data Source accessors. Typed Data Source accessors now exposeingestBatchdirectly, so you don't need to call it through the client.- Better error messages. Build and dev failures now show the actual error instead of
undefined. - Multiline Connection parser fix. Connection files with multiline values (like
KAFKA_SSL_CA_PEMusing>continuation syntax) now parse correctly during migration. - Nullable + LowCardinality fix. Fixed a bug where nullable modifiers were incorrectly set when nullable was embedded inside a
LowCardinalitytype string.
Deployment validation improvements¶
Two new validations catch configuration errors before they reach ClickHouse®:
- Sorting Key column validation. Deployments now fail early if the Sorting Key references a column that doesn't exist in the Data Source schema.
- TTL validation with
fromUnixTimestamp64functions. TTL expressions usingfromUnixTimestamp64Milli,fromUnixTimestamp64Micro, orfromUnixTimestamp64Nanoare now validated correctly during deployment.
system.data_skipping_indices¶
You can now query system.data_skipping_indices System Table to inspect the data-skipping indices defined on your Data Sources.
UI improvements¶
- Organization domain warnings. When signing up or logging in via CLI, a warning now appears if your email domain matches an existing Organization, so you can join it instead of creating a duplicate.
- Playground navigation. The playground header no longer disappears when clicking between nodes, and the sidebar overflow button is properly sized.
- Job details panel. Fixed overflow in the job details split-screen panel.
- Organization banner. The Organization banner is now sticky at the bottom of the page.
Deprecation of BI and billing service Data Sources¶
Action required: The following service Data Sources will stop working on Wednesday, April 1, 2026.
The following service Data Sources are deprecated and will be removed:
organization.bi_stats_rtandtinybird.bi_stats_rtorganization.bi_statsandtinybird.bi_statsorganization.processed_data
Deadline: Wednesday, April 1, 2026. After this date, queries against these Data Sources will fail. You must migrate any dependencies before then.
Migration path¶
Use ClickHouse® system tables instead. All deprecated tables were built on views over system tables—query them directly:
system.query_log— query execution logs including API queries, BI connector queries, and internal queriessystem.query_views_log— materialized view execution logs
Always restrict system.query_log and system.query_views_log with a time filter on event_time—unbounded scans are slow and will time out.
Example replacements¶
To replace tinybird.bi_stats_rt and organization.bi_stats_rt¶
SELECT event_time_microseconds as start_datetime, current_database as database, query_id, query, normalizeQuery(query) as query_normalized, exception_code, exception, query_duration_ms as duration, read_bytes, read_rows, result_bytes, result_rows FROM system.query_log WHERE type > 1 AND event_time >= now() - INTERVAL 1 DAY AND http_user_agent = 'postgres'
Materialized View execution logs¶
SELECT event_time, view_name, view_target, view_duration_ms, read_rows, read_bytes, written_rows, written_bytes, peak_memory_usage, exception_code, exception FROM system.query_views_log WHERE event_time >= now() - INTERVAL 1 DAY AND view_type = 2 AND status > 1
API query usage¶
SELECT event_date as date, current_database as database, http_user_agent as user_agent, sum(read_bytes) as read_bytes, sum(written_bytes) as written_bytes FROM system.query_log WHERE type > 1 AND event_time >= now() - INTERVAL 1 DAY AND notEmpty(http_user_agent) GROUP BY database, user_agent, date
Materialized View usage¶
SELECT
event_date as date,
splitByChar('.', view_name)[1] as database,
sum(read_bytes) as read_bytes,
sum(written_bytes) as written_bytes
FROM system.query_views_log
WHERE
event_time >= now() - INTERVAL 1 DAY
AND view_type = 2
AND status > 1
AND splitByChar('.', view_name)[1] NOT IN ('default', 'system')
GROUP BY database, date
For column-level detail and querying patterns, see How to debug queries using system.query_log.
Bug fixes and improvements¶
- [Classic]: Google Cloud Scheduler connections are now hidden from the
/v0/connectorsAPI, consistent with Forward behavior.
From the blog¶
Smarter deployments: faster schema changes for the most common operations: Most schema changes don't need a full table rebuild. ALTER TABLE support in deployments means simple changes deploy in seconds, not minutes.
Maple: an open-source observability platform built with Tinybird's TypeScript SDK: David Granzin built Maple, an observability platform for metrics, logs, and traces, using Tinybird's TypeScript SDK. Zero infrastructure to manage, AI agents accelerating development.
Still on Tinybird Classic? Migrate to Forward.