Skip to content

Conversation

@heavycrystal
Copy link
Contributor

Summary

Checklist

@heavycrystal heavycrystal requested review from a team as code owners January 20, 2026 17:17
@vercel
Copy link

vercel bot commented Jan 20, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Review Updated (UTC)
clickhouse-docs Ready Ready Preview, Comment Jan 20, 2026 5:28pm
clickhouse-docs-jp Building Building Preview, Comment Jan 20, 2026 5:28pm
2 Skipped Deployments
Project Deployment Review Updated (UTC)
clickhouse-docs-ru Ignored Ignored Preview Jan 20, 2026 5:28pm
clickhouse-docs-zh Ignored Ignored Preview Jan 20, 2026 5:28pm

Request Review

1. **Drop the existing pipe**: This is necessary to apply new settings.
2. **Delete destination tables on ClickHouse**: Ensure that the tables created by the previous pipe are removed.
3. **Create a new pipe with optimized settings**: Typically, increase the snapshot number of rows per partition to between 1 million and 10 million, depending on your specific requirements and the load your Postgres instance can handle.
For Postgres versions 13 or lower, CTID range scans are very slow and therefore ClickPipes does not use them. Instead we read the entire table as a single partition, essentially making it single-threaded (therefore ignoring both number of rows per partition and parallel threads settings). It is critical to adjust these settings to instead move multiple tables in parallel for fast initial loads.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do we want to mention custom partitioning column for PG13?

3. **Create a new pipe with optimized settings**: Typically, increase the snapshot number of rows per partition to between 1 million and 10 million, depending on your specific requirements and the load your Postgres instance can handle.
For Postgres versions 13 or lower, CTID range scans are very slow and therefore ClickPipes does not use them. Instead we read the entire table as a single partition, essentially making it single-threaded (therefore ignoring both number of rows per partition and parallel threads settings). It is critical to adjust these settings to instead move multiple tables in parallel for fast initial loads.
These adjustments should significantly enhance the performance of the initial load, especially for older Postgres versions. If you are using Postgres 14 or later, these settings are less impactful due to improved support for CTID range scans.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This now refers to the deleted lines

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants