+
+
+
+根据您数据当前所在的位置,有几种将数据迁移到 ClickHouse Cloud 的选项:
+
+- [自管理到云](/cloud/migration/clickhouse-to-cloud):使用 `remoteSecure` 函数传输数据
+- [其他 DBMS](/cloud/migration/clickhouse-local):使用 [clickhouse-local] ETL 工具和适合您当前 DBMS 的 ClickHouse 表函数
+- [任何地方!](/cloud/migration/etl-tool-to-clickhouse):使用与各种不同数据源连接的众多流行 ETL/ELT 工具之一
+- [对象存储](/integrations/migration/object-storage-to-clickhouse):轻松将数据从 S3 插入 ClickHouse
+
+在示例 [从 Redshift 迁移](/migrations/redshift/migration-guide) 中,我们展示了三种将数据迁移到 ClickHouse 的不同方法。
diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/cloud/onboard/02_migrate/01_migration_guides/01_overview.md.hash b/i18n/zh/docusaurus-plugin-content-docs/current/cloud/onboard/02_migrate/01_migration_guides/01_overview.md.hash
new file mode 100644
index 00000000000..4fa2f290455
--- /dev/null
+++ b/i18n/zh/docusaurus-plugin-content-docs/current/cloud/onboard/02_migrate/01_migration_guides/01_overview.md.hash
@@ -0,0 +1 @@
+3ad809f002420893
diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/cloud/onboard/02_migrate/01_migration_guides/02_postgres/01_overview.md b/i18n/zh/docusaurus-plugin-content-docs/current/cloud/onboard/02_migrate/01_migration_guides/02_postgres/01_overview.md
new file mode 100644
index 00000000000..74ceb0821c8
--- /dev/null
+++ b/i18n/zh/docusaurus-plugin-content-docs/current/cloud/onboard/02_migrate/01_migration_guides/02_postgres/01_overview.md
@@ -0,0 +1,53 @@
+---
+'slug': '/migrations/postgresql/overview'
+'title': '比较 PostgreSQL 和 ClickHouse'
+'description': '从 PostgreSQL 迁移到 ClickHouse 的指南'
+'keywords':
+- 'postgres'
+- 'postgresql'
+- 'migrate'
+- 'migration'
+'sidebar_label': '概述'
+'doc_type': 'guide'
+---
+
+
+# 比较 ClickHouse 和 PostgreSQL
+
+## 为什么使用 ClickHouse 而不是 Postgres? {#why-use-clickhouse-over-postgres}
+
+TLDR:因为 ClickHouse 是为快速分析而设计的,特别是 `GROUP BY` 查询,作为一个 OLAP 数据库,而 Postgres 是一个为事务工作负载设计的 OLTP 数据库。
+
+OLTP,或在线事务处理数据库,是为管理事务信息而设计的。这些数据库的主要目标,Postgres 是经典的例子,是确保工程师能够将一批更新提交到数据库,并能确保该批更新——整体上——要么成功,要么失败。这些类型的事务保证与 ACID 属性是 OLTP 数据库的主要焦点,也是 Postgres 的巨大优势。考虑到这些要求,OLTP 数据库在用于大数据集的分析查询时通常会遇到性能限制。
+
+OLAP,或在线分析处理数据库,旨在满足这些需求——管理分析工作负载。这些数据库的主要目标是确保工程师能够有效地查询和聚合庞大的数据集。像 ClickHouse 这样的实时 OLAP 系统允许在数据实时摄取时进行这种分析。
+
+有关 ClickHouse 和 PostgreSQL 更深入比较,请参见 [这里](/migrations/postgresql/appendix#postgres-vs-clickhouse-equivalent-and-different-concepts)。
+
+要查看 ClickHouse 和 Postgres 在分析查询上的潜在性能差异,请查看 [在 ClickHouse 中重写 PostgreSQL 查询](/migrations/postgresql/rewriting-queries)。
+
+## 迁移策略 {#migration-strategies}
+
+从 PostgreSQL 迁移到 ClickHouse 的正确策略取决于您的用例、基础架构和数据要求。一般而言,对于大多数现代用例,实时变更数据捕获 (CDC) 是最佳方法,而手动批量加载后跟定期更新适合于更简单的场景或一次性迁移。
+
+以下部分描述了两种主要的迁移策略:**实时 CDC** 和 **手动批量加载 + 定期更新**。
+
+### 实时复制 (CDC) {#real-time-replication-cdc}
+
+变更数据捕获 (CDC) 是保持两个数据库之间同步表的过程。它是从 PostgreSQL 迁移的最有效的方法,但由于它处理近乎实时的 PostgreSQL 到 ClickHouse 的插入、更新和删除,因此更复杂。它非常适合实时分析非常重要的用例。
+
+实时变更数据捕获 (CDC) 可以通过 [ClickPipes](/integrations/clickpipes/postgres/deduplication) 在 ClickHouse 中实现,如果您正在使用 ClickHouse Cloud,或者如果您运行的是本地 ClickHouse,可以使用 [PeerDB](https://github.com/PeerDB-io/peerdb)。这些解决方案处理实时数据同步的复杂性,包括初始加载,通过捕获来自 PostgreSQL 的插入、更新和删除并在 ClickHouse 中复制它们。这种方法确保 ClickHouse 中的数据始终是最新和准确的,而无需手动干预。
+
+### 手动批量加载 + 定期更新 {#manual-bulk-load-periodic-updates}
+
+在某些情况下,像手动批量加载后跟定期更新这样的更简单的方法可能就足够了。此策略非常适合一次性迁移或不要求实时复制的情况。它涉及通过直接 SQL `INSERT` 命令或导出和导入 CSV 文件将数据从 PostgreSQL 批量加载到 ClickHouse。初始迁移后,您可以通过定期同步来自 PostgreSQL 的更改周期性地更新 ClickHouse 中的数据。
+
+批量加载过程简单灵活,但缺乏实时更新的缺点。一旦初始数据在 ClickHouse 中,更新不会立即反映,因此您必须安排定期更新以同步来自 PostgreSQL 的更改。这种方法适用于对时间不太敏感的用例,但它引入了数据在 PostgreSQL 中更改和这些更改出现在 ClickHouse 中之间的延迟。
+
+### 选择哪个策略? {#which-strategy-to-choose}
+
+对于大多数需要在 ClickHouse 中保持最新数据的应用程序,建议采用通过 ClickPipes 实现的实时 CDC 方法。它提供了连续的数据同步,设置和维护最小。另一方面,手动批量加载加上定期更新,适合于更简单的一次性迁移或实时更新不太关键的工作负载。
+
+---
+
+**[在这里开始 PostgreSQL 迁移指南](/migrations/postgresql/dataset)。**
diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/cloud/onboard/02_migrate/01_migration_guides/02_postgres/01_overview.md.hash b/i18n/zh/docusaurus-plugin-content-docs/current/cloud/onboard/02_migrate/01_migration_guides/02_postgres/01_overview.md.hash
new file mode 100644
index 00000000000..26c7709144f
--- /dev/null
+++ b/i18n/zh/docusaurus-plugin-content-docs/current/cloud/onboard/02_migrate/01_migration_guides/02_postgres/01_overview.md.hash
@@ -0,0 +1 @@
+17ba928115dd3651
diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/cloud/onboard/02_migrate/01_migration_guides/02_postgres/appendix.md b/i18n/zh/docusaurus-plugin-content-docs/current/cloud/onboard/02_migrate/01_migration_guides/02_postgres/appendix.md
new file mode 100644
index 00000000000..08029ce3ba0
--- /dev/null
+++ b/i18n/zh/docusaurus-plugin-content-docs/current/cloud/onboard/02_migrate/01_migration_guides/02_postgres/appendix.md
@@ -0,0 +1,193 @@
+---
+'slug': '/migrations/postgresql/appendix'
+'title': '附录'
+'keywords':
+- 'postgres'
+- 'postgresql'
+- 'data types'
+- 'types'
+'description': '与从 PostgreSQL 迁移相关的附加信息'
+'doc_type': 'reference'
+---
+
+import postgresReplicas from '@site/static/images/integrations/data-ingestion/dbms/postgres-replicas.png';
+import Image from '@theme/IdealImage';
+
+## Postgres 与 ClickHouse:等价与不同概念 {#postgres-vs-clickhouse-equivalent-and-different-concepts}
+
+来自 OLTP 系统的用户,如果习惯于 ACID 事务,则应注意 ClickHouse 刻意妥协,以在提供性能的同时不完全实现这些功能。如果理解得当,ClickHouse 语义可以提供较高的耐久性保证和高写入吞吐量。我们在下面突出了一些关键概念,用户在从 Postgres 转向 ClickHouse 之前应熟悉。
+
+### 分片与副本 {#shards-vs-replicas}
+
+分片和复制是用于在存储和/或计算成为性能瓶颈时,通过多个 Postgres 实例进行扩展的两种策略。在 Postgres 中,分片涉及将一个大型数据库拆分为更小的可管理部分,分布在多个节点上。然而,Postgres 本身不支持分片。相反,分片可以通过如 [Citus](https://www.citusdata.com/) 的扩展来实现,其中 Postgres 成为一种能够水平扩展的分布式数据库。这种方法使 Postgres 能够通过将负载分配到几台机器上来处理更高的事务率和更大的数据集。分片可以基于行或模式,以提供灵活性,支持诸如事务或分析等工作负载类型。分片在数据管理和查询执行方面可能会引入显著复杂性,因为它需要在多个机器之间进行协调和一致性保证。
+
+与分片不同,副本是额外的 Postgres 实例,包含来自主节点的所有或部分数据。副本用于各种原因,包括增强读取性能和高可用性(HA)场景。物理复制是 Postgres 的一项原生特性,涉及将整个数据库或显著部分复制到另一服务器,包括所有数据库、表和索引。这涉及通过 TCP/IP 从主节点流式传输 WAL 段。相比之下,逻辑复制是一种更高层次的抽象,它基于 `INSERT`、`UPDATE` 和 `DELETE` 操作流式传递更改。尽管物理复制可能产生相同的结果,但它为特定表和操作的目标以及数据转换和支持不同版本的 Postgres 等提供了更大的灵活性。
+
+**相对而言,ClickHouse 的分片和副本是与数据分布和冗余相关的两个关键概念**。ClickHouse 的副本可以被视为类似于 Postgres 的副本,尽管复制是最终一致的,而没有主节点的概念。与 Postgres 不同,分片在 ClickHouse 中是本地支持的。
+
+分片是表数据的一部分。您始终至少拥有一个分片。将数据分片到多个服务器可以在您超出单个服务器的容量时分担负载,所有分片均用于并行运行查询。用户可以手动在不同服务器上为表创建分片,并直接向它们插入数据。或者,可以使用分布式表,并通过分片键定义数据的路由到哪个分片。分片键可以是随机的,也可以是哈希函数的输出。重要的是,一个分片可以由多个副本组成。
+
+副本是数据的副本。ClickHouse 总是至少具有一份数据的副本,因此副本的最小数量为一个。添加数据的第二个副本可提供容错能力,并可能为处理更多查询提供额外的计算([并行副本](https://clickhouse.com/blog/clickhouse-release-23-03#parallel-replicas-for-utilizing-the-full-power-of-your-replicas-nikita-mikhailov) 还可以用于为单个查询分配计算,从而降低延迟)。副本是通过 [ReplicatedMergeTree 表引擎](/engines/table-engines/mergetree-family/replication) 实现的,该引擎使 ClickHouse 能够在不同服务器之间保持数据的多个副本同步。复制是物理的:只有压缩的部分在节点之间传输,而不是查询。
+
+总之,副本是提供冗余和可靠性(以及潜在的分布式处理)的数据副本,而分片是允许分布式处理和负载均衡的数据子集。
+
+> ClickHouse Cloud 使用 S3 后备的单一数据副本,并具有多个计算副本。每个副本节点都可以访问数据,并具有本地 SSD 缓存。这仅依赖于通过 ClickHouse Keeper 进行元数据复制。
+
+## 最终一致性 {#eventual-consistency}
+
+ClickHouse 使用 ClickHouse Keeper(C++ ZooKeeper 实现,ZooKeeper 也可以使用)来管理其内部复制机制,主要关注元数据存储和确保最终一致性。Keeper 用于为分布式环境中的每次插入分配唯一的顺序编号。这对维护操作之间的顺序和一致性至关重要。该框架还处理后续操作,如合并和变更,确保这些操作的工作在保证它们在所有副本中执行的相同顺序的同时进行分配。除了元数据之外,Keeper 作为复制的综合控制中心,跟踪存储数据部分的校验和,并充当副本之间的分布式通知系统。
+
+ClickHouse 中的复制过程 (1) 当数据插入到任何副本时开始。此数据以原始插入的形式 (2) 与其校验和一起写入磁盘。一旦写入,副本 (3) 尝试通过分配唯一的块编号并记录新部分的细节,在 Keeper 中注册此新数据部分。其他副本在 (4) 检测到复制日志中的新条目时,将 (5) 通过内部 HTTP 协议下载相应的数据部分,并根据 ZooKeeper 中列出的校验和进行验证。该方法确保所有副本最终持有一致且最新的数据,尽管处理速度不同或可能存在延迟。此外,系统能够并发处理多个操作,从而优化数据管理流程,并允许系统扩展和对硬件差异保持稳健性。
+
+
+
+请注意,ClickHouse Cloud 使用 [针对云优化的复制机制](https://clickhouse.com/blog/clickhouse-cloud-boosts-performance-with-sharedmergetree-and-lightweight-updates),以适应其存储和计算架构的分离。通过将数据存储在共享对象存储中,数据会自动对所有计算节点可用,而无需在节点之间物理复制数据。相反,Keeper 仅用于在计算节点之间共享元数据(数据在对象存储中的位置)。
+
+PostgreSQL 采用了一种与 ClickHouse 不同的复制策略,主要使用流式复制,这涉及到一个主副本模型,其中数据不断从主节点流式传输到一个或多个副本节点。这种类型的复制确保了近乎实时的一致性,并且是同步或异步的,允许管理员控制可用性和一致性之间的平衡。与 ClickHouse 不同,PostgreSQL 依赖于 WAL(Write-Ahead Logging)与逻辑复制和解码,以在节点之间流式传递数据对象和更改。这种 PostgreSQL 方法更为直接,但在高度分布的环境中,可能无法提供与 ClickHouse 通过其复杂的 Keeper 用于分布式操作协调和最终一致性所实现的相同级别的扩展性和容错性。
+
+## 用户影响 {#user-implications}
+
+在 ClickHouse 中,存在“脏读”的可能性——用户可以向一个副本写入数据,然后从另一个副本读取可能未复制的数据,这源于其通过 Keeper 管理的最终一致性复制模型。该模型强调在分布式系统中的性能和可扩展性,允许副本独立操作并异步同步。因此,新的插入数据可能不会立即在所有副本中可见,这取决于复制延迟以及更改在系统中传播所需的时间。
+
+相反,PostgreSQL 的流式复制模型通常可以通过采用同步复制选项来防止脏读,在这种情况下,主节点等待至少一个副本确认收到数据后再提交事务。这确保一旦事务被提交,就有保证数据在另一个副本中可用。在主节点故障的情况下,副本将确保查询看到已提交的数据,从而维持更严格的一致性级别。
+
+## 建议 {#recommendations}
+
+新用户在使用 ClickHouse 时应意识到这些差异,这些差异会在复制环境中表现出来。通常,在分析数十亿甚至数万亿个数据点时,最终一致性是足够的——在这种情况下,指标通常更稳定,或者由于新数据以高速度持续插入,估算足够。
+
+如果需要,可以通过多种选项增加读取的一致性。两个示例都需要增加复杂性或开销——从而降低查询性能,并使 ClickHouse 扩展变得更加困难。 **我们建议这些方法仅在绝对必要时使用。**
+
+## 一致路由 {#consistent-routing}
+
+为克服最终一致性的某些限制,用户可以确保客户端路由到相同的副本。这在多个用户查询 ClickHouse 时特别有用,并且结果应该在请求之间是确定性的。在结果可能有所不同的情况下,确保查询相同的副本可以确保视图的一致性。
+
+这可以通过几种方法实现,具体取决于您的架构以及是否使用 ClickHouse OSS 或 ClickHouse Cloud。
+
+## ClickHouse Cloud {#clickhouse-cloud}
+
+ClickHouse Cloud 使用 S3 后备的单一数据副本,并具有多个计算副本。数据对每个副本节点可用,且每个副本都有本地 SSD 缓存。为了确保一致的结果,用户只需确保一致路由到相同的节点。
+
+ClickHouse Cloud 服务的节点通信通过代理进行。HTTP 和原生协议连接将在保持打开的期间内路由到同一节点。在大多数客户端的 HTTP 1.1 连接中,这取决于 Keep-Alive 窗口。大多数客户端(例如 Node Js)可以对此进行配置。这还要求在服务器端进行配置,该配置通常高于客户端,并在 ClickHouse Cloud 中设置为 10 秒。
+
+为了确保在连接之间的一致路由,例如,如果使用连接池或连接过期,用户可以确保使用相同的连接(原生更容易)或请求暴露粘性端点。这为集群中的每个节点提供了一组端点,从而允许客户端确保查询的确定性路由。
+
+> 联系支持以访问粘性端点。
+
+## ClickHouse OSS {#clickhouse-oss}
+
+在 OSS 中实现这一行为取决于您的分片和副本拓扑,以及您是否使用 [分布式表](/engines/table-engines/special/distributed) 进行查询。
+
+当只有一个分片和副本(当 ClickHouse 垂直扩展时常见)时,用户在客户端层选择节点并直接查询副本,确保这是被确定性选择的。
+
+虽然没有分布式表的多分片和副本拓扑是可能的,但这种高级部署通常具有自己的路由基础设施。因此,我们假设具有多个分片的部署使用了分布式表(分布式表可以与单分片部署一起使用,但通常没有必要)。
+
+在这种情况下,用户应该根据属性(例如 `session_id` 或 `user_id`)确保一致节点路由。设置 [`prefer_localhost_replica=0`](/operations/settings/settings#prefer_localhost_replica),[`load_balancing=in_order`](/operations/settings/settings#load_balancing) 应 [在查询中设置](/operations/settings/query-level)。这将确保优先选择任何分片的本地副本,否则优先选择配置中列出的副本——前提是它们的错误数量相同——如果错误更多,则将随机选择以进行故障转移。[`load_balancing=nearest_hostname`](/operations/settings/settings#load_balancing) 也可以作为这种确定性分片选择的替代方案。
+
+> 创建分布式表时,用户将指定一个集群。此集群定义在 config.xml 中指定,将列出分片(及其副本)- 从而允许用户控制它们从每个节点使用的顺序。通过使用这一点,用户可以确保选择是确定性的。
+
+## 顺序一致性 {#sequential-consistency}
+
+在某些特殊情况下,用户可能需要顺序一致性。
+
+数据库中的顺序一致性是指对数据库的操作似乎以某种顺序执行,并且这一顺序在与数据库交互的所有程序中保持一致。这意味着每个操作在被调用和完成之间似乎都能瞬间生效,并且所有操作都有一个共同商定的顺序。
+
+从用户的角度来看,这通常表现为在 ClickHouse 中写入数据时,并在读取数据时,保证返回最新插入的行。
+这可以通过几种方式实现(按优先顺序):
+
+1. **读/写同一节点** - 如果您使用原生协议,或通过 HTTP 进行写入/读取的 [会话](/interfaces/http#default-database),则应连接到同一副本:在这种情况下,您直接从写入的节点读取,则您的读取将始终是一致的。
+2. **手动同步副本** - 如果您向一个副本写入并从另一个副本读取,则可以在读取之前使用命令 `SYSTEM SYNC REPLICA LIGHTWEIGHT`。
+3. **启用顺序一致性** - 通过查询设置 [`select_sequential_consistency = 1`](/operations/settings/settings#select_sequential_consistency)。在 OSS 中,还必须指定设置 `insert_quorum = 'auto'`。
+
+
+
+有关启用这些设置的进一步细节,请参见 [此处](/cloud/reference/shared-merge-tree#consistency)。
+
+> 使用顺序一致性将对 ClickHouse Keeper 施加更多负载。结果可能意味着插入和读取变得更慢。ClickHouse Cloud 中作为主要表引擎使用的 SharedMergeTree,其顺序一致性 [开销更小且更具可扩展性](/cloud/reference/shared-merge-tree#consistency)。OSS 用户在使用此方法时应谨慎,并测量 Keeper 的负载。
+
+## 事务 (ACID) 支持 {#transactional-acid-support}
+
+迁移自 PostgreSQL 的用户可能习惯于其对 ACID(原子性、一致性、隔离性、持久性)属性的强大支持,使其成为事务数据库的可靠选择。PostgreSQL 中的原子性确保每个事务被视为一个单一单元,完全成功或完全回滚,从而防止部分更新。通过强制执行约束、触发器和规则来维护一致性,确保所有数据库事务导致有效状态。PostgreSQL 支持从已提交读到可序列化的隔离级别,允许对并发事务所做更改的可见性进行精细控制。最后,通过预写日志(WAL)实现持久性,确保一旦事务被提交,即使在系统故障的情况下也保持不变。
+
+这些属性是充当真实来源的 OLTP 数据库的共同特征。
+
+虽然强大,但这具有固有的限制,并使 PB 规模变得具有挑战性。ClickHouse 在这些属性上进行了妥协,以提供快速的分析查询,同时保持高写入吞吐量。
+
+ClickHouse 在 [有限配置下提供 ACID 属性](/guides/developer/transactional) - 最简单的情况是使用一个分区的非复制的 MergeTree 表引擎。用户不应期望在这些情况之外具备这些属性,并确保这些不是需求。
+
+## 压缩 {#compression}
+
+ClickHouse 的列式存储意味着与 Postgres 相比,压缩通常会显著更好。以下是在比较两个数据库中所有 Stack Overflow 表的存储需求时的示例:
+
+```sql title="Query (Postgres)"
+SELECT
+ schemaname,
+ tablename,
+ pg_total_relation_size(schemaname || '.' || tablename) AS total_size_bytes,
+ pg_total_relation_size(schemaname || '.' || tablename) / (1024 * 1024 * 1024) AS total_size_gb
+FROM
+ pg_tables s
+WHERE
+ schemaname = 'public';
+```
+
+```sql title="Query (ClickHouse)"
+SELECT
+ `table`,
+ formatReadableSize(sum(data_compressed_bytes)) AS compressed_size
+FROM system.parts
+WHERE (database = 'stackoverflow') AND active
+GROUP BY `table`
+```
+
+```response title="Response"
+┌─table───────┬─compressed_size─┐
+│ posts │ 25.17 GiB │
+│ users │ 846.57 MiB │
+│ badges │ 513.13 MiB │
+│ comments │ 7.11 GiB │
+│ votes │ 1.28 GiB │
+│ posthistory │ 40.44 GiB │
+│ postlinks │ 79.22 MiB │
+└─────────────┴─────────────────┘
+```
+
+有关优化和测量压缩的更多详细信息可以在 [此处](/data-compression/compression-in-clickhouse) 找到。
+
+## 数据类型映射 {#data-type-mappings}
+
+以下表显示了 Postgres 的等效 ClickHouse 数据类型。
+
+| Postgres 数据类型 | ClickHouse 类型 |
+| --- | --- |
+| `DATE` | [Date](/sql-reference/data-types/date) |
+| `TIMESTAMP` | [DateTime](/sql-reference/data-types/datetime) |
+| `REAL` | [Float32](/sql-reference/data-types/float) |
+| `DOUBLE` | [Float64](/sql-reference/data-types/float) |
+| `DECIMAL, NUMERIC` | [Decimal](/sql-reference/data-types/decimal) |
+| `SMALLINT` | [Int16](/sql-reference/data-types/int-uint) |
+| `INTEGER` | [Int32](/sql-reference/data-types/int-uint) |
+| `BIGINT` | [Int64](/sql-reference/data-types/int-uint) |
+| `SERIAL` | [UInt32](/sql-reference/data-types/int-uint) |
+| `BIGSERIAL` | [UInt64](/sql-reference/data-types/int-uint) |
+| `TEXT, CHAR, BPCHAR` | [String](/sql-reference/data-types/string) |
+| `INTEGER` | Nullable([Int32](/sql-reference/data-types/int-uint)) |
+| `ARRAY` | [Array](/sql-reference/data-types/array) |
+| `FLOAT4` | [Float32](/sql-reference/data-types/float) |
+| `BOOLEAN` | [Bool](/sql-reference/data-types/boolean) |
+| `VARCHAR` | [String](/sql-reference/data-types/string) |
+| `BIT` | [String](/sql-reference/data-types/string) |
+| `BIT VARYING` | [String](/sql-reference/data-types/string) |
+| `BYTEA` | [String](/sql-reference/data-types/string) |
+| `NUMERIC` | [Decimal](/sql-reference/data-types/decimal) |
+| `GEOGRAPHY` | [Point](/sql-reference/data-types/geo#point), [Ring](/sql-reference/data-types/geo#ring), [Polygon](/sql-reference/data-types/geo#polygon), [MultiPolygon](/sql-reference/data-types/geo#multipolygon) |
+| `GEOMETRY` | [Point](/sql-reference/data-types/geo#point), [Ring](/sql-reference/data-types/geo#ring), [Polygon](/sql-reference/data-types/geo#polygon), [MultiPolygon](/sql-reference/data-types/geo#multipolygon) |
+| `INET` | [IPv4](/sql-reference/data-types/ipv4), [IPv6](/sql-reference/data-types/ipv6) |
+| `MACADDR` | [String](/sql-reference/data-types/string) |
+| `CIDR` | [String](/sql-reference/data-types/string) |
+| `HSTORE` | [Map(K, V)](/sql-reference/data-types/map), [Map](/sql-reference/data-types/map)(K,[Variant](/sql-reference/data-types/variant)) |
+| `UUID` | [UUID](/sql-reference/data-types/uuid) |
+| `ARRAY` | [ARRAY(T)](/sql-reference/data-types/array) |
+| `JSON*` | [String](/sql-reference/data-types/string), [Variant](/sql-reference/data-types/variant), [Nested](/sql-reference/data-types/nested-data-structures/nested#nestedname1-type1-name2-type2-), [Tuple](/sql-reference/data-types/tuple) |
+| `JSONB` | [String](/sql-reference/data-types/string) |
+
+*\* ClickHouse 对 JSON 的生产支持正在开发中。目前用户可以将 JSON 映射为 String,并使用 [JSON 函数](/sql-reference/functions/json-functions),或直接将 JSON 映射为 [元组](/sql-reference/data-types/tuple)和 [嵌套](/sql-reference/data-types/nested-data-structures/nested),如果结构是可预测的。有关 JSON 的更多信息,请参见 [此处](/integrations/data-formats/json/overview).*
diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/cloud/onboard/02_migrate/01_migration_guides/02_postgres/appendix.md.hash b/i18n/zh/docusaurus-plugin-content-docs/current/cloud/onboard/02_migrate/01_migration_guides/02_postgres/appendix.md.hash
new file mode 100644
index 00000000000..c0af48a01e8
--- /dev/null
+++ b/i18n/zh/docusaurus-plugin-content-docs/current/cloud/onboard/02_migrate/01_migration_guides/02_postgres/appendix.md.hash
@@ -0,0 +1 @@
+ee779bba05f7a33a
diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/migrations/postgres/index.md b/i18n/zh/docusaurus-plugin-content-docs/current/cloud/onboard/02_migrate/01_migration_guides/02_postgres/index.md
similarity index 67%
rename from i18n/zh/docusaurus-plugin-content-docs/current/migrations/postgres/index.md
rename to i18n/zh/docusaurus-plugin-content-docs/current/cloud/onboard/02_migrate/01_migration_guides/02_postgres/index.md
index 72974c2dd01..3e2e9fa34f3 100644
--- a/i18n/zh/docusaurus-plugin-content-docs/current/migrations/postgres/index.md
+++ b/i18n/zh/docusaurus-plugin-content-docs/current/cloud/onboard/02_migrate/01_migration_guides/02_postgres/index.md
@@ -3,14 +3,15 @@
'pagination_prev': null
'pagination_next': null
'title': 'PostgreSQL'
-'description': 'PostgreSQL 迁移部分的首页'
+'description': 'PostgreSQL 迁移部分的登录页面'
+'doc_type': 'landing-page'
---
| 页面 | 描述 |
|----------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
-| [概述](./overview.md) | 本节的介绍页面 |
-| [连接到 PostgreSQL](/integrations/postgresql/connecting-to-postgresql) | 本页涵盖将 PostgreSQL 与 ClickHouse 集成的以下选项:ClickPipes、PeerDB、PostgreSQL 表引擎、MaterializedPostgreSQL 数据库引擎。 |
-| [迁移数据](/migrations/postgresql/dataset) | 从 PostgreSQL 迁移到 ClickHouse 的指南第一部分。通过实际示例,演示如何使用实时复制 (CDC) 方法高效地执行迁移。所涵盖的许多概念同样适用于从 PostgreSQL 到 ClickHouse 的手动批量数据传输。 |
-| [重写 PostgreSQL 查询](/migrations/postgresql/rewriting-queries)| 从 PostgreSQL 迁移到 ClickHouse 的指南第二部分。通过实际示例,演示如何使用实时复制 (CDC) 方法高效地执行迁移。所涵盖的许多概念同样适用于从 PostgreSQL 到 ClickHouse 的手动批量数据传输。|
+| [概述](/migrations/postgresql/overview) | 本节的介绍页面 |
+| [连接 PostgreSQL](/integrations/postgresql/connecting-to-postgresql) | 本页面涵盖将 PostgreSQL 与 ClickHouse 集成的以下选项:ClickPipes、PeerDB、PostgreSQL 表引擎、MaterializedPostgreSQL 数据库引擎。 |
+| [迁移数据](/migrations/postgresql/dataset) | 从 PostgreSQL 迁移到 ClickHouse 的指南第一部分。通过实际示例,演示如何使用实时复制 (CDC) 方法有效执行迁移。所涵盖的许多概念也适用于从 PostgreSQL 到 ClickHouse 的手动批量数据传输。 |
+| [重写 PostgreSQL 查询](/migrations/postgresql/rewriting-queries)| 从 PostgreSQL 迁移到 ClickHouse 的指南第二部分。通过实际示例,演示如何使用实时复制 (CDC) 方法有效执行迁移。所涵盖的许多概念也适用于从 PostgreSQL 到 ClickHouse 的手动批量数据传输。|
| [数据建模技术](/migrations/postgresql/data-modeling-techniques)| 从 PostgreSQL 迁移到 ClickHouse 的指南第三部分。通过实际示例,演示在从 PostgreSQL 迁移时如何在 ClickHouse 中建模数据。|
| [附录](/migrations/postgresql/appendix)| 迁移 PostgreSQL 相关的附加信息|
diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/cloud/onboard/02_migrate/01_migration_guides/02_postgres/index.md.hash b/i18n/zh/docusaurus-plugin-content-docs/current/cloud/onboard/02_migrate/01_migration_guides/02_postgres/index.md.hash
new file mode 100644
index 00000000000..cbdffb563ed
--- /dev/null
+++ b/i18n/zh/docusaurus-plugin-content-docs/current/cloud/onboard/02_migrate/01_migration_guides/02_postgres/index.md.hash
@@ -0,0 +1 @@
+b76005a88913c21b
diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/cloud/onboard/02_migrate/01_migration_guides/02_postgres/migration_guide/01_migration_guide_part1.md b/i18n/zh/docusaurus-plugin-content-docs/current/cloud/onboard/02_migrate/01_migration_guides/02_postgres/migration_guide/01_migration_guide_part1.md
new file mode 100644
index 00000000000..ba6e0b81772
--- /dev/null
+++ b/i18n/zh/docusaurus-plugin-content-docs/current/cloud/onboard/02_migrate/01_migration_guides/02_postgres/migration_guide/01_migration_guide_part1.md
@@ -0,0 +1,190 @@
+---
+'slug': '/migrations/postgresql/dataset'
+'title': '迁移数据'
+'description': '示例数据集从 PostgreSQL 迁移至 ClickHouse'
+'keywords':
+- 'Postgres'
+'show_related_blogs': true
+'sidebar_label': '第 1 部分'
+'doc_type': 'guide'
+---
+
+import postgres_stackoverflow_schema from '@site/static/images/migrations/postgres-stackoverflow-schema.png';
+import Image from '@theme/IdealImage';
+
+> 这是关于从 PostgreSQL 迁移到 ClickHouse 的指南的 **第一部分**。通过一个实际示例,它演示了如何高效地使用实时复制 (CDC) 方法进行迁移。所涵盖的许多概念同样适用于从 PostgreSQL 到 ClickHouse 的手动批量数据传输。
+
+## 数据集 {#dataset}
+
+作为展示从 Postgres 到 ClickHouse 典型迁移的示例数据集,我们使用 Stack Overflow 数据集,该数据集的详细信息记录在 [这里](/getting-started/example-datasets/stackoverflow)。它包含了从 2008 年到 2024 年 4 月在 Stack Overflow 上发生的每个 `post`、`vote`、`user`、`comment` 和 `badge`。 PostgreSQL 的此数据的模式如下所示:
+
+
+
+*在 PostgreSQL 中创建表的 DDL 命令可在 [这里](https://pastila.nl/?001c0102/eef2d1e4c82aab78c4670346acb74d83#TeGvJWX9WTA1V/5dVVZQjg==) 获取。*
+
+这个模式虽然不一定是最优的,但利用了一些流行的 PostgreSQL 特性,包括主键、外键、分区和索引。
+
+我们将把这些概念迁移到它们在 ClickHouse 中的等效项。
+
+对于那些希望将此数据集填充到 PostgreSQL 实例中以测试迁移步骤的用户,我们提供了以 `pg_dump` 格式下载的数据以及 DDL,而后续数据加载命令如下所示:
+
+```bash
+
+# users
+wget https://datasets-documentation.s3.eu-west-3.amazonaws.com/stackoverflow/pdump/2024/users.sql.gz
+gzip -d users.sql.gz
+psql < users.sql
+
+
+# posts
+wget https://datasets-documentation.s3.eu-west-3.amazonaws.com/stackoverflow/pdump/2024/posts.sql.gz
+gzip -d posts.sql.gz
+psql < posts.sql
+
+
+# posthistory
+wget https://datasets-documentation.s3.eu-west-3.amazonaws.com/stackoverflow/pdump/2024/posthistory.sql.gz
+gzip -d posthistory.sql.gz
+psql < posthistory.sql
+
+
+# comments
+wget https://datasets-documentation.s3.eu-west-3.amazonaws.com/stackoverflow/pdump/2024/comments.sql.gz
+gzip -d comments.sql.gz
+psql < comments.sql
+
+
+# votes
+wget https://datasets-documentation.s3.eu-west-3.amazonaws.com/stackoverflow/pdump/2024/votes.sql.gz
+gzip -d votes.sql.gz
+psql < votes.sql
+
+
+# badges
+wget https://datasets-documentation.s3.eu-west-3.amazonaws.com/stackoverflow/pdump/2024/badges.sql.gz
+gzip -d badges.sql.gz
+psql < badges.sql
+
+
+# postlinks
+wget https://datasets-documentation.s3.eu-west-3.amazonaws.com/stackoverflow/pdump/2024/postlinks.sql.gz
+gzip -d postlinks.sql.gz
+psql < postlinks.sql
+```
+
+对于 ClickHouse 来说,这个数据集虽然较小,但对于 Postgres 来说却相当庞大。上述内容代表了覆盖 2024 年前三个月的一个子集。
+
+> 虽然我们的示例结果使用完整数据集来显示 Postgres 和 ClickHouse 之间的性能差异,但下面记录的所有步骤在功能上与较小的子集是相同的。希望将完整数据集加载到 Postgres 中的用户可见 [这里](https://pastila.nl/?00d47a08/1c5224c0b61beb480539f15ac375619d#XNj5vX3a7ZjkdiX7In8wqA==)。由于上述模式施加的外键约束,PostgreSQL 的完整数据集仅包含满足引用完整性的行。如果需要,可以直接将没有这种约束的 [Parquet 版本](/getting-started/example-datasets/stackoverflow) 轻松加载到 ClickHouse 中。
+
+## 迁移数据 {#migrating-data}
+
+### 实时复制 (CDC) {#real-time-replication-or-cdc}
+
+请参见此 [指南](/integrations/clickpipes/postgres) 以设置 PostgreSQL 的 ClickPipes。该指南涵盖许多不同类型的源 Postgres 实例。
+
+使用 ClickPipes 或 PeerDB 的 CDC 方法,PostgreSQL 数据库中的每个表都将自动复制到 ClickHouse。
+
+为了在近实时中处理更新和删除,ClickPipes 将 Postgres 表映射到 ClickHouse,使用专门设计用于处理 ClickHouse 中的更新和删除的 [ReplacingMergeTree](/engines/table-engines/mergetree-family/replacingmergetree) 引擎。有关数据如何通过 ClickPipes 复制到 ClickHouse 的更多信息,请查看 [这里](/integrations/clickpipes/postgres/deduplication#how-does-data-get-replicated)。重要的是要注意,使用 CDC 进行复制时,在复制更新或删除操作时,ClickHouse 会创建重复的行。请查看 [使用 FINAL](https://clickhouse.com/docs/sql-reference/statements/select/from#final-modifier) 修饰符处理这些内容的 [技术](/integrations/clickpipes/postgres/deduplication#deduplicate-using-final-keyword) 。
+
+让我们看看如何使用 ClickPipes 在 ClickHouse 中创建表 `users`。
+
+```sql
+CREATE TABLE users
+(
+ `id` Int32,
+ `reputation` String,
+ `creationdate` DateTime64(6),
+ `displayname` String,
+ `lastaccessdate` DateTime64(6),
+ `aboutme` String,
+ `views` Int32,
+ `upvotes` Int32,
+ `downvotes` Int32,
+ `websiteurl` String,
+ `location` String,
+ `accountid` Int32,
+ `_peerdb_synced_at` DateTime64(9) DEFAULT now64(),
+ `_peerdb_is_deleted` Int8,
+ `_peerdb_version` Int64
+)
+ENGINE = ReplacingMergeTree(_peerdb_version)
+PRIMARY KEY id
+ORDER BY id;
+```
+
+一旦设置完成,ClickPipes 将开始将所有数据从 PostgreSQL 迁移到 ClickHouse。根据网络和部署的大小,这对于 Stack Overflow 数据集只需几分钟的时间。
+
+### 手动批量加载与定期更新 {#initial-bulk-load-with-periodic-updates}
+
+使用手动方法,可以通过以下方式实现数据集的初始批量加载:
+
+- **表函数** - 使用 ClickHouse 中的 [Postgres 表函数](/sql-reference/table-functions/postgresql) 从 Postgres `SELECT` 数据并 `INSERT` 到 ClickHouse 表中。适用于导入几百 GB 的数据集的批量加载。
+- **导出** - 导出到中间格式,如 CSV 或 SQL 脚本文件。这些文件可以从客户端通过 `INSERT FROM INFILE` 子句加载到 ClickHouse 中,或者使用对象存储及其相关函数,如 s3、gcs。
+
+在从 PostgreSQL 手动加载数据时,您需要先在 ClickHouse 中创建表。请参阅此 [数据建模文档](/data-modeling/schema-design#establish-initial-schema),它使用 Stack Overflow 数据集来优化 ClickHouse 中的表模式。
+
+PostgreSQL 与 ClickHouse 之间的数据类型可能不同。为了确定每个表列的等效类型,我们可以使用 `DESCRIBE` 命令和 [Postgres 表函数](/sql-reference/table-functions/postgresql)。以下命令描述 PostgreSQL 中的 `posts` 表,请根据您的环境进行修改:
+
+```sql title="Query"
+DESCRIBE TABLE postgresql(':', 'postgres', 'posts', '', '')
+SETTINGS describe_compact_output = 1
+```
+
+有关 PostgreSQL 和 ClickHouse 之间数据类型映射的概述,请参阅 [附录文档](/migrations/postgresql/appendix#data-type-mappings)。
+
+优化此模式的数据类型的步骤与从其他来源(例如 S3 上的 Parquet)加载数据时的步骤相同。在此 [使用 Parquet 的备用指南](/data-modeling/schema-design) 中描述的过程,将产生以下模式:
+
+```sql title="Query"
+CREATE TABLE stackoverflow.posts
+(
+ `Id` Int32,
+ `PostTypeId` Enum('Question' = 1, 'Answer' = 2, 'Wiki' = 3, 'TagWikiExcerpt' = 4, 'TagWiki' = 5, 'ModeratorNomination' = 6, 'WikiPlaceholder' = 7, 'PrivilegeWiki' = 8),
+ `AcceptedAnswerId` UInt32,
+ `CreationDate` DateTime,
+ `Score` Int32,
+ `ViewCount` UInt32,
+ `Body` String,
+ `OwnerUserId` Int32,
+ `OwnerDisplayName` String,
+ `LastEditorUserId` Int32,
+ `LastEditorDisplayName` String,
+ `LastEditDate` DateTime,
+ `LastActivityDate` DateTime,
+ `Title` String,
+ `Tags` String,
+ `AnswerCount` UInt16,
+ `CommentCount` UInt8,
+ `FavoriteCount` UInt8,
+ `ContentLicense`LowCardinality(String),
+ `ParentId` String,
+ `CommunityOwnedDate` DateTime,
+ `ClosedDate` DateTime
+)
+ENGINE = MergeTree
+ORDER BY tuple()
+COMMENT 'Optimized types'
+```
+
+我们可以用简单的 `INSERT INTO SELECT` 填充它,从 PostgreSQL 读取数据并插入到 ClickHouse:
+
+```sql title="Query"
+INSERT INTO stackoverflow.posts SELECT * FROM postgresql(':', 'postgres', 'posts', '', '')
+0 rows in set. Elapsed: 146.471 sec. Processed 59.82 million rows, 83.82 GB (408.40 thousand rows/s., 572.25 MB/s.)
+```
+
+增量加载也可以调度。如果 Postgres 表仅接收插入并且存在递增的 id 或时间戳,用户可以使用上述表函数方法加载增量,即可以在 `SELECT` 中应用 `WHERE` 子句。这种方法也可以用于支持更新,如果这些更新确保会修改相同的列。然而,支持删除则需要完全重新加载,随着表的增长,这可能会很难实现。
+
+我们通过使用 `CreationDate`(我们假设如果行被更新,则此字段也会更新)来展示初始加载和增量加载。
+
+```sql
+-- initial load
+INSERT INTO stackoverflow.posts SELECT * FROM postgresql('', 'postgres', 'posts', 'postgres', '', 'postgres', 'posts', 'postgres', ' ( SELECT (max(CreationDate) FROM stackoverflow.posts)
+```
+
+> ClickHouse 将下推简单的 `WHERE` 子句,例如 `=`、`!=`、`>`、`>=`、`<`、`<=` 和 IN 到 PostgreSQL 服务器。因此,通过确保在用于识别更改集的列上存在索引,可以使增量加载更高效。
+
+> 使用查询复制时检测 UPDATE 操作的一种可能方法是使用 [`XMIN` 系统列](https://www.postgresql.org/docs/9.1/ddl-system-columns.html)(事务 ID)作为水印 - 此列的变化意味着更改,因此可以应用到目标表。使用此方法的用户应意识到 `XMIN` 值可能会环绕,并且比较需要完全扫描表,使跟踪更改变得更加复杂。
+
+[点击这里查看第二部分](/migrations/postgresql/rewriting-queries)
diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/cloud/onboard/02_migrate/01_migration_guides/02_postgres/migration_guide/01_migration_guide_part1.md.hash b/i18n/zh/docusaurus-plugin-content-docs/current/cloud/onboard/02_migrate/01_migration_guides/02_postgres/migration_guide/01_migration_guide_part1.md.hash
new file mode 100644
index 00000000000..69273c46952
--- /dev/null
+++ b/i18n/zh/docusaurus-plugin-content-docs/current/cloud/onboard/02_migrate/01_migration_guides/02_postgres/migration_guide/01_migration_guide_part1.md.hash
@@ -0,0 +1 @@
+348ac3e0c6cae337
diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/migrations/postgres/rewriting-queries.md b/i18n/zh/docusaurus-plugin-content-docs/current/cloud/onboard/02_migrate/01_migration_guides/02_postgres/migration_guide/02_migration_guide_part2.md
similarity index 77%
rename from i18n/zh/docusaurus-plugin-content-docs/current/migrations/postgres/rewriting-queries.md
rename to i18n/zh/docusaurus-plugin-content-docs/current/cloud/onboard/02_migrate/01_migration_guides/02_postgres/migration_guide/02_migration_guide_part2.md
index 03bc5ba4e23..5090138fb01 100644
--- a/i18n/zh/docusaurus-plugin-content-docs/current/migrations/postgres/rewriting-queries.md
+++ b/i18n/zh/docusaurus-plugin-content-docs/current/cloud/onboard/02_migrate/01_migration_guides/02_postgres/migration_guide/02_migration_guide_part2.md
@@ -5,30 +5,32 @@
- 'postgres'
- 'postgresql'
- 'rewriting queries'
-'description': '从 PostgreSQL 迁移到 ClickHouse 的指南第二部分'
+'description': '关于从 PostgreSQL 迁移到 ClickHouse 的指南的第 2 部分'
+'sidebar_label': '第 2 部分'
+'doc_type': 'guide'
---
-> 这是关于从 PostgreSQL 迁移到 ClickHouse 的指南的 **第二部分**。通过一个实际的例子,它演示了如何高效地进行实时复制(CDC)方式的迁移。许多涵盖的概念同样适用于从 PostgreSQL 到 ClickHouse 的手动批量数据传输。
+> 这是将 PostgreSQL 迁移到 ClickHouse 的指南的 **第二部分**。通过一个实际的示例,它演示了如何使用实时复制 (CDC) 方法高效地完成迁移。许多涵盖的概念也适用于从 PostgreSQL 到 ClickHouse 的手动批量数据传输。
-您 PostgreSQL 设置中的大多数 SQL 查询应在 ClickHouse 中无需修改地运行,并且执行速度可能更快。
+您的 PostgreSQL 设置中的大多数 SQL 查询在 ClickHouse 中应该可以无修改地运行,并且执行速度更快。
-## 使用 CDC 的去重 {#deduplication-cdc}
+## 使用 CDC 进行去重 {#deduplication-cdc}
-在使用实时复制和 CDC 时,请记住,更新和删除可能会导致重复行。为了管理这一点,您可以使用涉及视图和可刷新的物化视图的技术。
+在使用 CDC 进行实时复制时,请注意,更新和删除可能导致重复行。为了解决这个问题,您可以使用涉及视图和可刷新的物化视图的技术。
-请参阅本[指南](/integrations/clickpipes/postgres/deduplication#query-like-with-postgres),了解如何在使用实时复制和 CDC 迁移时以最小的摩擦将您的应用程序从 PostgreSQL 迁移到 ClickHouse。
+请参考本 [指南](/integrations/clickpipes/postgres/deduplication#query-like-with-postgres),了解如何在使用实时复制和 CDC 进行迁移时,将您的应用程序从 PostgreSQL 迁移到 ClickHouse,降低摩擦。
## 在 ClickHouse 中优化查询 {#optimize-queries-in-clickhouse}
-虽然可以在最小查询重写的情况下进行迁移,建议利用 ClickHouse 的特性以显著简化查询并进一步提高查询性能。
+虽然可以在最小查询重写的情况下进行迁移,但建议利用 ClickHouse 的特性显著简化查询并进一步改善查询性能。
-这里的例子涵盖了常见的查询模式,并展示了如何使用 ClickHouse 对其进行优化。它们使用了完整的[Stack Overflow 数据集](/getting-started/example-datasets/stackoverflow)(截至 2024 年 4 月)与 PostgreSQL 和 ClickHouse 中的等效资源(8 核心,32GiB 内存)。
+这里的示例涵盖了常见的查询模式,并展示了如何在 ClickHouse 中优化它们。它们使用完整的 [Stack Overflow 数据集](/getting-started/example-datasets/stackoverflow)(截至 2024 年 4 月)在 PostgreSQL 和 ClickHouse 中的等效资源(8 核心,32GiB 内存)。
-> 为了简单起见,下面的查询省略了去重数据的技术。
+> 为了简单起见,下面的查询省略了使用数据去重的技术。
-> 此处的计数会略有不同,因为 PostgreSQL 数据仅包含满足外键参照完整性的行。ClickHouse 不施加此类约束,因此具有完整的数据集,例如包括匿名用户。
+> 此处的计数会略有不同,因为 PostgreSQL 数据仅包含满足外键引用完整性的行。ClickHouse 不强加这样的约束,因此拥有完整的数据集,例如,包括匿名用户。
-用户(提问超过 10 个)中获得最多浏览量的:
+用户(提问超过 10 个)中获得最多浏览量的用户:
```sql
-- ClickHouse
@@ -73,7 +75,7 @@ LIMIT 5;
Time: 107620.508 ms (01:47.621)
```
-哪些 `tags` 获得了最多的 `views`:
+哪些 `tags` 收到的 `views` 最多:
```sql
--ClickHouse
@@ -131,7 +133,7 @@ Time: 112508.083 ms (01:52.508)
**聚合函数**
-用户在可能的情况下应利用 ClickHouse 聚合函数。下面我们展示了使用[argMax](/sql-reference/aggregate-functions/reference/argmax)函数来计算每年查看次数最多的问题。
+在可能的情况下,用户应利用 ClickHouse 的聚合函数。下面我们展示了使用 [argMax](/sql-reference/aggregate-functions/reference/argmax) 函数来计算每年最受欢迎的问题。
```sql
--ClickHouse
@@ -173,7 +175,7 @@ MaxViewCount: 66975
Peak memory usage: 554.31 MiB.
```
-这比对应的 PostgreSQL 查询显著简单(且更快):
+这比等效的 PostgreSQL 查询显著更简单(且更快):
```sql
--Postgres
@@ -209,7 +211,7 @@ Time: 125822.015 ms (02:05.822)
**条件和数组**
-条件和数组函数使查询显著简化。以下查询计算了从 2022 年到 2023 年增幅最大的标签(出现超过 10000 次)。请注意,由于条件、数组函数的存在以及在 HAVING 和 SELECT 子句中重用别名的能力,下面的 ClickHouse 查询非常简洁。
+条件和数组函数使查询简单得多。以下查询计算了 2022 年到 2023 年之间出现超过 10000 次的标签,其百分比增长最大。请注意,以下的 ClickHouse 查询因条件、数组函数以及在 HAVING 和 SELECT 子句中重用别名的能力而变得简明扼要。
```sql
--ClickHouse
@@ -272,4 +274,4 @@ LIMIT 5;
Time: 116750.131 ms (01:56.750)
```
-[点击这里查看第三部分](./data-modeling-techniques.md)
+[单击这里访问第三部分](/migrations/postgresql/data-modeling-techniques)
diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/cloud/onboard/02_migrate/01_migration_guides/02_postgres/migration_guide/02_migration_guide_part2.md.hash b/i18n/zh/docusaurus-plugin-content-docs/current/cloud/onboard/02_migrate/01_migration_guides/02_postgres/migration_guide/02_migration_guide_part2.md.hash
new file mode 100644
index 00000000000..218600402ee
--- /dev/null
+++ b/i18n/zh/docusaurus-plugin-content-docs/current/cloud/onboard/02_migrate/01_migration_guides/02_postgres/migration_guide/02_migration_guide_part2.md.hash
@@ -0,0 +1 @@
+cf2918e4831a135d
diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/cloud/onboard/02_migrate/01_migration_guides/02_postgres/migration_guide/03_migration_guide_part3.md b/i18n/zh/docusaurus-plugin-content-docs/current/cloud/onboard/02_migrate/01_migration_guides/02_postgres/migration_guide/03_migration_guide_part3.md
new file mode 100644
index 00000000000..840b256f5d5
--- /dev/null
+++ b/i18n/zh/docusaurus-plugin-content-docs/current/cloud/onboard/02_migrate/01_migration_guides/02_postgres/migration_guide/03_migration_guide_part3.md
@@ -0,0 +1,270 @@
+---
+'slug': '/migrations/postgresql/data-modeling-techniques'
+'title': '数据建模技术'
+'description': '关于从 PostgreSQL 迁移到 ClickHouse 的指南第 3 部分'
+'keywords':
+- 'postgres'
+- 'postgresql'
+'show_related_blogs': true
+'sidebar_label': '第 3 部分'
+'doc_type': 'guide'
+---
+
+import postgres_b_tree from '@site/static/images/migrations/postgres-b-tree.png';
+import postgres_sparse_index from '@site/static/images/migrations/postgres-sparse-index.png';
+import postgres_partitions from '@site/static/images/migrations/postgres-partitions.png';
+import postgres_projections from '@site/static/images/migrations/postgres-projections.png';
+import Image from '@theme/IdealImage';
+
+> 这是关于从 PostgreSQL 迁移到 ClickHouse 的指南的 **第 3 部分**。通过一个实际的例子,它演示了如果从 PostgreSQL 迁移,如何在 ClickHouse 中建模数据。
+
+我们建议从 Postgres 迁移的用户阅读 [ClickHouse 中建模数据的指南](/data-modeling/schema-design)。本指南使用相同的 Stack Overflow 数据集,并探索了多种利用 ClickHouse 特性的不同方法。
+
+## ClickHouse 中的主键(排序键) {#primary-ordering-keys-in-clickhouse}
+
+来自 OLTP 数据库的用户通常会寻找 ClickHouse 中的等效概念。在注意到 ClickHouse 支持 `PRIMARY KEY` 语法时,用户可能会倾向于使用与其源 OLTP 数据库相同的键来定义表模式。这并不合适。
+
+### ClickHouse 主键有何不同? {#how-are-clickhouse-primary-keys-different}
+
+为了理解为什么在 ClickHouse 中使用 OLTP 主键不合适,用户应该了解 ClickHouse 索引的基础知识。我们以 Postgres 作为比较的例子,但这些一般概念适用于其他 OLTP 数据库。
+
+- Postgres 主键根据定义,每行都是唯一的。使用 [B-树结构](/guides/best-practices/sparse-primary-indexes#an-index-design-for-massive-data-scales) 允许通过该键高效查找单行。虽然 ClickHouse 可以优化单行值的查找,但分析工作负载通常需要读取少量列但处理许多行。过滤器更常需要识别 **一部分行**,以便进行聚合处理。
+- 内存和磁盘效率在 ClickHouse 通常使用的规模中至关重要。数据以称为部分的块写入 ClickHouse 表,同时应用后台合并部分的规则。在 ClickHouse 中,每个部分都有自己独立的主索引。当部分被合并时,合并部分的主索引也会合并。与 Postgres 不同,这些索引不是为每行构建的。相反,一个部分的主索引为每组行有一个索引条目——该技术称为 **稀疏索引**。
+- **稀疏索引** 是可能的,因为 ClickHouse 将部分的行根据指定的键有序存储在磁盘上。与直接定位单行不同(如基于 B-树的索引),稀疏主索引允许它通过索引条目上的二分查找快速识别可能匹配查询的行组。定位到的潜在匹配行组随后会并行流入 ClickHouse 引擎以查找匹配项。此索引设计允许主索引变小(它完全适合主内存),同时仍显著加快查询执行时间,特别是在数据分析用例中典型的范围查询时。
+
+要获取更多细节,我们推荐查看该 [深入指南](/guides/best-practices/sparse-primary-indexes)。
+
+
+
+
+
+在 ClickHouse 中选择的键不仅会确定索引,还会确定数据在磁盘上的写入顺序。因此,它可以显著影响压缩级别,这反过来又会影响查询性能。导致大多数列值以连续顺序写入的排序键,将允许所选的压缩算法(和编解码器)更有效地压缩数据。
+
+> 表中的所有列都会根据指定排序键的值进行排序,无论它们是否包含在键中。例如,如果 `CreationDate` 被用作键,则其他所有列中值的顺序将与 `CreationDate` 列中的值的顺序相对应。可以指定多个排序键——这将以与 `SELECT` 查询中的 `ORDER BY` 子句相同的语义进行排序。
+
+### 选择排序键 {#choosing-an-ordering-key}
+
+有关选择排序键的考虑因素和步骤,以帖子表为例,请参见 [此处](/data-modeling/schema-design#choosing-an-ordering-key)。
+
+使用带有 CDC 的实时复制时,还需考虑其他约束,请参阅该 [文档](/integrations/clickpipes/postgres/ordering_keys),了解如何使用 CDC 自定义排序键的技术。
+
+## 分区 {#partitions}
+
+Postgres 用户会熟悉表分区的概念,通过将表划分为更小、更易管理的部分来增强大型数据库的性能和可管理性。这种分区可以通过在指定列(例如,日期)上定义范围、定义列表或通过键的哈希来实现。这使得管理员可以根据特定标准(如日期范围或地理位置)组织数据。分区有助于通过启用更快的数据访问(通过分区裁剪)和更有效的索引来提高查询性能。它还通过允许对单个分区而不是整个表进行操作,帮助维护任务,例如备份和数据清理。此外,分区可以通过在多个分区之间分配负载显著提高 PostgreSQL 数据库的可扩展性。
+
+在 ClickHouse 中,分区在表最初通过 `PARTITION BY` 子句定义时指定。该子句可以包含任何列的 SQL 表达式,其结果将定义一行发送到哪个分区。
+
+
+
+数据部分在磁盘上与每个分区逻辑关联,并可以单独查询。在下面的例子中,我们使用表达式 `toYear(CreationDate)` 按年对 `posts` 表进行分区。当行插入到 ClickHouse 时,将针对每行评估此表达式,并在存在分区时路由到结果分区(如果该行是某一年的第一行,则该分区将被创建)。
+
+```sql
+ CREATE TABLE posts
+(
+ `Id` Int32 CODEC(Delta(4), ZSTD(1)),
+ `PostTypeId` Enum8('Question' = 1, 'Answer' = 2, 'Wiki' = 3, 'TagWikiExcerpt' = 4, 'TagWiki' = 5, 'ModeratorNomination' = 6, 'WikiPlaceholder' = 7, 'PrivilegeWiki' = 8),
+ `AcceptedAnswerId` UInt32,
+ `CreationDate` DateTime64(3, 'UTC'),
+...
+ `ClosedDate` DateTime64(3, 'UTC')
+)
+ENGINE = MergeTree
+ORDER BY (PostTypeId, toDate(CreationDate), CreationDate)
+PARTITION BY toYear(CreationDate)
+```
+
+有关分区的完整描述,请参见 ["表分区"](/partitions)。
+
+### 分区的应用 {#applications-of-partitions}
+
+ClickHouse 中的分区与 Postgres 中的应用相似,但有一些细微差别。更具体地说:
+
+- **数据管理** - 在 ClickHouse 中,用户应主要将分区视为数据管理特性,而不是查询优化技术。通过根据键逻辑分离数据,可以独立操作每个分区,例如删除。这使得用户能够高效地在 [存储层](/integrations/s3#storage-tiers) 之间移动分区,进而移动子集,或者 [过期数据/有效地从集群中删除](/sql-reference/statements/alter/partition)。例如,在下面的案例中,我们删除 2008 年的帖子。
+
+```sql
+SELECT DISTINCT partition
+FROM system.parts
+WHERE `table` = 'posts'
+
+┌─partition─┐
+│ 2008 │
+│ 2009 │
+│ 2010 │
+│ 2011 │
+│ 2012 │
+│ 2013 │
+│ 2014 │
+│ 2015 │
+│ 2016 │
+│ 2017 │
+│ 2018 │
+│ 2019 │
+│ 2020 │
+│ 2021 │
+│ 2022 │
+│ 2023 │
+│ 2024 │
+└───────────┘
+
+17 rows in set. Elapsed: 0.002 sec.
+
+ALTER TABLE posts
+(DROP PARTITION '2008')
+
+Ok.
+
+0 rows in set. Elapsed: 0.103 sec.
+```
+
+- **查询优化** - 尽管分区可以帮助提升查询性能,但这在很大程度上依赖于访问模式。如果查询仅针对少数分区(理想情况下是一个),性能可能会有所提升。这通常只有在分区键不在主键中,且你按照该键进行过滤时才有效。然而,需要覆盖多个分区的查询可能性能较差,这可能是因为由于分区产生更多部分。针对单一区域的目标的好处在分区键已在主键中占据前面位置时甚至更不明显。如果每个分区中的值是唯一的,分区还可以用来 [优化 GROUP BY 查询](/engines/table-engines/mergetree-family/custom-partitioning-key#group-by-optimisation-using-partition-key)。但通常,用户应确保主键经过优化,并且仅在访问模式访问具体可预测的子集(例如,按天分区,大部分查询在最后一天)时考虑分区作为查询优化技术。
+
+### 对于分区的建议 {#recommendations-for-partitions}
+
+用户应将分区视为一种数据管理技术。当处理时间序列数据时,尤其是需要从集群中过期数据时是理想的,例如,可以 [简便地删除](https://www.baidu.com) 最古老的分区(/sql-reference/statements/alter/partition#drop-partitionpart)。
+
+**重要**:确保你的分区键表达式不会导致高基数集,即应避免创建超过 100 个分区。例如,不要通过客户端标识符或名称等高基数字段对数据进行分区。相反,使用客户端标识符或名称作为 `ORDER BY` 表达式中的首列。
+
+> 内部上, ClickHouse [为插入的数据创建部分](/guides/best-practices/sparse-primary-indexes#clickhouse-index-design)。随着更多数据的插入,部分数量增加。为了防止过多的部分导致查询性能下降(需要读取更多文件),部分在后台异步进程中被合并。如果部分的数量超过预配置的限制,则 ClickHouse 在插入时会抛出异常—作为“部分太多”的错误。在正常操作下不会发生这种情况,仅在 ClickHouse 配置错误或使用不当时(例如,大量小插入)才会发生。
+
+> 由于部分是在每个分区中独立创建的,增加分区的数量会导致部分数增加,即是分区数量的倍数。因此,高基数的分区键可能引发此错误,需予以避免。
+
+## 物化视图与投影 {#materialized-views-vs-projections}
+
+Postgres 允许在单个表上创建多个索引,以优化各种访问模式。这种灵活性使管理员和开发人员能够根据特定的查询和操作需求调整数据库性能。 ClickHouse 的投影概念虽然与此并不完全相同,但允许用户为表指定多个 `ORDER BY` 子句。
+
+在 ClickHouse [数据建模文档](/data-modeling/schema-design) 中,我们探讨了如何在 ClickHouse 中使用物化视图来预计算聚合、转换行,并针对不同的访问模式优化查询。
+
+对于最后一个例子,我们提供了 [一个示例](/materialized-view/incremental-materialized-view#lookup-table),其中物化视图将行发送到目标表,并具有与原始接收插入的表不同的排序键。
+
+例如,考虑以下查询:
+
+```sql
+SELECT avg(Score)
+FROM comments
+WHERE UserId = 8592047
+
+ ┌──────────avg(Score)─┐
+1. │ 0.18181818181818182 │
+ └─────────────────────┘
+
+1 row in set. Elapsed: 0.040 sec. Processed 90.38 million rows, 361.59 MB (2.25 billion rows/s., 9.01 GB/s.)
+Peak memory usage: 201.93 MiB.
+```
+
+该查询要求扫描所有 9000 万行(虽然速度很快),因为 `UserId` 不是排序键。之前,我们通过一个作为 `PostId` 查找的物化视图解决了这个问题。相同的问题可以通过 [投影](/data-modeling/projections) 来解决。下面的命令为 `ORDER BY user_id` 添加了一个投影。
+
+```sql
+ALTER TABLE comments ADD PROJECTION comments_user_id (
+SELECT * ORDER BY UserId
+)
+
+ALTER TABLE comments MATERIALIZE PROJECTION comments_user_id
+```
+
+请注意,我们必须先创建该投影,然后对其进行物化。该后续命令将导致数据在磁盘上以两种不同的顺序存储两次。投影也可以在创建数据时定义,如下所示,并在数据插入时自动维护。
+
+```sql
+CREATE TABLE comments
+(
+ `Id` UInt32,
+ `PostId` UInt32,
+ `Score` UInt16,
+ `Text` String,
+ `CreationDate` DateTime64(3, 'UTC'),
+ `UserId` Int32,
+ `UserDisplayName` LowCardinality(String),
+ PROJECTION comments_user_id
+ (
+ SELECT *
+ ORDER BY UserId
+ )
+)
+ENGINE = MergeTree
+ORDER BY PostId
+```
+
+如果通过 `ALTER` 创建投影,则在发出 `MATERIALIZE PROJECTION` 命令时,创建是异步的。用户可以使用以下查询确认该操作的进度,等待 `is_done=1`。
+
+```sql
+SELECT
+ parts_to_do,
+ is_done,
+ latest_fail_reason
+FROM system.mutations
+WHERE (`table` = 'comments') AND (command LIKE '%MATERIALIZE%')
+
+ ┌─parts_to_do─┬─is_done─┬─latest_fail_reason─┐
+1. │ 1 │ 0 │ │
+ └─────────────┴─────────┴────────────────────┘
+
+1 row in set. Elapsed: 0.003 sec.
+```
+
+如果我们重复上述查询,我们可以看到性能显著提高,虽然增加了存储成本。
+
+```sql
+SELECT avg(Score)
+FROM comments
+WHERE UserId = 8592047
+
+ ┌──────────avg(Score)─┐
+1. │ 0.18181818181818182 │
+ └─────────────────────┘
+
+1 row in set. Elapsed: 0.008 sec. Processed 16.36 thousand rows, 98.17 KB (2.15 million rows/s., 12.92 MB/s.)
+Peak memory usage: 4.06 MiB.
+```
+
+通过 `EXPLAIN` 命令,我们还确认使用了投影来处理此查询:
+
+```sql
+EXPLAIN indexes = 1
+SELECT avg(Score)
+FROM comments
+WHERE UserId = 8592047
+
+ ┌─explain─────────────────────────────────────────────┐
+ 1. │ Expression ((Projection + Before ORDER BY)) │
+ 2. │ Aggregating │
+ 3. │ Filter │
+ 4. │ ReadFromMergeTree (comments_user_id) │
+ 5. │ Indexes: │
+ 6. │ PrimaryKey │
+ 7. │ Keys: │
+ 8. │ UserId │
+ 9. │ Condition: (UserId in [8592047, 8592047]) │
+10. │ Parts: 2/2 │
+11. │ Granules: 2/11360 │
+ └─────────────────────────────────────────────────────┘
+
+11 rows in set. Elapsed: 0.004 sec.
+```
+
+### 何时使用投影 {#when-to-use-projections}
+
+对于新用户而言,投影是一项吸引人的特性,因为随着数据的插入,它们会自动维护。此外,查询可以仅发送到单个表,并根据可能的情况利用投影来加快响应时间。
+
+
+
+与物化视图不同,后者用户必须根据过滤条件选择适当的优化目标表或重写查询。这对用户应用程序施加了更大的强调,并增加了客户端的复杂性。
+
+尽管有这些优势,投影也有一些 [固有的限制](/data-modeling/projections#when-to-use-projections),用户应注意,因此应谨慎部署。
+
+我们建议在以下情况下使用投影:
+
+- 需要对数据进行全面重新排序。虽然投影中的表达式理论上可以使用 `GROUP BY`,但物化视图更有效地维护聚合。查询优化器也更可能利用使用简单重新排序的投影,即 `SELECT * ORDER BY x`。用户可以在该表达式中选择一部分列,以减小存储占用。
+- 用户对相关的存储占用增加和双重写入数据的开销感到满意。测试对插入速度的影响,并 [评估存储开销](/data-compression/compression-in-clickhouse)。
+
+:::note
+自 25.5 版以来, ClickHouse 在投影中支持虚拟列 `_part_offset` ,这开启了一种更节省空间的投影存储方式。
+
+有关更多细节,请参见 ["投影"](/data-modeling/projections)
+:::
+
+## 反规范化 {#denormalization}
+
+由于 Postgres 是关系数据库,因此其数据模型通常高度 [规范化](https://en.wikipedia.org/wiki/Database_normalization),通常涉及数百个表。在 ClickHouse 中,反规范化有时可以提高 JOIN 性能。
+
+你可以参考该 [指南](/data-modeling/denormalization),展示在 ClickHouse 中反规范化 Stack Overflow 数据集的好处。
+
+这结束了我们为从 Postgres 迁移到 ClickHouse 的用户准备的基本指南。我们建议从 Postgres 迁移的用户阅读 [ClickHouse 中建模数据的指南](/data-modeling/schema-design),以了解更多关于 ClickHouse 高级特性的内容。
diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/cloud/onboard/02_migrate/01_migration_guides/02_postgres/migration_guide/03_migration_guide_part3.md.hash b/i18n/zh/docusaurus-plugin-content-docs/current/cloud/onboard/02_migrate/01_migration_guides/02_postgres/migration_guide/03_migration_guide_part3.md.hash
new file mode 100644
index 00000000000..3c565131b82
--- /dev/null
+++ b/i18n/zh/docusaurus-plugin-content-docs/current/cloud/onboard/02_migrate/01_migration_guides/02_postgres/migration_guide/03_migration_guide_part3.md.hash
@@ -0,0 +1 @@
+d80cc736b9d77113
diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/cloud/onboard/02_migrate/01_migration_guides/02_postgres/migration_guide/_category_.json b/i18n/zh/docusaurus-plugin-content-docs/current/cloud/onboard/02_migrate/01_migration_guides/02_postgres/migration_guide/_category_.json
new file mode 100644
index 00000000000..ad514aeb890
--- /dev/null
+++ b/i18n/zh/docusaurus-plugin-content-docs/current/cloud/onboard/02_migrate/01_migration_guides/02_postgres/migration_guide/_category_.json
@@ -0,0 +1,5 @@
+{
+ "label": "Migration guide",
+ "collapsible": true,
+ "collapsed": true,
+}
\ No newline at end of file
diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/cloud/onboard/02_migrate/01_migration_guides/03_bigquery/01_overview.md b/i18n/zh/docusaurus-plugin-content-docs/current/cloud/onboard/02_migrate/01_migration_guides/03_bigquery/01_overview.md
new file mode 100644
index 00000000000..721fb274cba
--- /dev/null
+++ b/i18n/zh/docusaurus-plugin-content-docs/current/cloud/onboard/02_migrate/01_migration_guides/03_bigquery/01_overview.md
@@ -0,0 +1,482 @@
+---
+'title': 'BigQuery vs ClickHouse Cloud'
+'slug': '/migrations/bigquery/biquery-vs-clickhouse-cloud'
+'description': 'BigQuery 如何与 ClickHouse Cloud 不同'
+'keywords':
+- 'BigQuery'
+'show_related_blogs': true
+'sidebar_label': '概述'
+'doc_type': 'guide'
+---
+
+import bigquery_1 from '@site/static/images/migrations/bigquery-1.png';
+import Image from '@theme/IdealImage';
+
+
+# 比较 ClickHouse Cloud 和 BigQuery
+
+## 资源组织 {#resource-organization}
+
+ClickHouse Cloud 中资源的组织方式类似于 [BigQuery 的资源层次结构](https://cloud.google.com/bigquery/docs/resource-hierarchy)。我们根据下面的图示描述具体的差异,展示 ClickHouse Cloud 的资源层次结构:
+
+
+
+### 组织 {#organizations}
+
+与 BigQuery 相似,组织是 ClickHouse Cloud 资源层次结构中的根节点。在您的 ClickHouse Cloud 账户中设置的第一个用户会自动分配到由该用户拥有的组织中。该用户可以邀请其他用户加入该组织。
+
+### BigQuery 项目与 ClickHouse Cloud 服务 {#bigquery-projects-vs-clickhouse-cloud-services}
+
+在组织内部,您可以创建大致相当于 BigQuery 项目的服务,因为在 ClickHouse Cloud 中存储的数据与服务相关联。ClickHouse Cloud 中有 [几种服务类型可用](/cloud/manage/cloud-tiers)。每个 ClickHouse Cloud 服务在特定区域中部署,包括:
+
+1. 一组计算节点(当前,开发层服务为 2 个节点,生产层服务为 3 个节点)。对于这些节点,ClickHouse Cloud [支持垂直和水平扩展](/manage/scaling#how-scaling-works-in-clickhouse-cloud),支持手动和自动扩展。
+2. 一个对象存储文件夹,用于服务存储所有数据。
+3. 一个端点(或通过 ClickHouse Cloud UI 控制台创建的多个端点) - 您用来连接服务的服务 URL(例如,`https://dv2fzne24g.us-east-1.aws.clickhouse.cloud:8443`)
+
+### BigQuery 数据集与 ClickHouse Cloud 数据库 {#bigquery-datasets-vs-clickhouse-cloud-databases}
+
+ClickHouse 将表逻辑上分组到数据库中。与 BigQuery 数据集类似,ClickHouse 数据库是逻辑容器,用于组织和控制对表数据的访问。
+
+### BigQuery 文件夹 {#bigquery-folders}
+
+ClickHouse Cloud 当前没有与 BigQuery 文件夹相对应的概念。
+
+### BigQuery 插槽保留和配额 {#bigquery-slot-reservations-and-quotas}
+
+与 BigQuery 插槽保留类似,您可以在 ClickHouse Cloud 中 [配置垂直和水平自动扩展](/manage/scaling#configuring-vertical-auto-scaling)。对于垂直自动扩展,您可以设置服务的计算节点的内存和 CPU 核心的最小和最大大小。然后,服务将在这些范围内根据需要进行扩展。这些设置在初始服务创建流程中也可用。服务中的每个计算节点具有相同的大小。您可以通过 [水平扩展](/manage/scaling#manual-horizontal-scaling) 更改服务中的计算节点数量。
+
+此外,类似于 BigQuery 配额,ClickHouse Cloud 提供并发控制、内存使用限制和 I/O 调度,允许用户将查询隔离到工作负载类别中。通过为特定工作负载类限制共享资源(CPU 核心、DRAM、磁盘和网络 I/O),确保这些查询不会影响其他关键业务查询。在并发查询数量较高的情况下,并发控制可防止线程过度分配。
+
+ClickHouse 在服务器、用户和查询级别跟踪内存分配的字节大小,允许灵活的内存使用限制。内存过度分配使查询能够使用超出保证内存的额外空闲内存,同时确保其他查询的内存限制。此外,聚合、排序和连接子句的内存使用也可以被限制,当超过内存限制时,允许回退到外部算法。
+
+最后,I/O 调度允许用户根据最大带宽、在途请求和策略限制工作负载类的本地和远程磁盘访问。
+
+### 权限 {#permissions}
+
+ClickHouse Cloud [控制用户访问](/cloud/security/cloud-access-management) 有两个地方,通过 [云控制台](/cloud/get-started/sql-console) 和通过数据库。控制台访问是通过 [clickhouse.cloud](https://console.clickhouse.cloud) 用户界面进行管理的。数据库访问是通过数据库用户账户和角色进行管理的。此外,可以在数据库中授予控制台用户角色,使其能够通过我们的 [SQL 控制台](/integrations/sql-clients/sql-console) 与数据库交互。
+
+## 数据类型 {#data-types}
+
+ClickHouse 在数值方面提供了更细粒度的精度。例如,BigQuery 提供的数值类型 [`INT64`,`NUMERIC`,`BIGNUMERIC` 和 `FLOAT64`](https://cloud.google.com/bigquery/docs/reference/standard-sql/data-types#numeric_types)。与此相比,ClickHouse 为小数、浮点数和整数提供了多种精度类型。利用这些数据类型,ClickHouse 用户可以优化存储和内存开销,从而实现更快的查询和较低的资源消耗。以下是 BigQuery 类型与对应的 ClickHouse 类型的映射:
+
+| BigQuery | ClickHouse |
+|----------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| [ARRAY](https://cloud.google.com/bigquery/docs/reference/standard-sql/data-types#array_type) | [Array(t)](/sql-reference/data-types/array) |
+| [NUMERIC](https://cloud.google.com/bigquery/docs/reference/standard-sql/data-types#decimal_types) | [Decimal(P, S),Decimal32(S),Decimal64(S),Decimal128(S)](/sql-reference/data-types/decimal) |
+| [BIG NUMERIC](https://cloud.google.com/bigquery/docs/reference/standard-sql/data-types#decimal_types) | [Decimal256(S)](/sql-reference/data-types/decimal) |
+| [BOOL](https://cloud.google.com/bigquery/docs/reference/standard-sql/data-types#boolean_type) | [Bool](/sql-reference/data-types/boolean) |
+| [BYTES](https://cloud.google.com/bigquery/docs/reference/standard-sql/data-types#bytes_type) | [FixedString](/sql-reference/data-types/fixedstring) |
+| [DATE](https://cloud.google.com/bigquery/docs/reference/standard-sql/data-types#date_type) | [Date32](/sql-reference/data-types/date32) (范围更小) |
+| [DATETIME](https://cloud.google.com/bigquery/docs/reference/standard-sql/data-types#datetime_type) | [DateTime](/sql-reference/data-types/datetime),[DateTime64](/sql-reference/data-types/datetime64) (范围更小,精度更高) |
+| [FLOAT64](https://cloud.google.com/bigquery/docs/reference/standard-sql/data-types#floating_point_types) | [Float64](/sql-reference/data-types/float) |
+| [GEOGRAPHY](https://cloud.google.com/bigquery/docs/reference/standard-sql/data-types#geography_type) | [Geo 数据类型](/sql-reference/data-types/float) |
+| [INT64](https://cloud.google.com/bigquery/docs/reference/standard-sql/data-types#integer_types) | [UInt8,UInt16,UInt32,UInt64,UInt128,UInt256,Int8,Int16,Int32,Int64,Int128,Int256](/sql-reference/data-types/int-uint) |
+| [INTERVAL](https://cloud.google.com/bigquery/docs/reference/standard-sql/data-types#integer_types) | 不适用 - [作为表达式支持](/sql-reference/data-types/special-data-types/interval#usage-remarks) 或 [通过函数支持](/sql-reference/functions/date-time-functions#addYears) |
+| [JSON](https://cloud.google.com/bigquery/docs/reference/standard-sql/data-types#json_type) | [JSON](/integrations/data-formats/json/inference) |
+| [STRING](https://cloud.google.com/bigquery/docs/reference/standard-sql/data-types#string_type) | [String (bytes)](/sql-reference/data-types/string) |
+| [STRUCT](https://cloud.google.com/bigquery/docs/reference/standard-sql/data-types#constructing_a_struct) | [Tuple](/sql-reference/data-types/tuple),[Nested](/sql-reference/data-types/nested-data-structures/nested) |
+| [TIME](https://cloud.google.com/bigquery/docs/reference/standard-sql/data-types#time_type) | [DateTime64](/sql-reference/data-types/datetime64) |
+| [TIMESTAMP](https://cloud.google.com/bigquery/docs/reference/standard-sql/data-types#timestamp_type) | [DateTime64](/sql-reference/data-types/datetime64) |
+
+在 ClickHouse 类型的多个选项中,请考虑数据的实际范围并选择最低要求。此外,考虑利用 [适当的编解码器](https://clickhouse.com/blog/optimize-clickhouse-codecs-compression-schema) 进行进一步的压缩。
+
+## 查询加速技术 {#query-acceleration-techniques}
+
+### 主键和外键及主索引 {#primary-and-foreign-keys-and-primary-index}
+
+在 BigQuery 中,表可以具有 [主键和外键约束](https://cloud.google.com/bigquery/docs/information-schema-table-constraints)。通常,主键和外键用于关系型数据库以确保数据完整性。主键值通常对每一行都是唯一的,并且不能为 `NULL`。在一行中的每个外键值必须存在于主键表的主键列中或者为 `NULL`。在 BigQuery 中,这些约束不会被强制执行,但查询优化器可能使用此信息来更好地优化查询。
+
+在 ClickHouse 中,表也可以有主键。与 BigQuery 相同,ClickHouse 并不强制执行表的主键列值的唯一性。不像 BigQuery,表的数据在磁盘上根据主键列 [有序存储](/guides/best-practices/sparse-primary-indexes#optimal-compression-ratio-of-data-files)。查询优化器利用这种排序顺序来防止重新排序,尽量减少连接的内存使用,并启用限值子句的短路。与 BigQuery 不同,ClickHouse 自动根据主键列值创建 [(稀疏)主索引](/guides/best-practices/sparse-primary-indexes#an-index-design-for-massive-data-scales)。该索引用于加速所有包含对主键列的过滤条件的查询。目前,ClickHouse 不支持外键约束。
+
+## 辅助索引(仅在 ClickHouse 可用) {#secondary-indexes-only-available-in-clickhouse}
+
+除了根据表的主键列值创建的主索引外,ClickHouse 还允许您在主键以外的列上创建辅助索引。ClickHouse 提供几种类型的辅助索引,每种索引都适用于不同类型的查询:
+
+- **布隆过滤器索引**:
+ - 用于加速具有相等条件的查询(例如,=,IN)。
+ - 使用概率数据结构来确定值是否存在于数据块中。
+- **令牌布隆过滤器索引**:
+ - 类似于布隆过滤器索引,但用于标记字符串并适合全文搜索查询。
+- **最小-最大索引**:
+ - 为每个数据部分维护列的最小和最大值。
+ - 有助于跳过读取不在指定范围内的数据部分。
+
+## 搜索索引 {#search-indexes}
+
+类似于 BigQuery 中的 [搜索索引](https://cloud.google.com/bigquery/docs/search-index),可以为 ClickHouse 表的字符串值列创建 [全文索引](/engines/table-engines/mergetree-family/invertedindexes)。
+
+## 向量索引 {#vector-indexes}
+
+BigQuery 最近推出了 [向量索引](https://cloud.google.com/bigquery/docs/vector-index) 作为预发布功能。同样,ClickHouse 也对加速 [向量搜索用例的索引](https://engines/table-engines/mergetree-family/annindexes) 提供实验性支持。
+
+## 分区 {#partitioning}
+
+与 BigQuery 相似,ClickHouse 使用表分区来提升大型表的性能和可管理性,通过将表分成称为分区的小块,使其更易于管理。我们在 [此处](/engines/table-engines/mergetree-family/custom-partitioning-key) 详细描述 ClickHouse 分区。
+
+## 聚类 {#clustering}
+
+通过聚类,BigQuery 根据指定几列的值自动对表数据进行排序,并将其放置在最佳大小的块中。聚类提高了查询性能,使 BigQuery 更好地估算运行查询的成本。使用聚类列,查询还消除了对不必要数据的扫描。
+
+在 ClickHouse 中,数据会根据表的主键列 [自动聚类到磁盘上](/guides/best-practices/sparse-primary-indexes#optimal-compression-ratio-of-data-files),并在逻辑上以块组织,这些块可以通过利用主索引数据结构快速定位或修剪。
+
+## 物化视图 {#materialized-views}
+
+无论是 BigQuery 还是 ClickHouse,都支持物化视图 – 基于对基础表的转换查询结果的预计算结果,以提高性能和效率。
+
+## 查询物化视图 {#querying-materialized-views}
+
+BigQuery 物化视图可以直接查询或由优化器使用以处理对基础表的查询。如果对基础表的更改可能使物化视图失效,则数据将直接从基础表读取。如果对基础表的更改不会使物化视图失效,则其余数据将从物化视图中读取,仅更改部分将从基础表中读取。
+
+在 ClickHouse 中,物化视图只能直接查询。然而,与 BigQuery (其中物化视图会在对基础表进行更改后在 5 分钟内自动刷新,但不会频繁于 [每 30 分钟](https://cloud.google.com/bigquery/docs/materialized-views-manage#refresh))相比,物化视图始终与基础表保持同步。
+
+**更新物化视图**
+
+BigQuery 定期通过对基础表运行视图的转换查询来完全刷新物化视图。在刷新之间,BigQuery 将物化视图的数据与新基础表数据结合,以提供一致的查询结果,同时仍然使用物化视图。
+
+在 ClickHouse 中,物化视图是增量更新的。这种增量更新机制提供了高可扩展性和低计算成本:增量更新的物化视图专为基础表包含数十亿或数万亿行的场景而设计。ClickHouse 不是反复查询不断增长的基础表以刷新物化视图,而是简单计算新插入的基础表行(仅)的部分结果。这个部分结果会在后台与之前计算的部分结果增量合并。这与反复从整个基础表刷新物化视图相比,大大降低了计算成本。
+
+## 事务 {#transactions}
+
+与 ClickHouse 相比,BigQuery 支持在单个查询中或在使用会话时跨多个查询进行多语句事务。多语句事务允许您对一个或多个表执行更改操作,如插入或删除行,并以原子方式提交或回滚更改。多语句事务在 [ClickHouse 的 2024 年路线图](https://github.com/ClickHouse/ClickHouse/issues/58392) 中。
+
+## 聚合函数 {#aggregate-functions}
+
+与 BigQuery 相比,ClickHouse 提供了显著更多的内置聚合函数:
+
+- BigQuery 提供 [18 个聚合函数](https://cloud.google.com/bigquery/docs/reference/standard-sql/aggregate_functions),和 [4 个近似聚合函数](https://cloud.google.com/bigquery/docs/reference/standard-sql/approximate_aggregate_functions)。
+- ClickHouse 具有超过 [150 个预构建的聚合函数](/sql-reference/aggregate-functions/reference),以及强大的 [聚合组合器](/sql-reference/aggregate-functions/combinators),用于 [扩展](https://www.youtube.com/watch?v=7ApwD0cfAFI) 预构建聚合函数的行为。例如,您可以通过调用具有 [-Array 后缀](/sql-reference/aggregate-functions/combinators#-array) 的函数将超过 150 个预构建的聚合函数应用于数组,而不是表行。使用 [-Map 后缀](/sql-reference/aggregate-functions/combinators#-map),您可以将任何聚合函数应用于映射。使用 [-ForEach 后缀](/sql-reference/aggregate-functions/combinators#-foreach),您可以将任何聚合函数应用于嵌套数组。
+
+## 数据源和文件格式 {#data-sources-and-file-formats}
+
+与 BigQuery 相比,ClickHouse 支持显著更多的文件格式和数据源:
+
+- ClickHouse 原生支持从几乎所有数据源加载 90 多种文件格式的数据
+- BigQuery 支持 5 种文件格式和 19 种数据源
+
+## SQL 语言特性 {#sql-language-features}
+
+ClickHouse 提供标准的 SQL 及许多扩展和改进,使其在分析任务中更加友好。例如,ClickHouse SQL [支持 lambda 函数](/sql-reference/functions/overview#arrow-operator-and-lambda) 和高阶函数,因此在应用转换时无需对数组进行展开。与 BigQuery 等其他系统相比,这是一个很大的优势。
+
+## 数组 {#arrays}
+
+与 BigQuery 的 8 个数组函数相比,ClickHouse 具有超过 80 个 [内置数组函数](/sql-reference/functions/array-functions),可优雅且简单地建模和解决各种问题。
+
+ClickHouse 中的典型设计模式是使用 [`groupArray`](/sql-reference/aggregate-functions/reference/grouparray) 聚合函数(暂时)将表的特定行值转换为数组。然后可以通过数组函数方便地处理该数组,结果可以通过 [`arrayJoin`](/sql-reference/functions/array-join) 聚合函数转换回单独的表行。
+
+由于 ClickHouse SQL 支持 [高阶 lambda 函数](/sql-reference/functions/overview#arrow-operator-and-lambda),许多高级数组操作可以通过简单调用其中一个内置的高阶数组函数来实现,而不必将数组暂时转换回表,这在 BigQuery 中经常是 [必需的](https://cloud.google.com/bigquery/docs/arrays),例如用于 [过滤](https://cloud.google.com/bigquery/docs/arrays#filtering_arrays) 或 [压缩](https://cloud.google.com/bigquery/docs/arrays#zipping_arrays) 数组。在 ClickHouse 中,这些操作只是对高阶函数 [`arrayFilter`](/sql-reference/functions/array-functions#arrayFilter) 和 [`arrayZip`](/sql-reference/functions/array-functions#arrayZip) 的简单函数调用。
+
+以下是 BigQuery 到 ClickHouse 的数组操作映射:
+
+| BigQuery | ClickHouse |
+|----------|------------|
+| [ARRAY_CONCAT](https://cloud.google.com/bigquery/docs/reference/standard-sql/array_functions#array_concat) | [arrayConcat](/sql-reference/functions/array-functions#arrayConcat) |
+| [ARRAY_LENGTH](https://cloud.google.com/bigquery/docs/reference/standard-sql/array_functions#array_length) | [length](/sql-reference/functions/array-functions#length) |
+| [ARRAY_REVERSE](https://cloud.google.com/bigquery/docs/reference/standard-sql/array_functions#array_reverse) | [arrayReverse](/sql-reference/functions/array-functions#arrayReverse) |
+| [ARRAY_TO_STRING](https://cloud.google.com/bigquery/docs/reference/standard-sql/array_functions#array_to_string) | [arrayStringConcat](/sql-reference/functions/splitting-merging-functions#arraystringconcat) |
+| [GENERATE_ARRAY](https://cloud.google.com/bigquery/docs/reference/standard-sql/array_functions#generate_array) | [range](/sql-reference/functions/array-functions#range) |
+
+**创建一个包含子查询中每行一个元素的数组**
+
+_BigQuery_
+
+[ARRAY 函数](https://cloud.google.com/bigquery/docs/reference/standard-sql/array_functions#array)
+
+```sql
+SELECT ARRAY
+ (SELECT 1 UNION ALL
+ SELECT 2 UNION ALL
+ SELECT 3) AS new_array;
+
+/*-----------*
+ | new_array |
+ +-----------+
+ | [1, 2, 3] |
+ *-----------*/
+```
+
+_ClickHouse_
+
+[groupArray](/sql-reference/aggregate-functions/reference/grouparray) 聚合函数
+
+```sql
+SELECT groupArray(*) AS new_array
+FROM
+(
+ SELECT 1
+ UNION ALL
+ SELECT 2
+ UNION ALL
+ SELECT 3
+)
+ ┌─new_array─┐
+1. │ [1,2,3] │
+ └───────────┘
+```
+
+**将数组转换为一组行**
+
+_BigQuery_
+
+[`UNNEST`](https://cloud.google.com/bigquery/docs/reference/standard-sql/query-syntax#unnest_operator) 操作符
+
+```sql
+SELECT *
+FROM UNNEST(['foo', 'bar', 'baz', 'qux', 'corge', 'garply', 'waldo', 'fred'])
+ AS element
+WITH OFFSET AS offset
+ORDER BY offset;
+
+/*----------+--------*
+ | element | offset |
+ +----------+--------+
+ | foo | 0 |
+ | bar | 1 |
+ | baz | 2 |
+ | qux | 3 |
+ | corge | 4 |
+ | garply | 5 |
+ | waldo | 6 |
+ | fred | 7 |
+ *----------+--------*/
+```
+
+_ClickHouse_
+
+[ARRAY JOIN](/sql-reference/statements/select/array-join) 子句
+
+```sql
+WITH ['foo', 'bar', 'baz', 'qux', 'corge', 'garply', 'waldo', 'fred'] AS values
+SELECT element, num-1 AS offset
+FROM (SELECT values AS element) AS subquery
+ARRAY JOIN element, arrayEnumerate(element) AS num;
+
+/*----------+--------*
+ | element | offset |
+ +----------+--------+
+ | foo | 0 |
+ | bar | 1 |
+ | baz | 2 |
+ | qux | 3 |
+ | corge | 4 |
+ | garply | 5 |
+ | waldo | 6 |
+ | fred | 7 |
+ *----------+--------*/
+```
+
+**返回日期数组**
+
+_BigQuery_
+
+[GENERATE_DATE_ARRAY](https://cloud.google.com/bigquery/docs/reference/standard-sql/array_functions#generate_date_array) 函数
+
+```sql
+SELECT GENERATE_DATE_ARRAY('2016-10-05', '2016-10-08') AS example;
+
+/*--------------------------------------------------*
+ | example |
+ +--------------------------------------------------+
+ | [2016-10-05, 2016-10-06, 2016-10-07, 2016-10-08] |
+ *--------------------------------------------------*/
+```
+
+[range](/sql-reference/functions/array-functions#range) + [arrayMap](/sql-reference/functions/array-functions#arrayMap) 函数
+
+_ClickHouse_
+
+```sql
+SELECT arrayMap(x -> (toDate('2016-10-05') + x), range(toUInt32((toDate('2016-10-08') - toDate('2016-10-05')) + 1))) AS example
+
+ ┌─example───────────────────────────────────────────────┐
+1. │ ['2016-10-05','2016-10-06','2016-10-07','2016-10-08'] │
+ └───────────────────────────────────────────────────────┘
+```
+
+**返回时间戳数组**
+
+_BigQuery_
+
+[GENERATE_TIMESTAMP_ARRAY](https://cloud.google.com/bigquery/docs/reference/standard-sql/array_functions#generate_timestamp_array) 函数
+
+```sql
+SELECT GENERATE_TIMESTAMP_ARRAY('2016-10-05 00:00:00', '2016-10-07 00:00:00',
+ INTERVAL 1 DAY) AS timestamp_array;
+
+/*--------------------------------------------------------------------------*
+ | timestamp_array |
+ +--------------------------------------------------------------------------+
+ | [2016-10-05 00:00:00+00, 2016-10-06 00:00:00+00, 2016-10-07 00:00:00+00] |
+ *--------------------------------------------------------------------------*/
+```
+
+_ClickHouse_
+
+[range](/sql-reference/functions/array-functions#range) + [arrayMap](/sql-reference/functions/array-functions#arrayMap) 函数
+
+```sql
+SELECT arrayMap(x -> (toDateTime('2016-10-05 00:00:00') + toIntervalDay(x)), range(dateDiff('day', toDateTime('2016-10-05 00:00:00'), toDateTime('2016-10-07 00:00:00')) + 1)) AS timestamp_array
+
+Query id: b324c11f-655b-479f-9337-f4d34fd02190
+
+ ┌─timestamp_array─────────────────────────────────────────────────────┐
+1. │ ['2016-10-05 00:00:00','2016-10-06 00:00:00','2016-10-07 00:00:00'] │
+ └─────────────────────────────────────────────────────────────────────┘
+```
+
+**过滤数组**
+
+_BigQuery_
+
+需要通过 [`UNNEST`](https://cloud.google.com/bigquery/docs/reference/standard-sql/query-syntax#unnest_operator) 操作符将数组暂时转换回表
+
+```sql
+WITH Sequences AS
+ (SELECT [0, 1, 1, 2, 3, 5] AS some_numbers
+ UNION ALL SELECT [2, 4, 8, 16, 32] AS some_numbers
+ UNION ALL SELECT [5, 10] AS some_numbers)
+SELECT
+ ARRAY(SELECT x * 2
+ FROM UNNEST(some_numbers) AS x
+ WHERE x < 5) AS doubled_less_than_five
+FROM Sequences;
+
+/*------------------------*
+ | doubled_less_than_five |
+ +------------------------+
+ | [0, 2, 2, 4, 6] |
+ | [4, 8] |
+ | [] |
+ *------------------------*/
+```
+
+_ClickHouse_
+
+[arrayFilter](/sql-reference/functions/array-functions#arrayFilter) 函数
+
+```sql
+WITH Sequences AS
+ (
+ SELECT [0, 1, 1, 2, 3, 5] AS some_numbers
+ UNION ALL
+ SELECT [2, 4, 8, 16, 32] AS some_numbers
+ UNION ALL
+ SELECT [5, 10] AS some_numbers
+ )
+SELECT arrayMap(x -> (x * 2), arrayFilter(x -> (x < 5), some_numbers)) AS doubled_less_than_five
+FROM Sequences;
+ ┌─doubled_less_than_five─┐
+1. │ [0,2,2,4,6] │
+ └────────────────────────┘
+ ┌─doubled_less_than_five─┐
+2. │ [] │
+ └────────────────────────┘
+ ┌─doubled_less_than_five─┐
+3. │ [4,8] │
+ └────────────────────────┘
+```
+
+**压缩数组**
+
+_BigQuery_
+
+需要通过 [`UNNEST`](https://cloud.google.com/bigquery/docs/reference/standard-sql/query-syntax#unnest_operator) 操作符将数组暂时转换回表
+
+```sql
+WITH
+ Combinations AS (
+ SELECT
+ ['a', 'b'] AS letters,
+ [1, 2, 3] AS numbers
+ )
+SELECT
+ ARRAY(
+ SELECT AS STRUCT
+ letters[SAFE_OFFSET(index)] AS letter,
+ numbers[SAFE_OFFSET(index)] AS number
+ FROM Combinations
+ CROSS JOIN
+ UNNEST(
+ GENERATE_ARRAY(
+ 0,
+ LEAST(ARRAY_LENGTH(letters), ARRAY_LENGTH(numbers)) - 1)) AS index
+ ORDER BY index
+ );
+
+/*------------------------------*
+ | pairs |
+ +------------------------------+
+ | [{ letter: "a", number: 1 }, |
+ | { letter: "b", number: 2 }] |
+ *------------------------------*/
+```
+
+_ClickHouse_
+
+[arrayZip](/sql-reference/functions/array-functions#arrayZip) 函数
+
+```sql
+WITH Combinations AS
+ (
+ SELECT
+ ['a', 'b'] AS letters,
+ [1, 2, 3] AS numbers
+ )
+SELECT arrayZip(letters, arrayResize(numbers, length(letters))) AS pairs
+FROM Combinations;
+ ┌─pairs─────────────┐
+1. │ [('a',1),('b',2)] │
+ └───────────────────┘
+```
+
+**聚合数组**
+
+_BigQuery_
+
+需要通过 [`UNNEST`](https://cloud.google.com/bigquery/docs/reference/standard-sql/query-syntax#unnest_operator) 操作符将数组转换回表
+
+```sql
+WITH Sequences AS
+ (SELECT [0, 1, 1, 2, 3, 5] AS some_numbers
+ UNION ALL SELECT [2, 4, 8, 16, 32] AS some_numbers
+ UNION ALL SELECT [5, 10] AS some_numbers)
+SELECT some_numbers,
+ (SELECT SUM(x)
+ FROM UNNEST(s.some_numbers) AS x) AS sums
+FROM Sequences AS s;
+
+/*--------------------+------*
+ | some_numbers | sums |
+ +--------------------+------+
+ | [0, 1, 1, 2, 3, 5] | 12 |
+ | [2, 4, 8, 16, 32] | 62 |
+ | [5, 10] | 15 |
+ *--------------------+------*/
+```
+
+_ClickHouse_
+
+[arraySum](/sql-reference/functions/array-functions#arraySum)、[arrayAvg](/sql-reference/functions/array-functions#arrayAvg) 等函数,或任何超过 90 个现有聚合函数名称作为 [arrayReduce](/sql-reference/functions/array-functions#arrayReduce) 函数的参数
+
+```sql
+WITH Sequences AS
+ (
+ SELECT [0, 1, 1, 2, 3, 5] AS some_numbers
+ UNION ALL
+ SELECT [2, 4, 8, 16, 32] AS some_numbers
+ UNION ALL
+ SELECT [5, 10] AS some_numbers
+ )
+SELECT
+ some_numbers,
+ arraySum(some_numbers) AS sums
+FROM Sequences;
+ ┌─some_numbers──┬─sums─┐
+1. │ [0,1,1,2,3,5] │ 12 │
+ └───────────────┴──────┘
+ ┌─some_numbers──┬─sums─┐
+2. │ [2,4,8,16,32] │ 62 │
+ └───────────────┴──────┘
+ ┌─some_numbers─┬─sums─┐
+3. │ [5,10] │ 15 │
+ └──────────────┴──────┘
+```
diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/cloud/onboard/02_migrate/01_migration_guides/03_bigquery/01_overview.md.hash b/i18n/zh/docusaurus-plugin-content-docs/current/cloud/onboard/02_migrate/01_migration_guides/03_bigquery/01_overview.md.hash
new file mode 100644
index 00000000000..374a436f9da
--- /dev/null
+++ b/i18n/zh/docusaurus-plugin-content-docs/current/cloud/onboard/02_migrate/01_migration_guides/03_bigquery/01_overview.md.hash
@@ -0,0 +1 @@
+18ae7424166a08ea
diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/cloud/onboard/02_migrate/01_migration_guides/03_bigquery/02_migrating-to-clickhouse-cloud.md b/i18n/zh/docusaurus-plugin-content-docs/current/cloud/onboard/02_migrate/01_migration_guides/03_bigquery/02_migrating-to-clickhouse-cloud.md
new file mode 100644
index 00000000000..545fdc5c903
--- /dev/null
+++ b/i18n/zh/docusaurus-plugin-content-docs/current/cloud/onboard/02_migrate/01_migration_guides/03_bigquery/02_migrating-to-clickhouse-cloud.md
@@ -0,0 +1,533 @@
+---
+'title': '从 BigQuery 迁移到 ClickHouse Cloud'
+'slug': '/migrations/bigquery/migrating-to-clickhouse-cloud'
+'description': '如何将您的数据从 BigQuery 迁移到 ClickHouse Cloud'
+'keywords':
+- 'BigQuery'
+'show_related_blogs': true
+'sidebar_label': '迁移指南'
+'doc_type': 'guide'
+---
+
+import bigquery_2 from '@site/static/images/migrations/bigquery-2.png';
+import bigquery_3 from '@site/static/images/migrations/bigquery-3.png';
+import bigquery_4 from '@site/static/images/migrations/bigquery-4.png';
+import bigquery_5 from '@site/static/images/migrations/bigquery-5.png';
+import bigquery_6 from '@site/static/images/migrations/bigquery-6.png';
+import bigquery_7 from '@site/static/images/migrations/bigquery-7.png';
+import bigquery_8 from '@site/static/images/migrations/bigquery-8.png';
+import bigquery_9 from '@site/static/images/migrations/bigquery-9.png';
+import bigquery_10 from '@site/static/images/migrations/bigquery-10.png';
+import bigquery_11 from '@site/static/images/migrations/bigquery-11.png';
+import bigquery_12 from '@site/static/images/migrations/bigquery-12.png';
+import Image from '@theme/IdealImage';
+
+## 为什么选择 ClickHouse Cloud 而不是 BigQuery? {#why-use-clickhouse-cloud-over-bigquery}
+
+简而言之:因为 ClickHouse 在现代数据分析方面比 BigQuery 更快、更便宜、更强大:
+
+
+
+## 从 BigQuery 加载数据到 ClickHouse Cloud {#loading-data-from-bigquery-to-clickhouse-cloud}
+
+### 数据集 {#dataset}
+
+作为从 BigQuery 迁移到 ClickHouse Cloud 的典型示例数据集,我们使用 Stack Overflow 数据集,该数据集的详细信息记录在 [这里](/getting-started/example-datasets/stackoverflow)。这包含了从 2008 年到 2024 年 4 月在 Stack Overflow 上发生的每个 `post`、`vote`、`user`、`comment` 和 `badge`。此数据的 BigQuery 架构如下所示:
+
+
+
+对于希望将此数据集填充到 BigQuery 实例中以测试迁移步骤的用户,我们在 GCS 存储桶中提供了这些表的 Parquet 格式数据,并且用于在 BigQuery 中创建和加载表的 DDL 命令可以在 [这里](https://pastila.nl/?003fd86b/2b93b1a2302cfee5ef79fd374e73f431#hVPC52YDsUfXg2eTLrBdbA==) 获取。
+
+### 迁移数据 {#migrating-data}
+
+在 BigQuery 和 ClickHouse Cloud 之间迁移数据主要分为两种工作负载类型:
+
+- **初始批量加载与定期更新** - 必须迁移初始数据集,并在设定的间隔(例如每日)进行定期更新。这里的更新通过重新发送已更改的行来处理,这些行通过可以用于比较的列(例如日期)进行识别。删除操作通过完整的定期数据集重新加载来处理。
+- **实时复制或 CDC** - 必须迁移初始数据集。对该数据集的更改必须在 ClickHouse 中近实时反映,只有几秒钟的延迟是可以接受的。这实际上是一种 [变更数据捕获 (CDC) 过程](https://en.wikipedia.org/wiki/Change_data_capture),其中 BigQuery 中的表必须与 ClickHouse 中的等效表同步,即在 BigQuery 表中插入、更新和删除的操作必须应用到 ClickHouse 中的相应表。
+
+#### 通过 Google Cloud Storage (GCS) 批量加载 {#bulk-loading-via-google-cloud-storage-gcs}
+
+BigQuery 支持将数据导出到 Google 的对象存储 (GCS)。对于我们的示例数据集:
+
+1. 将 7 个表导出到 GCS。相关的命令可在 [这里](https://pastila.nl/?014e1ae9/cb9b07d89e9bb2c56954102fd0c37abd#0Pzj52uPYeu1jG35nmMqRQ==) 获取。
+
+2. 将数据导入到 ClickHouse Cloud。为此,我们可以使用 [gcs 表函数](/sql-reference/table-functions/gcs)。DDL 和导入查询可以在 [这里](https://pastila.nl/?00531abf/f055a61cc96b1ba1383d618721059976#Wf4Tn43D3VCU5Hx7tbf1Qw==) 获取。请注意,由于 ClickHouse Cloud 实例由多个计算节点组成,因此我们使用的是 [s3Cluster 表函数](/sql-reference/table-functions/s3Cluster),而不是 `gcs` 表函数。这个函数也可以与 gcs 储存桶配合使用,并且 [利用 ClickHouse Cloud 服务的所有节点](https://clickhouse.com/blog/supercharge-your-clickhouse-data-loads-part1#parallel-servers) 进行并行数据加载。
+
+
+
+这种方法有许多优点:
+
+- BigQuery 导出功能支持导出数据子集的过滤器。
+- BigQuery 支持导出 [Parquet、Avro、JSON 和 CSV](https://cloud.google.com/bigquery/docs/exporting-data) 格式和几种 [压缩类型](https://cloud.google.com/bigquery/docs/exporting-data),所有这些都是 ClickHouse 支持的。
+- GCS 支持 [对象生命周期管理](https://cloud.google.com/storage/docs/lifecycle),允许在指定时间后删除已经导出并导入到 ClickHouse 的数据。
+- [Google 允许每天将高达 50TB 的数据免费导出到 GCS](https://cloud.google.com/bigquery/quotas#export_jobs)。用户只需支付 GCS 存储费用。
+- 导出会自动生成多个文件,每个文件的表数据最大为 1GB。这对 ClickHouse 很有利,因为它允许并行化导入。
+
+在尝试以下示例之前,我们建议用户查看 [导出所需的权限](https://cloud.google.com/bigquery/docs/exporting-data#required_permissions) 和 [本地性建议](https://cloud.google.com/bigquery/docs/exporting-data#data-locations),以最大化导出和导入性能。
+
+### 通过计划查询进行实时复制或 CDC {#real-time-replication-or-cdc-via-scheduled-queries}
+
+变更数据捕获 (CDC) 是确保两个数据库之间的表保持同步的过程。如果需要近实时处理更新和删除,这将复杂得多。一种方法是简单地使用 BigQuery 的 [计划查询功能](https://cloud.google.com/bigquery/docs/scheduling-queries) 定期安排导出。只要您能接受数据插入 ClickHouse 时的延迟,这种方法易于实现和维护。一个示例可以在 [这篇博客文章](https://clickhouse.com/blog/clickhouse-bigquery-migrating-data-for-realtime-queries#using-scheduled-queries) 中找到。
+
+## 设计模式 {#designing-schemas}
+
+Stack Overflow 数据集包含多个相关表。我们建议首先重点迁移主表。这可能不一定是最大的表,而是期望收到最多分析查询的表。这将使您熟悉主要的 ClickHouse 概念。此表可能需要重新建模,因为在添加其他表以充分利用 ClickHouse 特性并获得最佳性能时,可能会涉及到额外的建模过程。我们将在我们的 [数据建模文档](/data-modeling/schema-design#next-data-modeling-techniques) 中探讨这个建模过程。
+
+遵循这一原则,我们首先关注主 `posts` 表。其 BigQuery 架构如下所示:
+
+```sql
+CREATE TABLE stackoverflow.posts (
+ id INTEGER,
+ posttypeid INTEGER,
+ acceptedanswerid STRING,
+ creationdate TIMESTAMP,
+ score INTEGER,
+ viewcount INTEGER,
+ body STRING,
+ owneruserid INTEGER,
+ ownerdisplayname STRING,
+ lasteditoruserid STRING,
+ lasteditordisplayname STRING,
+ lasteditdate TIMESTAMP,
+ lastactivitydate TIMESTAMP,
+ title STRING,
+ tags STRING,
+ answercount INTEGER,
+ commentcount INTEGER,
+ favoritecount INTEGER,
+ conentlicense STRING,
+ parentid STRING,
+ communityowneddate TIMESTAMP,
+ closeddate TIMESTAMP
+);
+```
+
+### 优化类型 {#optimizing-types}
+
+根据 [这里描述的过程](/data-modeling/schema-design),我们得到了以下架构:
+
+```sql
+CREATE TABLE stackoverflow.posts
+(
+ `Id` Int32,
+ `PostTypeId` Enum('Question' = 1, 'Answer' = 2, 'Wiki' = 3, 'TagWikiExcerpt' = 4, 'TagWiki' = 5, 'ModeratorNomination' = 6, 'WikiPlaceholder' = 7, 'PrivilegeWiki' = 8),
+ `AcceptedAnswerId` UInt32,
+ `CreationDate` DateTime,
+ `Score` Int32,
+ `ViewCount` UInt32,
+ `Body` String,
+ `OwnerUserId` Int32,
+ `OwnerDisplayName` String,
+ `LastEditorUserId` Int32,
+ `LastEditorDisplayName` String,
+ `LastEditDate` DateTime,
+ `LastActivityDate` DateTime,
+ `Title` String,
+ `Tags` String,
+ `AnswerCount` UInt16,
+ `CommentCount` UInt8,
+ `FavoriteCount` UInt8,
+ `ContentLicense`LowCardinality(String),
+ `ParentId` String,
+ `CommunityOwnedDate` DateTime,
+ `ClosedDate` DateTime
+)
+ENGINE = MergeTree
+ORDER BY tuple()
+COMMENT 'Optimized types'
+```
+
+我们可以通过简单的 [`INSERT INTO SELECT`](/sql-reference/statements/insert-into) 将数据填充到该表中,从 gcs 中读取导出的数据,并使用 [`gcs` 表函数](/sql-reference/table-functions/gcs)。请注意,在 ClickHouse Cloud 上,您还可以使用与 gcs 兼容的 [`s3Cluster` 表函数](/sql-reference/table-functions/s3Cluster) 在多个节点上并行加载:
+
+```sql
+INSERT INTO stackoverflow.posts SELECT * FROM gcs( 'gs://clickhouse-public-datasets/stackoverflow/parquet/posts/*.parquet', NOSIGN);
+```
+
+在我们的新架构中不会保留任何 null 值。上述插入隐式地将这些值转换为各自类型的默认值 - 整数为 0,字符串为空值。ClickHouse 还会自动将任何数字转换为目标精度。
+
+## ClickHouse 的主键有何不同? {#how-are-clickhouse-primary-keys-different}
+
+如 [此处所述](/migrations/bigquery),与 BigQuery 类似,ClickHouse 不对表的主键列值强制执行唯一性。
+
+与 BigQuery 中的聚类类似,ClickHouse 表的数据按主键列的顺序存储在磁盘上。查询优化器利用这种排序顺序来防止重新排序,最小化连接的内存使用,并为限制子句启用短路处理。
+与 BigQuery 相比,ClickHouse 自动创建基于主键列值的 [(稀疏)主索引](/guides/best-practices/sparse-primary-indexes)。这个索引用于加速所有包含对主键列过滤的查询。具体而言:
+
+- 内存和磁盘效率对 ClickHouse 通常使用的规模至关重要。数据以称为 parts 的块写入 ClickHouse 表,合并规则在后台应用。每个 part 都有自己主索引,当部分合并时,合并后的主索引也会合并。要注意,这些索引并不是为每一行构建的。相反,part 的主索引每组行有一个索引条目 - 这种技术称为稀疏索引。
+- 稀疏索引成为可能是因为 ClickHouse 将 part 的行按指定键的顺序存储在磁盘上。与直接定位单行(如基于 B-Tree 的索引)不同,稀疏主索引用于快速(通过二进制搜索索引条目)识别可能与查询匹配的行组。定位到的可能匹配的行组随后被并行流入 ClickHouse 引擎以查找匹配项。该索引设计使得主索引可以较小(完全适合主存储器),同时仍显著加快查询执行时间,尤其是典型于数据分析用例的范围查询。有关更多详细信息,我们建议阅读 [这篇深入的指南](/guides/best-practices/sparse-primary-indexes)。
+
+
+
+在 ClickHouse 中选择的主键不仅将决定索引,还将决定数据在磁盘上的写入顺序。因此,这可能会大幅影响压缩水平,而这又会影响查询性能。导致大多数列的值以连续顺序写入的排序键将允许所选择的压缩算法(和编码)更有效地压缩数据。
+
+> 表中的所有列将根据指定的排序键值排序,无论它们是否包含在键中。例如,如果将 `CreationDate` 用作键,则所有其他列中的值的顺序将与 `CreationDate` 列中的值的顺序相对应。可以指定多个排序键,排序方式与 `SELECT` 查询中的 `ORDER BY` 子句具有相同的语义。
+
+### 选择排序键 {#choosing-an-ordering-key}
+
+有关选择排序键的考虑和步骤,使用帖子表作为示例,请参见 [此处](/data-modeling/schema-design#choosing-an-ordering-key)。
+
+## 数据建模技术 {#data-modeling-techniques}
+
+我们建议从 BigQuery 迁移的用户阅读 [ClickHouse 中建模数据的指南](/data-modeling/schema-design)。该指南使用相同的 Stack Overflow 数据集,并探讨使用 ClickHouse 特性的多种方法。
+
+### 分区 {#partitions}
+
+BigQuery 用户将熟悉通过将表划分为称为分区的小块来增强大型数据库性能和可管理性的表分区概念。这种分区可以通过对指定列(例如日期)进行范围划分、定义列表或根据某个键进行哈希来实现。这使得管理员能够根据特定标准(例如日期范围或地理位置)组织数据。
+
+分区通过启用更快的数据访问(通过分区裁剪)和更有效的索引来帮助改善查询性能。它还通过允许在单个分区上进行操作(而不是整个表)来帮助维护任务,如备份和数据清除。此外,分区可以通过将负载分散到多个分区来显著提高 BigQuery 数据库的可扩展性。
+
+在 ClickHouse 中,分区在通过 [`PARTITION BY`](/engines/table-engines/mergetree-family/custom-partitioning-key) 子句初始定义表时指定。该子句可以包含针对任何列的 SQL 表达式,其结果将定义一个行被发送到哪个分区。
+
+
+
+数据部分在磁盘上与每个分区逻辑上关联,并可以单独查询。下面的示例中,我们通过使用表达式 [`toYear(CreationDate)`](/sql-reference/functions/date-time-functions#toYear) 按年份对 posts 表进行分区。当行被插入到 ClickHouse 中时,将对每行评估该表达式 - 然后将行路由到该分区中的新数据部分。
+
+```sql
+CREATE TABLE posts
+(
+ `Id` Int32 CODEC(Delta(4), ZSTD(1)),
+ `PostTypeId` Enum8('Question' = 1, 'Answer' = 2, 'Wiki' = 3, 'TagWikiExcerpt' = 4, 'TagWiki' = 5, 'ModeratorNomination' = 6, 'WikiPlaceholder' = 7, 'PrivilegeWiki' = 8),
+ `AcceptedAnswerId` UInt32,
+ `CreationDate` DateTime64(3, 'UTC'),
+...
+ `ClosedDate` DateTime64(3, 'UTC')
+)
+ENGINE = MergeTree
+ORDER BY (PostTypeId, toDate(CreationDate), CreationDate)
+PARTITION BY toYear(CreationDate)
+```
+
+#### 应用 {#applications}
+
+在 ClickHouse 中的分区与在 BigQuery 中有类似的应用,但有一些微妙的差异。更具体地说:
+
+- **数据管理** - 在 ClickHouse 中,用户应主要考虑将分区视为数据管理特性,而非查询优化技术。通过基于某个键在逻辑上分隔数据,每个分区可以独立操作,例如删除。这允许用户高效地在存储层之间移动分区,从而在时间上或 [过期数据/高效删除集群](https://sql-reference/statements/alter/partition) 中进行操作。例如,下面我们删除 2008 年的帖子:
+
+```sql
+SELECT DISTINCT partition
+FROM system.parts
+WHERE `table` = 'posts'
+
+┌─partition─┐
+│ 2008 │
+│ 2009 │
+│ 2010 │
+│ 2011 │
+│ 2012 │
+│ 2013 │
+│ 2014 │
+│ 2015 │
+│ 2016 │
+│ 2017 │
+│ 2018 │
+│ 2019 │
+│ 2020 │
+│ 2021 │
+│ 2022 │
+│ 2023 │
+│ 2024 │
+└───────────┘
+
+17 rows in set. Elapsed: 0.002 sec.
+
+ALTER TABLE posts
+(DROP PARTITION '2008')
+
+Ok.
+
+0 rows in set. Elapsed: 0.103 sec.
+```
+
+- **查询优化** - 虽然分区可以帮助查询性能,但这在很大程度上依赖于访问模式。如果查询仅针对少数几个分区(理想情况下为一个),则性能可能会提高。仅在分区键不在主键中时并且您以其为过滤条件时,这通常才有用。然而,需要覆盖多个分区的查询可能会比不使用分区的情况表现更差(因为分区的结果可能产生更多的部分)。如果分区键已经是主键中的早期条目,则对单个分区的目标的好处也会微乎其微。分区还可以用于 [优化 `GROUP BY` 查询](/engines/table-engines/mergetree-family/custom-partitioning-key#group-by-optimisation-using-partition-key),如果每个分区中的值是唯一的。然而,通常情况下,用户应确保主键是经过优化的,仅在访问模式访问特定可预测子集的极少数情况中考虑分区作为查询优化技术,例如按天分区,而大多数查询在最后一天进行。
+
+#### 建议 {#recommendations}
+
+用户应将分区视为数据管理技术。当需要从集群中过期数据时,它是理想的,尤其是在处理时间序列数据时,例如:最旧的分区可以 [直接删除](/sql-reference/statements/alter/partition#drop-partitionpart)。
+
+重要提示:确保您的分区键表达式不会导致高基数集,即应避免创建超过 100 个分区。例如,不要根据客户端标识符或名称等高基数列来分区数据。相反,将客户端标识符或名称作为 `ORDER BY` 表达式中的第一列。
+
+> 内部,ClickHouse [为插入数据创建部分](/guides/best-practices/sparse-primary-indexes#clickhouse-index-design)。随着数据的不断插入,部分的数量会增加。为了防止过高数量的部分导致查询性能下降(因为需要读取更多文件),部分会在后台异步处理的过程中进行合并。如果部分的数量超过 [预配置限制](/operations/settings/merge-tree-settings#parts_to_throw_insert),则 ClickHouse 将在插入时抛出异常,提示为 ["太多部分" 错误](/knowledgebase/exception-too-many-parts)。在正常操作下,这种情况不应发生,只有在 ClickHouse 配置错误或使用不当(例如,多个小插入)时才会发生。由于部分是在每个分区中独立创建的,增加分区的数量会导致部分数量增加,即是分区数量的乘数。因此,高基数的分区键可能导致此错误,应该避免。
+
+## 物化视图与投影 {#materialized-views-vs-projections}
+
+ClickHouse 的投影概念允许用户为表指定多个 `ORDER BY` 子句。
+
+在 [ClickHouse 数据建模](/data-modeling/schema-design) 中,我们探讨了如何使用物化视图在 ClickHouse 中进行预计算聚合、转换行,并为不同的访问模式优化查询。对于后者,我们 [提供了示例](/materialized-view/incremental-materialized-view#lookup-table),其中物化视图将行发送到具有不同排序键的目标表,而不是接收插入的原始表。
+
+例如,考虑以下查询:
+
+```sql
+SELECT avg(Score)
+FROM comments
+WHERE UserId = 8592047
+
+ ┌──────────avg(Score)─┐
+ │ 0.18181818181818182 │
+ └─────────────────────┘
+--highlight-next-line
+1 row in set. Elapsed: 0.040 sec. Processed 90.38 million rows, 361.59 MB (2.25 billion rows/s., 9.01 GB/s.)
+Peak memory usage: 201.93 MiB.
+```
+
+此查询需要扫描所有 9000 万行(尽管很快),因为 `UserId` 不是排序键。以前我们通过使用物化视图作为 `PostId` 的查找来解决这个问题。同样的问题可以使用投影解决。以下命令添加具有 `ORDER BY user_id` 的投影。
+
+```sql
+ALTER TABLE comments ADD PROJECTION comments_user_id (
+SELECT * ORDER BY UserId
+)
+
+ALTER TABLE comments MATERIALIZE PROJECTION comments_user_id
+```
+
+请注意,我们必须先创建投影,然后将其物化。这个后续命令会导致数据在磁盘上以两种不同的排序存储两次。还可以在创建数据时定义投影,如下所示,并在数据插入时自动维护。
+
+```sql
+CREATE TABLE comments
+(
+ `Id` UInt32,
+ `PostId` UInt32,
+ `Score` UInt16,
+ `Text` String,
+ `CreationDate` DateTime64(3, 'UTC'),
+ `UserId` Int32,
+ `UserDisplayName` LowCardinality(String),
+ --highlight-begin
+ PROJECTION comments_user_id
+ (
+ SELECT *
+ ORDER BY UserId
+ )
+ --highlight-end
+)
+ENGINE = MergeTree
+ORDER BY PostId
+```
+
+如果通过 `ALTER` 命令创建投影,则在发出 `MATERIALIZE PROJECTION` 命令时,创建是异步的。用户可以通过以下查询确认此操作的进度,等待 `is_done=1`。
+
+```sql
+SELECT
+ parts_to_do,
+ is_done,
+ latest_fail_reason
+FROM system.mutations
+WHERE (`table` = 'comments') AND (command LIKE '%MATERIALIZE%')
+
+ ┌─parts_to_do─┬─is_done─┬─latest_fail_reason─┐
+1. │ 1 │ 0 │ │
+ └─────────────┴─────────┴────────────────────┘
+
+1 row in set. Elapsed: 0.003 sec.
+```
+
+如果我们重复上述查询,可以看到性能明显提高,代价是额外的存储空间。
+
+```sql
+SELECT avg(Score)
+FROM comments
+WHERE UserId = 8592047
+
+ ┌──────────avg(Score)─┐
+1. │ 0.18181818181818182 │
+ └─────────────────────┘
+--highlight-next-line
+1 row in set. Elapsed: 0.008 sec. Processed 16.36 thousand rows, 98.17 KB (2.15 million rows/s., 12.92 MB/s.)
+Peak memory usage: 4.06 MiB.
+```
+
+使用 [`EXPLAIN` 命令](/sql-reference/statements/explain),我们也确认了该投影被用于服务该查询:
+
+```sql
+EXPLAIN indexes = 1
+SELECT avg(Score)
+FROM comments
+WHERE UserId = 8592047
+
+ ┌─explain─────────────────────────────────────────────┐
+ 1. │ Expression ((Projection + Before ORDER BY)) │
+ 2. │ Aggregating │
+ 3. │ Filter │
+ 4. │ ReadFromMergeTree (comments_user_id) │
+ 5. │ Indexes: │
+ 6. │ PrimaryKey │
+ 7. │ Keys: │
+ 8. │ UserId │
+ 9. │ Condition: (UserId in [8592047, 8592047]) │
+10. │ Parts: 2/2 │
+11. │ Granules: 2/11360 │
+ └─────────────────────────────────────────────────────┘
+
+11 rows in set. Elapsed: 0.004 sec.
+```
+
+### 何时使用投影 {#when-to-use-projections}
+
+投影对新用户是一个有吸引力的特性,因为它们会随着数据的插入自动维护。此外,查询可以只发送到单个表,投影会在可能的情况下得到利用,从而加快响应时间。
+
+
+
+这与物化视图形成对比,后者用户必须选择适当的优化目标表或重写查询,具体取决于过滤器。这增加了用户应用的复杂性,从而增加了客户端的复杂性。
+
+尽管有这些优点,投影也带有一些固有的限制,用户应该意识到,因此应谨慎部署。有关更多详细信息,请参见 ["物化视图与投影"](/managing-data/materialized-views-versus-projections)。
+
+我们建议在以下情况下使用投影:
+
+- 需要对数据进行完全重新排序。虽然投影中的表达式理论上可以使用 `GROUP BY`,但物化视图对于维护聚合更有效。查询优化器也更可能利用那些使用简单重新排序的投影,即 `SELECT * ORDER BY x`。用户可以在此表达式中选择一组列,以减少存储占用。
+- 用户能接受附加的存储占用和双写数据的开销。测试插入速度的影响并 [评估存储开销](/data-compression/compression-in-clickhouse)。
+
+## 在 ClickHouse 中重写 BigQuery 查询 {#rewriting-bigquery-queries-in-clickhouse}
+
+以下提供了比较 BigQuery 和 ClickHouse 的示例查询。此列表旨在演示如何利用 ClickHouse 的特点显著简化查询。这些示例涉及完整的 Stack Overflow 数据集(截至 2024 年 4 月)。
+
+**(问题超过 10 条的)用户获得的最多阅读量:**
+
+_BigQuery_
+
+
+
+_ClickHouse_
+
+```sql
+SELECT
+ OwnerDisplayName,
+ sum(ViewCount) AS total_views
+FROM stackoverflow.posts
+WHERE (PostTypeId = 'Question') AND (OwnerDisplayName != '')
+GROUP BY OwnerDisplayName
+HAVING count() > 10
+ORDER BY total_views DESC
+LIMIT 5
+
+ ┌─OwnerDisplayName─┬─total_views─┐
+1. │ Joan Venge │ 25520387 │
+2. │ Ray Vega │ 21576470 │
+3. │ anon │ 19814224 │
+4. │ Tim │ 19028260 │
+5. │ John │ 17638812 │
+ └──────────────────┴─────────────┘
+
+5 rows in set. Elapsed: 0.076 sec. Processed 24.35 million rows, 140.21 MB (320.82 million rows/s., 1.85 GB/s.)
+Peak memory usage: 323.37 MiB.
+```
+
+**哪些标签获得的最多阅读量:**
+
+_BigQuery_
+
+
+
+
+
+_ClickHouse_
+
+```sql
+-- ClickHouse
+SELECT
+ arrayJoin(arrayFilter(t -> (t != ''), splitByChar('|', Tags))) AS tags,
+ sum(ViewCount) AS views
+FROM stackoverflow.posts
+GROUP BY tags
+ORDER BY views DESC
+LIMIT 5
+
+ ┌─tags───────┬──────views─┐
+1. │ javascript │ 8190916894 │
+2. │ python │ 8175132834 │
+3. │ java │ 7258379211 │
+4. │ c# │ 5476932513 │
+5. │ android │ 4258320338 │
+ └────────────┴────────────┘
+
+5 rows in set. Elapsed: 0.318 sec. Processed 59.82 million rows, 1.45 GB (188.01 million rows/s., 4.54 GB/s.)
+Peak memory usage: 567.41 MiB.
+```
+
+## 聚合函数 {#aggregate-functions}
+
+在可能的情况下,用户应利用 ClickHouse 的聚合函数。下面,我们展示了如何使用 [`argMax` 函数](/sql-reference/aggregate-functions/reference/argmax) 计算每年的最受欢迎问题。
+
+_BigQuery_
+
+
+
+
+
+_ClickHouse_
+
+```sql
+-- ClickHouse
+SELECT
+ toYear(CreationDate) AS Year,
+ argMax(Title, ViewCount) AS MostViewedQuestionTitle,
+ max(ViewCount) AS MaxViewCount
+FROM stackoverflow.posts
+WHERE PostTypeId = 'Question'
+GROUP BY Year
+ORDER BY Year ASC
+FORMAT Vertical
+
+Row 1:
+──────
+Year: 2008
+MostViewedQuestionTitle: How to find the index for a given item in a list?
+MaxViewCount: 6316987
+
+Row 2:
+──────
+Year: 2009
+MostViewedQuestionTitle: How do I undo the most recent local commits in Git?
+MaxViewCount: 13962748
+
+...
+
+Row 16:
+───────
+Year: 2023
+MostViewedQuestionTitle: How do I solve "error: externally-managed-environment" every time I use pip 3?
+MaxViewCount: 506822
+
+Row 17:
+───────
+Year: 2024
+MostViewedQuestionTitle: Warning "Third-party cookie will be blocked. Learn more in the Issues tab"
+MaxViewCount: 66975
+
+17 rows in set. Elapsed: 0.225 sec. Processed 24.35 million rows, 1.86 GB (107.99 million rows/s., 8.26 GB/s.)
+Peak memory usage: 377.26 MiB.
+```
+
+## 条件和数组 {#conditionals-and-arrays}
+
+条件和数组函数使查询变得更加简单。以下查询计算了 2022 年到 2023 年间发生的标签(出现超过 10000 次)的最大百分比增长。请注意,由于条件、数组函数以及在 `HAVING` 和 `SELECT` 子句中重用别名的能力,以下 ClickHouse 查询简洁明了。
+
+_BigQuery_
+
+
+
+_ClickHouse_
+
+```sql
+SELECT
+ arrayJoin(arrayFilter(t -> (t != ''), splitByChar('|', Tags))) AS tag,
+ countIf(toYear(CreationDate) = 2023) AS count_2023,
+ countIf(toYear(CreationDate) = 2022) AS count_2022,
+ ((count_2023 - count_2022) / count_2022) * 100 AS percent_change
+FROM stackoverflow.posts
+WHERE toYear(CreationDate) IN (2022, 2023)
+GROUP BY tag
+HAVING (count_2022 > 10000) AND (count_2023 > 10000)
+ORDER BY percent_change DESC
+LIMIT 5
+
+┌─tag─────────┬─count_2023─┬─count_2022─┬──────percent_change─┐
+│ next.js │ 13788 │ 10520 │ 31.06463878326996 │
+│ spring-boot │ 16573 │ 17721 │ -6.478189718413183 │
+│ .net │ 11458 │ 12968 │ -11.644046884639112 │
+│ azure │ 11996 │ 14049 │ -14.613139725247349 │
+│ docker │ 13885 │ 16877 │ -17.72826924216389 │
+└─────────────┴────────────┴────────────┴─────────────────────┘
+
+5 rows in set. Elapsed: 0.096 sec. Processed 5.08 million rows, 155.73 MB (53.10 million rows/s., 1.63 GB/s.)
+Peak memory usage: 410.37 MiB.
+```
+
+这就是我们为从 BigQuery 迁移到 ClickHouse 的用户提供的基本指南。我们建议从 BigQuery 迁移的用户阅读 [ClickHouse 中建模数据的指南](/data-modeling/schema-design),以了解更多高级 ClickHouse 功能。
diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/cloud/onboard/02_migrate/01_migration_guides/03_bigquery/02_migrating-to-clickhouse-cloud.md.hash b/i18n/zh/docusaurus-plugin-content-docs/current/cloud/onboard/02_migrate/01_migration_guides/03_bigquery/02_migrating-to-clickhouse-cloud.md.hash
new file mode 100644
index 00000000000..97f2cb2d25f
--- /dev/null
+++ b/i18n/zh/docusaurus-plugin-content-docs/current/cloud/onboard/02_migrate/01_migration_guides/03_bigquery/02_migrating-to-clickhouse-cloud.md.hash
@@ -0,0 +1 @@
+70fc47f9883ee418
diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/cloud/onboard/02_migrate/01_migration_guides/03_bigquery/03_loading-data.md b/i18n/zh/docusaurus-plugin-content-docs/current/cloud/onboard/02_migrate/01_migration_guides/03_bigquery/03_loading-data.md
new file mode 100644
index 00000000000..1eab3c49dca
--- /dev/null
+++ b/i18n/zh/docusaurus-plugin-content-docs/current/cloud/onboard/02_migrate/01_migration_guides/03_bigquery/03_loading-data.md
@@ -0,0 +1,140 @@
+---
+'sidebar_label': '加载数据'
+'title': '从 BigQuery 加载数据到 ClickHouse'
+'slug': '/migrations/bigquery/loading-data'
+'description': '如何从 BigQuery 加载数据到 ClickHouse'
+'keywords':
+- 'migrate'
+- 'migration'
+- 'migrating'
+- 'data'
+- 'etl'
+- 'elt'
+- 'BigQuery'
+'doc_type': 'guide'
+---
+
+_本指南兼容 ClickHouse Cloud 以及自管理的 ClickHouse v23.5+。_
+
+本指南展示了如何将数据从 [BigQuery](https://cloud.google.com/bigquery) 迁移到 ClickHouse。
+
+我们首先将一个表导出到 [Google 的对象存储 (GCS)](https://cloud.google.com/storage),然后将该数据导入到 [ClickHouse Cloud](https://clickhouse.com/cloud)。这些步骤需要为您希望从 BigQuery 导出到 ClickHouse 的每个表重复。
+
+## 将数据导出到 ClickHouse 需要多长时间? {#how-long-will-exporting-data-to-clickhouse-take}
+
+从 BigQuery 导出数据到 ClickHouse 的时间取决于您的数据集大小。作为比较,使用本指南从 BigQuery 导出 [4TB 的公开以太坊数据集](https://cloud.google.com/blog/products/data-analytics/ethereum-bigquery-public-dataset-smart-contract-analytics) 到 ClickHouse 大约需要一个小时。
+
+| 表 | 行数 | 导出文件数 | 数据大小 | BigQuery 导出 | 槽时间 | ClickHouse 导入 |
+| ------------------------------------------------------------------------------------------------- | ------------- | -------------- | --------- | --------------- | --------------- | ----------------- |
+| [blocks](https://github.com/ClickHouse/examples/blob/main/ethereum/schemas/blocks.md) | 16,569,489 | 73 | 14.53GB | 23秒 | 37分钟 | 15.4秒 |
+| [transactions](https://github.com/ClickHouse/examples/blob/main/ethereum/schemas/transactions.md) | 1,864,514,414 | 5169 | 957GB | 1分钟 38秒 | 1天 8小时 | 18分钟 5秒 |
+| [traces](https://github.com/ClickHouse/examples/blob/main/ethereum/schemas/traces.md) | 6,325,819,306 | 17,985 | 2.896TB | 5分钟 46秒 | 5天 19小时 | 34分钟 55秒 |
+| [contracts](https://github.com/ClickHouse/examples/blob/main/ethereum/schemas/contracts.md) | 57,225,837 | 350 | 45.35GB | 16秒 | 1小时 51分钟 | 39.4秒 |
+| 总计 | 82.6亿 | 23,577 | 3.982TB | 8分钟 3秒 | \> 6天 5小时 | 53分钟 45秒 |
+
+
+
+## 将表数据导出到 GCS {#1-export-table-data-to-gcs}
+
+在此步骤中,我们利用 [BigQuery SQL 工作区](https://cloud.google.com/bigquery/docs/bigquery-web-ui) 执行我们的 SQL 命令。下面,我们使用 [`EXPORT DATA`](https://cloud.google.com/bigquery/docs/reference/standard-sql/other-statements) 语句将 BigQuery 表 `mytable` 导出到 GCS 存储桶。
+
+```sql
+DECLARE export_path STRING;
+DECLARE n INT64;
+DECLARE i INT64;
+SET i = 0;
+
+-- We recommend setting n to correspond to x billion rows. So 5 billion rows, n = 5
+SET n = 100;
+
+WHILE i < n DO
+ SET export_path = CONCAT('gs://mybucket/mytable/', i,'-*.parquet');
+ EXPORT DATA
+ OPTIONS (
+ uri = export_path,
+ format = 'PARQUET',
+ overwrite = true
+ )
+ AS (
+ SELECT * FROM mytable WHERE export_id = i
+ );
+ SET i = i + 1;
+END WHILE;
+```
+
+在上述查询中,我们将 BigQuery 表导出为 [Parquet 数据格式](https://parquet.apache.org/)。我们在 `uri` 参数中具有 `*` 字符。这确保如果导出的数据超过 1GB,输出将分片为多个文件,并且具有递增的数字后缀。
+
+这种方法有多个优点:
+
+- Google 允许每天最多将 50TB 数据免费导出到 GCS。用户仅需为 GCS 存储付费。
+- 导出会自动生成多个文件,限制每个文件最大为 1GB 的表数据。这对 ClickHouse 有好处,因为它允许导入并行化。
+- Parquet 作为一种列式格式,提供了更好的交换格式,因为它本质上是压缩的,BigQuery 导出和 ClickHouse 查询的速度更快。
+
+## 从 GCS 导入数据到 ClickHouse {#2-importing-data-into-clickhouse-from-gcs}
+
+一旦导出完成,我们可以将这些数据导入到 ClickHouse 表中。您可以使用 [ClickHouse SQL 控制台](/integrations/sql-clients/sql-console) 或 [`clickhouse-client`](/interfaces/cli) 执行以下命令。
+
+您必须先在 ClickHouse 中 [创建表](/sql-reference/statements/create/table):
+
+```sql
+-- If your BigQuery table contains a column of type STRUCT, you must enable this setting
+-- to map that column to a ClickHouse column of type Nested
+SET input_format_parquet_import_nested = 1;
+
+CREATE TABLE default.mytable
+(
+ `timestamp` DateTime64(6),
+ `some_text` String
+)
+ENGINE = MergeTree
+ORDER BY (timestamp);
+```
+
+创建表之后,如果您的集群中有多个 ClickHouse 副本,请启用设置 `parallel_distributed_insert_select` 来加速我们的导出。如果您只有一个 ClickHouse 节点,则可以跳过此步骤:
+
+```sql
+SET parallel_distributed_insert_select = 1;
+```
+
+最后,我们可以使用 [`INSERT INTO SELECT` 命令](/sql-reference/statements/insert-into#inserting-the-results-of-select) 将 GCS 中的数据插入到 ClickHouse 表中,该命令基于 `SELECT` 查询的结果将数据插入表中。
+
+为了检索要 `INSERT` 的数据,我们可以使用 [s3Cluster 函数](/sql-reference/table-functions/s3Cluster) 从我们的 GCS 存储桶中检索数据,因为 GCS 与 [Amazon S3](https://aws.amazon.com/s3/) 兼容。如果您只有一个 ClickHouse 节点,也可以使用 [s3 表函数](/sql-reference/table-functions/s3) 而不是 `s3Cluster` 函数。
+
+```sql
+INSERT INTO mytable
+SELECT
+ timestamp,
+ ifNull(some_text, '') AS some_text
+FROM s3Cluster(
+ 'default',
+ 'https://storage.googleapis.com/mybucket/mytable/*.parquet.gz',
+ '',
+ ''
+);
+```
+
+上述查询中使用的 `ACCESS_ID` 和 `SECRET` 是与您的 GCS 存储桶关联的 [HMAC 密钥](https://cloud.google.com/storage/docs/authentication/hmackeys)。
+
+:::note 使用 `ifNull` 导出 nullable 列
+在上述查询中,我们使用 [`ifNull` 函数](/sql-reference/functions/functions-for-nulls#ifNull) 在 `some_text` 列中插入数据到我们的 ClickHouse 表中,设置默认值。您也可以在 ClickHouse 中将列设置为 [`Nullable`](/sql-reference/data-types/nullable),但不建议这样做,因为可能会对性能产生负面影响。
+
+另外,您可以 `SET input_format_null_as_default=1`,任何缺失或 NULL 值将被替换为其各自列的默认值(如果已指定这些默认值)。
+:::
+
+## 测试数据导出是否成功 {#3-testing-successful-data-export}
+
+要测试您的数据是否正确插入,只需在您的新表上运行 `SELECT` 查询:
+
+```sql
+SELECT * FROM mytable LIMIT 10;
+```
+
+要导出更多的 BigQuery 表,只需为每个附加表重复上述步骤。
+
+
+
+## 进一步阅读和支持 {#further-reading-and-support}
+
+除了本指南外,我们还推荐阅读我们的博客文章,展示 [如何使用 ClickHouse 加速 BigQuery 以及如何处理增量导入](https://clickhouse.com/blog/clickhouse-bigquery-migrating-data-for-realtime-queries)。
+
+如果您在从 BigQuery 到 ClickHouse 传输数据时遇到问题,请随时通过 support@clickhouse.com 联系我们。
diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/cloud/onboard/02_migrate/01_migration_guides/03_bigquery/03_loading-data.md.hash b/i18n/zh/docusaurus-plugin-content-docs/current/cloud/onboard/02_migrate/01_migration_guides/03_bigquery/03_loading-data.md.hash
new file mode 100644
index 00000000000..b2c2ecc2b44
--- /dev/null
+++ b/i18n/zh/docusaurus-plugin-content-docs/current/cloud/onboard/02_migrate/01_migration_guides/03_bigquery/03_loading-data.md.hash
@@ -0,0 +1 @@
+c630731ca2f98fc5
diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/cloud/onboard/02_migrate/01_migration_guides/03_bigquery/index.md b/i18n/zh/docusaurus-plugin-content-docs/current/cloud/onboard/02_migrate/01_migration_guides/03_bigquery/index.md
new file mode 100644
index 00000000000..21eb151737f
--- /dev/null
+++ b/i18n/zh/docusaurus-plugin-content-docs/current/cloud/onboard/02_migrate/01_migration_guides/03_bigquery/index.md
@@ -0,0 +1,19 @@
+---
+'slug': '/migrations/bigquery'
+'title': 'BigQuery'
+'pagination_prev': null
+'pagination_next': null
+'description': 'BigQuery 迁移部分的着陆页'
+'keywords':
+- 'BigQuery'
+- 'migration'
+'doc_type': 'landing-page'
+---
+
+在本节文档中,了解 BigQuery 和 ClickHouse Cloud 之间的相似之处和不同之处,以及您可能想要迁移的原因和方法。
+
+| 页面 | 描述 |
+|-----------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------|
+| [BigQuery vs ClickHouse Cloud](/migrations/bigquery/biquery-vs-clickhouse-cloud) | ClickHouse Cloud 中资源的组织方式与 BigQuery 的资源层次结构相似。我们在本文中描述了具体的不同之处。 |
+| [从 BigQuery 迁移到 ClickHouse Cloud](/migrations/bigquery/migrating-to-clickhouse-cloud) | 了解您可能想要从 BigQuery 迁移到 ClickHouse Cloud 的原因。 |
+| [加载数据](/migrations/bigquery/loading-data) | 一份指南,向您展示如何将数据从 BigQuery 迁移到 ClickHouse。 |
diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/cloud/onboard/02_migrate/01_migration_guides/03_bigquery/index.md.hash b/i18n/zh/docusaurus-plugin-content-docs/current/cloud/onboard/02_migrate/01_migration_guides/03_bigquery/index.md.hash
new file mode 100644
index 00000000000..7b991a2e15b
--- /dev/null
+++ b/i18n/zh/docusaurus-plugin-content-docs/current/cloud/onboard/02_migrate/01_migration_guides/03_bigquery/index.md.hash
@@ -0,0 +1 @@
+c987d529f1791379
diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/cloud/onboard/02_migrate/01_migration_guides/04_snowflake/01_overview.md b/i18n/zh/docusaurus-plugin-content-docs/current/cloud/onboard/02_migrate/01_migration_guides/04_snowflake/01_overview.md
new file mode 100644
index 00000000000..0928b05d27d
--- /dev/null
+++ b/i18n/zh/docusaurus-plugin-content-docs/current/cloud/onboard/02_migrate/01_migration_guides/04_snowflake/01_overview.md
@@ -0,0 +1,69 @@
+---
+'sidebar_label': '概述'
+'slug': '/migrations/snowflake-overview'
+'description': '从 Snowflake 迁移到 ClickHouse'
+'keywords':
+- 'Snowflake'
+'title': '从 Snowflake 迁移到 ClickHouse'
+'show_related_blogs': true
+'doc_type': 'guide'
+---
+
+import snowflake_architecture from '@site/static/images/cloud/onboard/discover/use_cases/snowflake_architecture.png';
+import cloud_architecture from '@site/static/images/cloud/onboard/discover/use_cases/cloud_architecture.png';
+import Image from '@theme/IdealImage';
+
+
+# Snowflake 到 ClickHouse 的迁移
+
+> 本文档提供了从 Snowflake 迁移数据到 ClickHouse 的介绍。
+
+Snowflake 是一个以云数据仓库为主的产品,主要专注于将传统的本地数据仓库工作负载迁移到云端。它经过良好优化,能够在大规模环境中执行长时间运行的报告。随着数据集迁移到云端,数据拥有者开始思考如何从这些数据中提取更多价值,包括利用这些数据集来支撑内部和外部用例的实时应用。当这种情况发生时,他们通常意识到需要一个优化以处理实时分析的数据库,如 ClickHouse。
+
+## 比较 {#comparison}
+
+在本节中,我们将比较 ClickHouse 和 Snowflake 的主要特性。
+
+### 相似点 {#similarities}
+
+Snowflake 是一个基于云的数据仓库平台,提供一种可扩展和高效的解决方案,用于存储、处理和分析大量数据。与 ClickHouse 一样,Snowflake 不是建立在现有技术之上,而是依赖于其自己的 SQL 查询引擎和定制架构。
+
+Snowflake 的架构被描述为共享存储(shared-disk)架构和无共享架构(shared-nothing architecture)的混合体。共享存储架构是指数据可以通过对象存储(如 S3)从所有计算节点访问。无共享架构指的是每个计算节点在本地存储整个数据集的一部分以响应查询。理论上,这提供了两种模型的最佳性能:共享磁盘架构的简单性和无共享架构的可扩展性。
+
+该设计在根本上依赖于对象存储作为主要存储介质,这在并发访问下几乎无限扩展,同时提供高韧性和可扩展的吞吐量保证。
+
+下面的图像来源于 [docs.snowflake.com](https://docs.snowflake.com/en/user-guide/intro-key-concepts),展示了这种架构:
+
+
+
+相反,作为一个开源和云托管的产品,ClickHouse 可以在共享磁盘和无共享架构中进行部署。后者通常适用于自管理的部署。尽管允许 CPU 和内存易于扩展,但无共享配置引入了经典的数据管理挑战以及数据复制的开销,特别是在成员变化期间。
+
+因此,ClickHouse Cloud 采用了与 Snowflake 概念上类似的共享存储架构。数据在对象存储(单一副本)中仅存储一次,例如 S3 或 GCS,提供几乎无限的存储,并具备强大的冗余保证。每个节点可以访问这一单一数据副本以及其本地 SSD 用于缓存。节点可以进行扩展,以根据需要提供额外的 CPU 和内存资源。与 Snowflake 类似,S3 的可扩展性特性通过确保在集群中添加额外节点时不会影响当前节点的 I/O 吞吐量,解决了共享磁盘架构的经典限制(磁盘 I/O 和网络瓶颈)。
+
+
+
+### 不同点 {#differences}
+
+除了底层存储格式和查询引擎,这些架构在几个微妙的方面有所不同:
+
+* Snowflake 中的计算资源通过 [仓库](https://docs.snowflake.com/en/user-guide/warehouses) 的概念提供。这些仓库由多个节点组成,每个节点具有固定大小。虽然 Snowflake 并未公布其仓库的具体架构,但 [通常理解](https://select.dev/posts/snowflake-warehouse-sizing) 为每个节点由 8 个 vCPU、16GiB 和 200GB 的本地存储(用于缓存)组成。节点的数量取决于 T 恤尺码,例如超小型有一个节点,小型有两个, 中型有四个,大型有八个,等等。这些仓库与数据是独立的,可以用于查询位于对象存储上的任何数据库。当处于空闲状态且未承受查询负载时,仓库会暂停 - 一旦收到查询则恢复。虽然存储成本始终反映在账单中,但仓库仅在活跃时收取费用。
+
+* ClickHouse Cloud 采用类似的原则,使用带有本地缓存存储的节点。用户不是按 T 恤尺码进行部署,而是根据计算总量和可用 RAM 部署服务。这反过来在查询负载的基础上透明地进行自动扩展(在定义的限制内) - 通过增加(或减少)每个节点的资源进行垂直扩展,或通过增加/减少节点总数进行水平扩展。ClickHouse Cloud 节点目前具有 1:1 的 CPU 与内存比例,而 Snowflake 的比例为 1。虽然可以实现更松散的耦合,但服务目前与数据耦合,不像 Snowflake 的仓库那样。节点在空闲时也会暂停,并在受到查询时恢复。用户如有必要,也可以手动调整服务大小。
+
+* ClickHouse Cloud 的查询缓存目前是特定于节点的,而 Snowflake 的查询缓存是以独立于仓库的服务层提供的。根据基准测试,ClickHouse Cloud 的节点缓存性能优于 Snowflake 的。
+
+* Snowflake 和 ClickHouse Cloud 在扩展以增加查询并发性方面采取了不同的方法。Snowflake 通过一个称为 [多集群仓库](https://docs.snowflake.com/en/user-guide/warehouses-multicluster#benefits-of-multi-cluster-warehouses) 的功能来处理这个问题。该功能允许用户为仓库添加集群。虽然这不会改善查询延迟,但确实提供了额外的并行ization,并允许更高的查询并发性。ClickHouse 通过增加服务的内存和 CPU 进行垂直或水平扩展来实现这一点。我们在这篇博客中没有探讨这些服务在扩展到更高并发性方面的能力,而是集中于延迟,但承认这项工作应当进行,以便进行全面比较。然而,我们预计 ClickHouse 在任何并发测试中表现良好,而 Snowflake 在 [仓库默认情况下限制每个仓库的最大并发查询数为 8](https://docs.snowflake.com/en/sql-reference/parameters#max-concurrency-level)。相比之下,ClickHouse Cloud 允许每个节点执行多达 1000 个查询。
+
+* Snowflake 在数据集上切换计算大小的能力,加上仓库的快速恢复时间,使其在临时查询方面提供了出色的体验。对于数据仓库和数据湖用例,这提供了比其他系统更大的优势。
+
+### 实时分析 {#real-time-analytics}
+
+根据公开的 [基准](https://benchmark.clickhouse.com/#system=+%E2%98%81w|%EF%B8%8Fr|C%20c|nfe&type=-&machine=-ca2|gl|6ax|6ale|3al&cluster_size=-&opensource=-&tuned=+n&metric=hot&queries=-) 数据,ClickHouse 在以下领域的实时分析应用中优于 Snowflake:
+
+* **查询延迟**:即使在对表应用聚类以优化性能时,Snowflake 查询的查询延迟也更高。在我们的测试中,Snowflake 需要超过两倍的计算资源才能在对 Snowflake 聚类键或 ClickHouse 主键应用过滤器的查询中达到等效的 ClickHouse 性能。虽然 Snowflake 的 [持久查询缓存](https://docs.snowflake.com/en/user-guide/querying-persisted-results) 缓解了部分延迟挑战,但在过滤标准更加多样化的情况下效果不佳。这一查询缓存的有效性还会受到基础数据变化的影响,当表发生变化时,缓存条目会失效。尽管在我们应用的基准测试中并非如此,但实际部署需要插入新的、最近的数据。请注意,ClickHouse 的查询缓存是特定于节点的,并且不是 [事务一致的](https://clickhouse.com/blog/introduction-to-the-clickhouse-query-cache-and-design),因此对于实时分析 [更为合适](https://clickhouse.com/blog/introduction-to-the-clickhouse-query-cache-and-design)。用户还可以对其使用进行细粒度控制,可以在 [每个查询的基础上](https://operations/settings/settings#use_query_cache) 控制其使用、[精确大小](https://operations/settings/settings#query_cache_max_size_in_bytes)、是否 [缓存查询](https://operations/settings/settings#enable_writes_to_query_cache)(限制持续时间或需要的执行次数)以及是否仅 [被动使用](https://clickhouse.com/blog/introduction-to-the-clickhouse-query-cache-and-design#using-logs-and-settings)。
+
+* **更低的成本**:Snowflake 仓库可以配置为在查询不活跃时暂停。一旦暂停,将不会产生费用。实际上,这一非活动检查 [仅能降低到 60 秒](https://docs.snowflake.com/en/sql-reference/sql/alter-warehouse)。仓库在收到查询后会自动恢复,通常在几秒钟内完成。由于 Snowflake 只在仓库使用时对资源收取费用,这一行为非常适合于经常闲置的工作负载,例如临时查询。
+
+ 然而,许多实时分析工作负载需要持续的实时数据摄取和频繁的查询,这并不受益于闲置(如面向客户的仪表板)。这意味着仓库通常必须保持完全活跃并产生费用。这消除了闲置的成本效益以及可能与 Snowflake 能够更快恢复响应状态相关的任何性能优势。这种活跃状态的要求,加上 ClickHouse Cloud 在活跃状态下每秒的更低成本,导致 ClickHouse Cloud 在这类工作负载中提供显著更低的总成本。
+
+* **特征的可预测定价:** 在实时分析用例中,实现最高级别的性能所需的特征,例如物化视图和聚类(相当于 ClickHouse 的 ORDER BY),在 Snowflake 中会产生额外费用,要求不仅采用更高的等级,这导致每个信用的成本增加 1.5 倍,还有不可预测的后台费用。例如,物化视图会产生后台维护成本,聚类也是如此,这在使用之前是难以预测的。相比之下,这些特征在 ClickHouse Cloud 中没有额外成本,除了在插入时额外的 CPU 和内存使用,通常在插入工作负载较高的情况下才会显著。我们在基准测试中观察到,这些差异,加上更低的查询延迟和更高的压缩率,使得 ClickHouse 的成本显著降低。
diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/cloud/onboard/02_migrate/01_migration_guides/04_snowflake/01_overview.md.hash b/i18n/zh/docusaurus-plugin-content-docs/current/cloud/onboard/02_migrate/01_migration_guides/04_snowflake/01_overview.md.hash
new file mode 100644
index 00000000000..a0ef83b0f3e
--- /dev/null
+++ b/i18n/zh/docusaurus-plugin-content-docs/current/cloud/onboard/02_migrate/01_migration_guides/04_snowflake/01_overview.md.hash
@@ -0,0 +1 @@
+5397c3fe4e88cb9d
diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/cloud/onboard/02_migrate/01_migration_guides/04_snowflake/02_migration_guide.md b/i18n/zh/docusaurus-plugin-content-docs/current/cloud/onboard/02_migrate/01_migration_guides/04_snowflake/02_migration_guide.md
new file mode 100644
index 00000000000..a8b17ef6d47
--- /dev/null
+++ b/i18n/zh/docusaurus-plugin-content-docs/current/cloud/onboard/02_migrate/01_migration_guides/04_snowflake/02_migration_guide.md
@@ -0,0 +1,115 @@
+---
+'sidebar_label': '迁移指南'
+'slug': '/migrations/snowflake'
+'description': '从 Snowflake 迁移到 ClickHouse'
+'keywords':
+- 'Snowflake'
+'title': '从 Snowflake 迁移到 ClickHouse'
+'show_related_blogs': false
+'doc_type': 'guide'
+---
+
+import migrate_snowflake_clickhouse from '@site/static/images/migrations/migrate_snowflake_clickhouse.png';
+import Image from '@theme/IdealImage';
+
+
+# 从 Snowflake 迁移到 ClickHouse
+
+> 本指南将向您展示如何将数据从 Snowflake 迁移到 ClickHouse。
+
+在 Snowflake 和 ClickHouse 之间迁移数据需要使用对象存储,如 S3,作为传输的中间存储。迁移过程还依赖于使用 Snowflake 的 `COPY INTO` 命令和 ClickHouse 的 `INSERT INTO SELECT`。
+
+
+
+## 从 Snowflake 导出数据 {#1-exporting-data-from-snowflake}
+
+
+
+从 Snowflake 导出数据需要使用外部阶段,如上图所示。
+
+假设我们想要导出一个具有以下模式的 Snowflake 表:
+
+```sql
+CREATE TABLE MYDATASET (
+ timestamp TIMESTAMP,
+ some_text varchar,
+ some_file OBJECT,
+ complex_data VARIANT,
+) DATA_RETENTION_TIME_IN_DAYS = 0;
+```
+
+要将此表的数据转移到 ClickHouse 数据库中,我们首先需要将这些数据复制到外部阶段。在复制数据时,我们建议使用 Parquet 作为中间格式,因为它允许共享类型信息、保留精度、压缩效果良好,并原生支持分析中常见的嵌套结构。
+
+在下面的示例中,我们在 Snowflake 中创建一个命名文件格式来表示 Parquet 和所需的文件选项。然后,我们指定哪个存储桶将包含我们复制的数据集。最后,我们将数据集复制到存储桶中。
+
+```sql
+CREATE FILE FORMAT my_parquet_format TYPE = parquet;
+
+-- Create the external stage that specifies the S3 bucket to copy into
+CREATE OR REPLACE STAGE external_stage
+URL='s3://mybucket/mydataset'
+CREDENTIALS=(AWS_KEY_ID='' AWS_SECRET_KEY='')
+FILE_FORMAT = my_parquet_format;
+
+-- Apply "mydataset" prefix to all files and specify a max file size of 150mb
+-- The `header=true` parameter is required to get column names
+COPY INTO @external_stage/mydataset from mydataset max_file_size=157286400 header=true;
+```
+
+对于大约 5TB 的数据集,最大文件大小为 150MB,并使用位于 AWS `us-east-1` 区域的 2X-Large Snowflake 仓库,复制数据到 S3 存储桶大约需要 30 分钟。
+
+## 导入到 ClickHouse {#2-importing-to-clickhouse}
+
+一旦数据被暂存到中间对象存储中,可以使用 ClickHouse 函数,例如 [s3 表函数](/sql-reference/table-functions/s3),将数据插入到表中,如下所示。
+
+这个示例使用 AWS S3 的 [s3 表函数](/sql-reference/table-functions/s3),但是 [gcs 表函数](/sql-reference/table-functions/gcs) 可用于 Google Cloud Storage,而 [azureBlobStorage 表函数](/sql-reference/table-functions/azureBlobStorage) 可用于 Azure Blob Storage。
+
+假设以下表的目标模式:
+
+```sql
+CREATE TABLE default.mydataset
+(
+ `timestamp` DateTime64(6),
+ `some_text` String,
+ `some_file` Tuple(filename String, version String),
+ `complex_data` Tuple(name String, description String),
+)
+ENGINE = MergeTree
+ORDER BY (timestamp)
+```
+
+然后,我们可以使用 `INSERT INTO SELECT` 命令将 S3 中的数据插入到 ClickHouse 表中:
+
+```sql
+INSERT INTO mydataset
+SELECT
+ timestamp,
+ some_text,
+ JSONExtract(
+ ifNull(some_file, '{}'),
+ 'Tuple(filename String, version String)'
+ ) AS some_file,
+ JSONExtract(
+ ifNull(complex_data, '{}'),
+ 'Tuple(filename String, description String)'
+ ) AS complex_data,
+FROM s3('https://mybucket.s3.amazonaws.com/mydataset/mydataset*.parquet')
+SETTINGS input_format_null_as_default = 1, -- Ensure columns are inserted as default if values are null
+input_format_parquet_case_insensitive_column_matching = 1 -- Column matching between source data and target table should be case insensitive
+```
+
+:::note 嵌套列结构的注意事项
+原始 Snowflake 表模式中的 `VARIANT` 和 `OBJECT` 列默认将作为 JSON 字符串输出,迫使我们在插入到 ClickHouse 时对这些进行转换。
+
+诸如 `some_file` 这样的嵌套结构在复制时由 Snowflake 转换为 JSON 字符串。导入这些数据时,我们需要在 ClickHouse 插入时将这些结构转换为 Tuples,使用 [JSONExtract 函数](/sql-reference/functions/json-functions#JSONExtract),如上所示。
+:::
+
+## 测试成功的数据导出 {#3-testing-successful-data-export}
+
+要测试您的数据是否已正确插入,只需在新表上运行 `SELECT` 查询:
+
+```sql
+SELECT * FROM mydataset LIMIT 10;
+```
+
+
diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/cloud/onboard/02_migrate/01_migration_guides/04_snowflake/02_migration_guide.md.hash b/i18n/zh/docusaurus-plugin-content-docs/current/cloud/onboard/02_migrate/01_migration_guides/04_snowflake/02_migration_guide.md.hash
new file mode 100644
index 00000000000..5fe730f20d5
--- /dev/null
+++ b/i18n/zh/docusaurus-plugin-content-docs/current/cloud/onboard/02_migrate/01_migration_guides/04_snowflake/02_migration_guide.md.hash
@@ -0,0 +1 @@
+638bcf587ac97514
diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/cloud/onboard/02_migrate/01_migration_guides/04_snowflake/03_sql_translation_reference.md b/i18n/zh/docusaurus-plugin-content-docs/current/cloud/onboard/02_migrate/01_migration_guides/04_snowflake/03_sql_translation_reference.md
new file mode 100644
index 00000000000..84830ebd758
--- /dev/null
+++ b/i18n/zh/docusaurus-plugin-content-docs/current/cloud/onboard/02_migrate/01_migration_guides/04_snowflake/03_sql_translation_reference.md
@@ -0,0 +1,66 @@
+---
+'sidebar_label': 'SQL 翻译参考'
+'slug': '/migrations/snowflake-translation-reference'
+'description': 'SQL 翻译参考'
+'keywords':
+- 'Snowflake'
+'title': '从 Snowflake 迁移到 ClickHouse'
+'show_related_blogs': true
+'doc_type': 'guide'
+---
+
+
+# Snowflake SQL 转换指南
+
+## 数据类型 {#data-types}
+
+### 数值类型 {#numerics}
+
+在 ClickHouse 和 Snowflake 之间移动数据的用户会立即注意到,
+ClickHouse 提供了更细粒度的数字声明精度。例如,
+Snowflake 提供数字类型 Number。这个类型要求用户指定精度(总位数)和小数位数(小数点右侧的位数),总共最多为 38。整数声明与 Number 同义,仅定义固定的精度和小数位数,而且范围相同。这种便利性得益于在 Snowflake 中修改精度(对于整数小数位数为 0)并不会影响磁盘上的数据大小 - 在微分区级别写入时会使用最小所需的字节来满足数值范围。然而,小数位数确实会影响存储空间,并通过压缩进行抵消。`Float64` 类型提供更大的值范围,但精度有所下降。
+
+将其与 ClickHouse 对比,后者提供多种有符号和无符号的浮点和整数精度。借助这些,ClickHouse 用户可以明确整数所需的精度以优化存储和内存开销。Decimal 类型,相当于 Snowflake 的 Number 类型,也提供两倍的精度和76位小数。除了类似的 `Float64` 值,ClickHouse 还提供 `Float32`,用于当精度不那么关键而压缩至关重要的情况。
+
+### 字符串类型 {#strings}
+
+ClickHouse 和 Snowflake 在字符串数据存储方面采取了对比鲜明的方法。Snowflake 中的 `VARCHAR` 存储 UTF-8 编码的 Unicode 字符,允许用户指定最大长度。此长度对存储或性能没有影响,始终使用最小字节数来存储字符串,而只是提供有用的约束供下游工具使用。其他类型如 `Text` 和 `NChar` 只是此类型的别名。相反,ClickHouse 将所有 [字符串数据作为原始字节](/sql-reference/data-types/string) 存储,使用 `String` 类型(不需要指定长度),编码的任务推给用户,并提供 [查询时函数](/sql-reference/functions/string-functions#lengthutf8) 来处理不同的编码。我们建议读者参考 ["不透明数据参数"](https://utf8everywhere.org/#cookie) 来了解背后的动机。因此,ClickHouse 的 `String` 类型在实现上更可比于 Snowflake 的 Binary 类型。 [Snowflake](https://docs.snowflake.com/en/sql-reference/collation) 和 [ClickHouse](/sql-reference/statements/select/order-by#collation-support) 均支持“排序”,允许用户覆盖字符串的排序和比较方式。
+
+### 半结构化类型 {#semi-structured-data}
+
+Snowflake 支持半结构化数据的 `VARIANT`、`OBJECT` 和 `ARRAY` 类型。
+
+ClickHouse 提供相应的 [`Variant`](/sql-reference/data-types/variant)、`Object`(现已弃用,替代为原生 `JSON` 类型)和 [`Array`](/sql-reference/data-types/array) 类型。此外,ClickHouse 还具有 [`JSON`](/sql-reference/data-types/newjson) 类型,该类型取代了现已弃用的 `Object('json')` 类型,并在 [与其他本地 JSON 类型的比较中](https://jsonbench.com/) 特别高效和节省存储。
+
+ClickHouse 还支持命名的 [`Tuple`](/sql-reference/data-types/tuple) 和通过 [`Nested`](/sql-reference/data-types/nested-data-structures/nested) 类型的元组数组,允许用户明确映射嵌套结构。这允许在整个层次结构中应用编解码器和类型优化,与 Snowflake 不同,后者要求用户使用 `OBJECT`、`VARIANT` 和 `ARRAY` 类型用于外部对象,并且不允许 [明确的内部类型](https://docs.snowflake.com/en/sql-reference/data-types-semistructured#characteristics-of-an-object)。这种内部类型也简化了 ClickHouse 中嵌套数字的查询,因为无需转换,可以在索引定义中使用。
+
+在 ClickHouse 中,编解码器和优化类型也可以应用于子结构。这带来了一个附加好处,即与扁平化数据相比,嵌套结构的压缩效果依然出色。相比之下,由于无法对子结构应用特定类型,Snowflake 建议 [扁平化数据以获得最佳压缩效果](https://docs.snowflake.com/en/user-guide/semistructured-considerations#storing-semi-structured-data-in-a-variant-column-vs-flattening-the-nested-structure)。Snowflake 还对这些数据类型 [施加大小限制](https://docs.snowflake.com/en/user-guide/semistructured-considerations#data-size-limitations)。
+
+### 类型参考 {#type-reference}
+
+| Snowflake | ClickHouse | 注意 |
+|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| [`NUMBER`](https://docs.snowflake.com/en/sql-reference/data-types-numeric) | [`Decimal`](/sql-reference/data-types/decimal) | ClickHouse 支持的精度和小数位数是 Snowflake 的两倍 - 76 位与 38 位。 |
+| [`FLOAT`, `FLOAT4`, `FLOAT8`](https://docs.snowflake.com/en/sql-reference/data-types-numeric#data-types-for-floating-point-numbers) | [`Float32`, `Float64`](/sql-reference/data-types/float) | Snowflake 中的所有浮点数都是 64 位。 |
+| [`VARCHAR`](https://docs.snowflake.com/en/sql-reference/data-types-text#varchar) | [`String`](/sql-reference/data-types/string) | |
+| [`BINARY`](https://docs.snowflake.com/en/sql-reference/data-types-text#binary) | [`String`](/sql-reference/data-types/string) | |
+| [`BOOLEAN`](https://docs.snowflake.com/en/sql-reference/data-types-logical) | [`Bool`](/sql-reference/data-types/boolean) | |
+| [`DATE`](https://docs.snowflake.com/en/sql-reference/data-types-datetime#date) | [`Date`](/sql-reference/data-types/date), [`Date32`](/sql-reference/data-types/date32) | 在 Snowflake 中的 `DATE` 提供比 ClickHouse 更广泛的日期范围,例如 `Date32` 的最小值为 `1900-01-01`,而 `Date` 为 `1970-01-01`。ClickHouse 的 `Date` 提供更具成本效益(两字节)的存储。 |
+| [`TIME(N)`](https://docs.snowflake.com/en/sql-reference/data-types-datetime#time) | 没有直接等价类型,但可以表示为 [`DateTime`](/sql-reference/data-types/datetime) 和 [`DateTime64(N)`](/sql-reference/data-types/datetime64). | `DateTime64` 使用相同的精度概念。 |
+| [`TIMESTAMP`](https://docs.snowflake.com/en/sql-reference/data-types-datetime#timestamp) - [`TIMESTAMP_LTZ`](https://docs.snowflake.com/en/sql-reference/data-types-datetime#timestamp-ltz-timestamp-ntz-timestamp-tz), [`TIMESTAMP_NTZ`](https://docs.snowflake.com/en/sql-reference/data-types-datetime#timestamp-ltz-timestamp-ntz-timestamp-tz), [`TIMESTAMP_TZ`](https://docs.snowflake.com/en/sql-reference/data-types-datetime#timestamp-ltz-timestamp-ntz-timestamp-tz) | [`DateTime`](/sql-reference/data-types/datetime) 和 [`DateTime64`](/sql-reference/data-types/datetime64) | `DateTime` 和 `DateTime64` 可以选择性为列定义 TZ 参数。如果不存在,将使用服务器的时区。此外,客户端还可以使用 `--use_client_time_zone` 参数。 |
+| [`VARIANT`](https://docs.snowflake.com/en/sql-reference/data-types-semistructured#variant) | [`JSON`, `Tuple`, `Nested`](/interfaces/formats) | `JSON` 类型在 ClickHouse 中是实验性的。该类型在插入时推断列类型。`Tuple`、`Nested` 和 `Array` 也可用于构建显式类型结构作为替代方案。 |
+| [`OBJECT`](https://docs.snowflake.com/en/sql-reference/data-types-semistructured#object) | [`Tuple`, `Map`, `JSON`](/interfaces/formats) | `OBJECT` 和 `Map` 类似于 ClickHouse 中的 `JSON` 类型,其中键为 `String`。ClickHouse 要求值保持一致并具有强类型,而 Snowflake 使用 `VARIANT`。这意味着不同键的值可以是不同的类型。如果 ClickHouse 中需要此功能,请使用 `Tuple` 显式定义层次结构,或依赖于 `JSON` 类型。 |
+| [`ARRAY`](https://docs.snowflake.com/en/sql-reference/data-types-semistructured#array) | [`Array`](/sql-reference/data-types/array), [`Nested`](/sql-reference/data-types/nested-data-structures/nested) | Snowflake 中的 `ARRAY` 使用 `VARIANT` 作为元素 - 一种超类型。相比之下,这些在 ClickHouse 中是强类型的。 |
+| [`GEOGRAPHY`](https://docs.snowflake.com/en/sql-reference/data-types-geospatial#geography-data-type) | [`Point`, `Ring`, `Polygon`, `MultiPolygon`](/sql-reference/data-types/geo) | Snowflake 使用坐标系统(WGS 84),而 ClickHouse 在查询时应用。 |
+| [`GEOMETRY`](https://docs.snowflake.com/en/sql-reference/data-types-geospatial#geometry-data-type) | [`Point`, `Ring`, `Polygon`, `MultiPolygon`](/sql-reference/data-types/geo) | | |
+
+| ClickHouse 类型 | 描述 |
+|-------------------|-----------------------------------------------------------------------------------------------------|
+| `IPv4` 和 `IPv6` | IP 特定类型,可能比 Snowflake 更有效率地存储。 |
+| `FixedString` | 允许使用固定长度的字节,这对哈希很有用。 |
+| `LowCardinality` | 允许任何类型进行字典编码。当基数预期小于 100k 时非常有用。 |
+| `Enum` | 允许以 8 位或 16 位范围有效编码命名值。 |
+| `UUID` | 用于高效存储 UUID。 |
+| `Array(Float32)` | 向量可以表示为 Float32 数组,并支持距离函数。 |
+
+最后,ClickHouse 提供了存储聚合函数 [中间状态](/sql-reference/data-types/aggregatefunction) 的独特能力。该状态是实现特定的,但允许存储聚合结果并随后查询(带有相应的合并函数)。通常,此功能通过物化视图使用,如下面所示,通过存储对插入数据的查询增量结果来提高特定查询的性能,并以最小的存储成本实现(更多细节请参见这里)。
diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/cloud/onboard/02_migrate/01_migration_guides/04_snowflake/03_sql_translation_reference.md.hash b/i18n/zh/docusaurus-plugin-content-docs/current/cloud/onboard/02_migrate/01_migration_guides/04_snowflake/03_sql_translation_reference.md.hash
new file mode 100644
index 00000000000..fe290d749bb
--- /dev/null
+++ b/i18n/zh/docusaurus-plugin-content-docs/current/cloud/onboard/02_migrate/01_migration_guides/04_snowflake/03_sql_translation_reference.md.hash
@@ -0,0 +1 @@
+2337099cf76294c8
diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/cloud/onboard/02_migrate/01_migration_guides/04_snowflake/_category_.json b/i18n/zh/docusaurus-plugin-content-docs/current/cloud/onboard/02_migrate/01_migration_guides/04_snowflake/_category_.json
new file mode 100644
index 00000000000..50b05cb45a0
--- /dev/null
+++ b/i18n/zh/docusaurus-plugin-content-docs/current/cloud/onboard/02_migrate/01_migration_guides/04_snowflake/_category_.json
@@ -0,0 +1,5 @@
+{
+ "label": "Snowflake",
+ "collapsible": true,
+ "collapsed": true,
+}
\ No newline at end of file
diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/cloud/onboard/02_migrate/01_migration_guides/05_elastic/01_overview.md b/i18n/zh/docusaurus-plugin-content-docs/current/cloud/onboard/02_migrate/01_migration_guides/05_elastic/01_overview.md
new file mode 100644
index 00000000000..6f4d1a1737e
--- /dev/null
+++ b/i18n/zh/docusaurus-plugin-content-docs/current/cloud/onboard/02_migrate/01_migration_guides/05_elastic/01_overview.md
@@ -0,0 +1,15 @@
+---
+'sidebar_label': '概览'
+'slug': '/migrations/elastic-overview'
+'description': '从 Snowflake 到 ClickHouse 的迁移'
+'keywords':
+- 'Snowflake'
+'title': '从 Snowflake 迁移到 ClickHouse'
+'show_related_blogs': true
+'doc_type': 'landing-page'
+---
+
+
+# Elasticsearch 到 ClickHouse 迁移
+
+有关可观察性用例,请参阅 [Elasticsearch 到 ClickStack](/use-cases/observability/clickstack/migration/elastic) 迁移文档。
diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/cloud/onboard/02_migrate/01_migration_guides/05_elastic/01_overview.md.hash b/i18n/zh/docusaurus-plugin-content-docs/current/cloud/onboard/02_migrate/01_migration_guides/05_elastic/01_overview.md.hash
new file mode 100644
index 00000000000..6290c6ca69c
--- /dev/null
+++ b/i18n/zh/docusaurus-plugin-content-docs/current/cloud/onboard/02_migrate/01_migration_guides/05_elastic/01_overview.md.hash
@@ -0,0 +1 @@
+eb7f41486298aa1d
diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/cloud/onboard/02_migrate/01_migration_guides/05_elastic/_category_.json b/i18n/zh/docusaurus-plugin-content-docs/current/cloud/onboard/02_migrate/01_migration_guides/05_elastic/_category_.json
new file mode 100644
index 00000000000..4f49621cf3d
--- /dev/null
+++ b/i18n/zh/docusaurus-plugin-content-docs/current/cloud/onboard/02_migrate/01_migration_guides/05_elastic/_category_.json
@@ -0,0 +1,5 @@
+{
+ "label": "Elasticsearch",
+ "collapsible": true,
+ "collapsed": true
+}
\ No newline at end of file
diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/cloud/onboard/02_migrate/01_migration_guides/06_redshift/01_overview.md b/i18n/zh/docusaurus-plugin-content-docs/current/cloud/onboard/02_migrate/01_migration_guides/06_redshift/01_overview.md
new file mode 100644
index 00000000000..83543e33a20
--- /dev/null
+++ b/i18n/zh/docusaurus-plugin-content-docs/current/cloud/onboard/02_migrate/01_migration_guides/06_redshift/01_overview.md
@@ -0,0 +1,34 @@
+---
+'sidebar_label': '概述'
+'slug': '/migrations/redshift-overview'
+'description': '从 Amazon Redshift 迁移到 ClickHouse'
+'keywords':
+- 'Redshift'
+'title': '比较 ClickHouse Cloud 和 Amazon Redshift'
+'doc_type': 'guide'
+---
+
+
+# Amazon Redshift 到 ClickHouse 的迁移
+
+> 本文档介绍了将数据从 Amazon Redshift 迁移到 ClickHouse 的相关内容。
+
+## 介绍 {#introduction}
+
+Amazon Redshift 是一个云数据仓库,提供对结构化和半结构化数据的报告和分析功能。它旨在使用类似于 ClickHouse 的列式数据库原则来处理大数据集上的分析工作负载。作为 AWS 产品的一部分,它通常是 AWS 用户在处理其分析数据需求时的默认解决方案。
+
+尽管由于与 Amazon 生态系统的紧密集成而吸引了现有的 AWS 用户,但采用 Redshift 以支持实时分析应用的用户发现他们需要一个更优化的解决方案。因此,他们越来越倾向于选择 ClickHouse,以利用更优越的查询性能和数据压缩,作为替代方案或与现有的 Redshift 工作负载并行部署的“加速层”。
+
+## ClickHouse vs Redshift {#clickhouse-vs-redshift}
+
+对于在 AWS 生态系统中深度投入的用户来说,Redshift 在面对数据仓库需求时是一个自然选择。Redshift 与 ClickHouse 在这一重要方面有所不同——它优化其引擎以处理需要复杂报告和分析查询的数据仓库工作负载。在所有部署模式中,以下两个限制使得使用 Redshift 处理实时分析工作负载变得困难:
+* Redshift [为每个查询执行计划编译代码](https://docs.aws.amazon.com/redshift/latest/dg/c-query-performance.html),这为首次查询执行增加了显著的开销。当查询模式可预测且编译的执行计划可以存储在查询缓存中时,这种开销是合理的。然而,这在面对可变查询的交互式应用时引入了挑战。即便 Redshift 能够利用这个代码编译缓存,ClickHouse 在大多数查询上仍然更快。请参见 ["ClickBench"](https://benchmark.clickhouse.com/#system=+%E2%98%81w|%EF%B8%8Fr|C%20c|Rf&type=-&machine=-ca2|gl|6ax|6ale|3al&cluster_size=-&opensource=-&tuned=+n&metric=hot&queries=-)。
+* Redshift [将并发限制在 50 个队列中](https://docs.aws.amazon.com/redshift/latest/dg/c_workload_mngmt_classification.html),这(虽然对于商业智能足够)使得它不适合高度并发的分析应用。
+
+相反,虽然 ClickHouse 也可以用于复杂的分析查询,但它优化了实时分析工作负载,无论是为应用提供动力还是充当数据仓库加速层。因此,Redshift 用户通常会出于以下原因使用 ClickHouse 替代或增强 Redshift:
+
+| 优势 | 描述 |
+|-----------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| **更低的查询延迟** | ClickHouse 实现了更低的查询延迟,包括在高并发和流式插入下对于不同查询模式的支持。即使在查询未命中缓存的情况下(这是交互式用户分析中不可避免的),ClickHouse 仍然可以快速处理它。 |
+| **更高的并发查询限制** | ClickHouse 对并发查询的限制要高得多,这对实时应用体验至关重要。在 ClickHouse 中,无论是自管理还是云端,您可以根据每个服务所需的并发进行计算资源的扩展。ClickHouse 中允许的查询并发级别是可配置的,ClickHouse Cloud 的默认值为 1000。 |
+| **卓越的数据压缩** | ClickHouse 提供卓越的数据压缩,允许用户减少总存储(从而降低成本)或在相同成本下持久化更多数据,并从其数据中获取更多实时洞察。请参见下面的“ClickHouse vs Redshift 存储效率”。 |
diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/cloud/onboard/02_migrate/01_migration_guides/06_redshift/01_overview.md.hash b/i18n/zh/docusaurus-plugin-content-docs/current/cloud/onboard/02_migrate/01_migration_guides/06_redshift/01_overview.md.hash
new file mode 100644
index 00000000000..f06a417fbbc
--- /dev/null
+++ b/i18n/zh/docusaurus-plugin-content-docs/current/cloud/onboard/02_migrate/01_migration_guides/06_redshift/01_overview.md.hash
@@ -0,0 +1 @@
+73480e41528acef2
diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/cloud/onboard/02_migrate/01_migration_guides/06_redshift/02_migration_guide.md b/i18n/zh/docusaurus-plugin-content-docs/current/cloud/onboard/02_migrate/01_migration_guides/06_redshift/02_migration_guide.md
new file mode 100644
index 00000000000..8a375761ccf
--- /dev/null
+++ b/i18n/zh/docusaurus-plugin-content-docs/current/cloud/onboard/02_migrate/01_migration_guides/06_redshift/02_migration_guide.md
@@ -0,0 +1,16 @@
+---
+'sidebar_label': '迁移指南'
+'slug': '/migrations/redshift/migration-guide'
+'description': '从 Amazon Redshift 迁移到 ClickHouse'
+'keywords':
+- 'Redshift'
+'title': 'Amazon Redshift 到 ClickHouse 迁移指南'
+'doc_type': 'guide'
+---
+
+import MigrationGuide from '@site/i18n/zh/docusaurus-plugin-content-docs/current/integrations/data-ingestion/redshift/_snippets/_migration_guide.md'
+
+
+# Amazon Redshift 到 ClickHouse 迁移指南
+
+
diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/cloud/onboard/02_migrate/01_migration_guides/06_redshift/02_migration_guide.md.hash b/i18n/zh/docusaurus-plugin-content-docs/current/cloud/onboard/02_migrate/01_migration_guides/06_redshift/02_migration_guide.md.hash
new file mode 100644
index 00000000000..8a9af16ecea
--- /dev/null
+++ b/i18n/zh/docusaurus-plugin-content-docs/current/cloud/onboard/02_migrate/01_migration_guides/06_redshift/02_migration_guide.md.hash
@@ -0,0 +1 @@
+153863f77d31518f
diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/cloud/onboard/02_migrate/01_migration_guides/06_redshift/03_sql_translation_reference.md b/i18n/zh/docusaurus-plugin-content-docs/current/cloud/onboard/02_migrate/01_migration_guides/06_redshift/03_sql_translation_reference.md
new file mode 100644
index 00000000000..9b0043cfa3a
--- /dev/null
+++ b/i18n/zh/docusaurus-plugin-content-docs/current/cloud/onboard/02_migrate/01_migration_guides/06_redshift/03_sql_translation_reference.md
@@ -0,0 +1,67 @@
+---
+'sidebar_label': 'SQL 翻译参考'
+'slug': '/migrations/redshift/sql-translation-reference'
+'description': 'Amazon Redshift 到 ClickHouse 的 SQL 翻译参考'
+'keywords':
+- 'Redshift'
+'title': 'Amazon Redshift SQL 翻译指南'
+'doc_type': 'reference'
+---
+
+
+# Amazon Redshift SQL 翻译指南
+
+## 数据类型 {#data-types}
+
+在 ClickHouse 和 Redshift 之间移动数据的用户会立即注意到,ClickHouse 提供了更广泛的类型范围,并且限制更少。虽然 Redshift 要求用户指定可能的字符串长度,即使是可变的,ClickHouse 通过以字节形式存储字符串来消除这种限制和负担。因此,ClickHouse 的 String 类型没有限制或长度规范要求。
+
+此外,用户可以利用数组、元组和枚举——这些在 Redshift 中不存在作为一流公民(尽管可以用 `SUPER` 模拟数组/结构)并且是用户的常见挫折。ClickHouse 还允许在查询时或甚至在表中持久化聚合状态。这将使数据能够进行预聚合,通常使用物化视图,并且可以显著提高常见查询的性能。
+
+下面我们将每个 Redshift 类型映射到相应的 ClickHouse 类型:
+
+| Redshift | ClickHouse |
+|------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| [`SMALLINT`](https://docs.aws.amazon.com/redshift/latest/dg/r_Numeric_types201.html#r_Numeric_types201-integer-types) | [`Int8`](/sql-reference/data-types/int-uint) * |
+| [`INTEGER`](https://docs.aws.amazon.com/redshift/latest/dg/r_Numeric_types201.html#r_Numeric_types201-integer-types) | [`Int32`](/sql-reference/data-types/int-uint) * |
+| [`BIGINT`](https://docs.aws.amazon.com/redshift/latest/dg/r_Numeric_types201.html#r_Numeric_types201-integer-types) | [`Int64`](/sql-reference/data-types/int-uint) * |
+| [`DECIMAL`](https://docs.aws.amazon.com/redshift/latest/dg/r_Numeric_types201.html#r_Numeric_types201-decimal-or-numeric-type) | [`UInt128`, `UInt256`, `Int128`, `Int256`](/sql-reference/data-types/int-uint), [`Decimal(P, S)`, `Decimal32(S)`, `Decimal64(S)`, `Decimal128(S)`, `Decimal256(S)`](/sql-reference/data-types/decimal) - (支持高精度和范围) |
+| [`REAL`](https://docs.aws.amazon.com/redshift/latest/dg/r_Numeric_types201.html#r_Numeric_types201-floating-point-types) | [`Float32`](/sql-reference/data-types/float) |
+| [`DOUBLE PRECISION`](https://docs.aws.amazon.com/redshift/latest/dg/r_Numeric_types201.html#r_Numeric_types201-floating-point-types) | [`Float64`](/sql-reference/data-types/float) |
+| [`BOOLEAN`](https://docs.aws.amazon.com/redshift/latest/dg/r_Boolean_type.html) | [`Bool`](/sql-reference/data-types/boolean) |
+| [`CHAR`](https://docs.aws.amazon.com/redshift/latest/dg/r_Character_types.html#r_Character_types-char-or-character) | [`String`](/sql-reference/data-types/string), [`FixedString`](/sql-reference/data-types/fixedstring) |
+| [`VARCHAR`](https://docs.aws.amazon.com/redshift/latest/dg/r_Character_types.html#r_Character_types-varchar-or-character-varying) ** | [`String`](/sql-reference/data-types/string) |
+| [`DATE`](https://docs.aws.amazon.com/redshift/latest/dg/r_Datetime_types.html#r_Datetime_types-date) | [`Date32`](/sql-reference/data-types/date32) |
+| [`TIMESTAMP`](https://docs.aws.amazon.com/redshift/latest/dg/r_Datetime_types.html#r_Datetime_types-timestamp) | [`DateTime`](/sql-reference/data-types/datetime), [`DateTime64`](/sql-reference/data-types/datetime64) |
+| [`TIMESTAMPTZ`](https://docs.aws.amazon.com/redshift/latest/dg/r_Datetime_types.html#r_Datetime_types-timestamptz) | [`DateTime`](/sql-reference/data-types/datetime), [`DateTime64`](/sql-reference/data-types/datetime64) |
+| [`GEOMETRY`](https://docs.aws.amazon.com/redshift/latest/dg/geospatial-overview.html) | [地理数据类型](/sql-reference/data-types/geo) |
+| [`GEOGRAPHY`](https://docs.aws.amazon.com/redshift/latest/dg/geospatial-overview.html) | [地理数据类型](/sql-reference/data-types/geo) (发展较少,例如没有坐标系统 - 可以通过 [函数](/sql-reference/functions/geo/) 模拟) |
+| [`HLLSKETCH`](https://docs.aws.amazon.com/redshift/latest/dg/r_HLLSKTECH_type.html) | [`AggregateFunction(uniqHLL12, X)`](/sql-reference/data-types/aggregatefunction) |
+| [`SUPER`](https://docs.aws.amazon.com/redshift/latest/dg/r_SUPER_type.html) | [`Tuple`](/sql-reference/data-types/tuple), [`Nested`](/sql-reference/data-types/nested-data-structures/nested), [`Array`](/sql-reference/data-types/array), [`JSON`](/sql-reference/data-types/newjson), [`Map`](/sql-reference/data-types/map) |
+| [`TIME`](https://docs.aws.amazon.com/redshift/latest/dg/r_Datetime_types.html#r_Datetime_types-time) | [`DateTime`](/sql-reference/data-types/datetime), [`DateTime64`](/sql-reference/data-types/datetime64) |
+| [`TIMETZ`](https://docs.aws.amazon.com/redshift/latest/dg/r_Datetime_types.html#r_Datetime_types-timetz) | [`DateTime`](/sql-reference/data-types/datetime), [`DateTime64`](/sql-reference/data-types/datetime64) |
+| [`VARBYTE`](https://docs.aws.amazon.com/redshift/latest/dg/r_VARBYTE_type.html) ** | [`String`](/sql-reference/data-types/string) 结合 [`Bit`](/sql-reference/functions/bit-functions) 和 [Encoding](/sql-reference/functions/encoding-functions/#hex) 函数 |
+
+* ClickHouse 还支持具有扩展范围的无符号整数,即 `UInt8`, `UInt32`, `UInt32` 和 `UInt64`。
+** ClickHouse 的 String 类型默认没有长度限制,但可以通过使用 约束 来限制特定长度。
+
+## DDL 语法 {#compression}
+
+### 排序键 {#sorting-keys}
+
+ClickHouse 和 Redshift 都有“排序键”的概念,它定义了数据在存储时如何排序。Redshift 使用 `SORTKEY` 子句定义排序键:
+
+```sql
+CREATE TABLE some_table(...) SORTKEY (column1, column2)
+```
+
+相对而言,ClickHouse 使用 `ORDER BY` 子句来指定排序顺序:
+
+```sql
+CREATE TABLE some_table(...) ENGINE = MergeTree ORDER BY (column1, column2)
+```
+
+在大多数情况下,您可以在 ClickHouse 中使用与 Redshift 相同的排序键列和顺序,假设您使用的是默认的 `COMPOUND` 类型。当数据添加到 Redshift 时,您应该运行 `VACUUM` 和 `ANALYZE` 命令来重新排序新添加的数据并更新查询计划器的统计信息——否则,未排序的空间会增加。ClickHouse 不需要此类过程。
+
+Redshift 支持一些方便的排序键功能。第一个是自动排序键(使用 `SORTKEY AUTO`)。虽然这可能适合入门,但显式排序键确保最佳性能和存储效率。第二个是 `INTERLEAVED` 排序键,它对排序键中的一组列赋予相等的权重,从而在查询使用一个或多个备用排序列时提高性能。ClickHouse 支持显式的 [投影](/data-modeling/projections),可以通过略微不同的设置实现相同的效果。
+
+用户应注意,“主键”概念在 ClickHouse 和 Redshift 中代表不同的事物。在 Redshift 中,主键类似于传统的关系数据库管理系统中的概念,旨在实施约束。然而,它们在 Redshift 中并不严格执行,而是作为查询计划器和节点之间数据分布的提示。在 ClickHouse 中,主键表示用于构建稀疏主索引的列,该索引用于确保数据在磁盘上排序,从而最大化压缩,同时避免主索引的污染和浪费内存。
diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/cloud/onboard/02_migrate/01_migration_guides/06_redshift/03_sql_translation_reference.md.hash b/i18n/zh/docusaurus-plugin-content-docs/current/cloud/onboard/02_migrate/01_migration_guides/06_redshift/03_sql_translation_reference.md.hash
new file mode 100644
index 00000000000..52e67e43b0c
--- /dev/null
+++ b/i18n/zh/docusaurus-plugin-content-docs/current/cloud/onboard/02_migrate/01_migration_guides/06_redshift/03_sql_translation_reference.md.hash
@@ -0,0 +1 @@
+14638af86d960d76
diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/cloud/onboard/02_migrate/01_migration_guides/06_redshift/_category_.json b/i18n/zh/docusaurus-plugin-content-docs/current/cloud/onboard/02_migrate/01_migration_guides/06_redshift/_category_.json
new file mode 100644
index 00000000000..95419dcb41c
--- /dev/null
+++ b/i18n/zh/docusaurus-plugin-content-docs/current/cloud/onboard/02_migrate/01_migration_guides/06_redshift/_category_.json
@@ -0,0 +1,5 @@
+{
+ "label": "Redshift",
+ "collapsible": true,
+ "collapsed": true,
+}
\ No newline at end of file
diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/integrations/migration/clickhouse-to-cloud.md b/i18n/zh/docusaurus-plugin-content-docs/current/cloud/onboard/02_migrate/01_migration_guides/07_OSS_to_Cloud/01_clickhouse-to-cloud.md
similarity index 54%
rename from i18n/zh/docusaurus-plugin-content-docs/current/integrations/migration/clickhouse-to-cloud.md
rename to i18n/zh/docusaurus-plugin-content-docs/current/cloud/onboard/02_migrate/01_migration_guides/07_OSS_to_Cloud/01_clickhouse-to-cloud.md
index 586a4ac0064..5102b0fd4d0 100644
--- a/i18n/zh/docusaurus-plugin-content-docs/current/integrations/migration/clickhouse-to-cloud.md
+++ b/i18n/zh/docusaurus-plugin-content-docs/current/cloud/onboard/02_migrate/01_migration_guides/07_OSS_to_Cloud/01_clickhouse-to-cloud.md
@@ -1,9 +1,9 @@
---
-'sidebar_position': 10
-'sidebar_label': 'ClickHouse 到 ClickHouse Cloud'
+'sidebar_label': 'ClickHouse OSS'
'slug': '/cloud/migration/clickhouse-to-cloud'
'title': '在自管理 ClickHouse 和 ClickHouse Cloud 之间迁移'
'description': '页面描述如何在自管理 ClickHouse 和 ClickHouse Cloud 之间迁移'
+'doc_type': 'guide'
---
import Image from '@theme/IdealImage';
@@ -16,40 +16,38 @@ import self_managed_05 from '@site/static/images/integrations/migration/self-man
import self_managed_06 from '@site/static/images/integrations/migration/self-managed-06.png';
-# 从自管理的 ClickHouse 迁移到 ClickHouse Cloud
+# 从自管理 ClickHouse 迁移到 ClickHouse Cloud
-本指南将展示如何从自管理的 ClickHouse 服务器迁移到 ClickHouse Cloud,以及如何在 ClickHouse Cloud 服务之间迁移。 [`remoteSecure`](../../sql-reference/table-functions/remote.md) 函数在 `SELECT` 和 `INSERT` 查询中使用,以允许访问远程 ClickHouse 服务器,这使得迁移表变得简单,只需编写一个嵌入 `SELECT` 的 `INSERT INTO` 查询。
+本指南将展示如何从自管理的 ClickHouse 服务器迁移到 ClickHouse Cloud,以及如何在 ClickHouse Cloud 服务之间进行迁移。 `[`remoteSecure`](/sql-reference/table-functions/remote)` 函数用于 `SELECT` 和 `INSERT` 查询中,以允许访问远程 ClickHouse 服务器,使表的迁移变得简单,只需编写带有嵌入式 `SELECT` 的 `INSERT INTO` 查询。
## 从自管理的 ClickHouse 迁移到 ClickHouse Cloud {#migrating-from-self-managed-clickhouse-to-clickhouse-cloud}
:::note
-无论源表是否经过分片和/或复制,在 ClickHouse Cloud 上,您只需创建一个目标表(您可以省略此表的 Engine 参数,它将自动为 ReplicatedMergeTree 表),
-ClickHouse Cloud 将自动处理纵向和横向扩展。您无需考虑如何复制和分片表。
+无论源表是否分片和/或复制,在 ClickHouse Cloud 上,您只需创建一个目标表(可以省略此表的 Engine 参数,它将自动成为 ReplicatedMergeTree 表),ClickHouse Cloud 将自动处理垂直和水平扩展。您无需考虑如何复制和分片表。
:::
-在这个例子中,自管理的 ClickHouse 服务器是 *源*,ClickHouse Cloud 服务是 *目标*。
+在此示例中,自管理的 ClickHouse 服务器是 *源*,ClickHouse Cloud 服务是 *目标*。
### 概述 {#overview}
-整个过程是:
+该过程为:
1. 向源服务添加只读用户
1. 在目标服务上复制源表结构
-1. 从源拉取数据到目标,或根据源的网络可用性将数据从源推送到目标
-1. 从目标的 IP 访问列表中移除源服务器(如适用)
-1. 从源服务中删除只读用户
-
+1. 根据源的网络可用性,从源提取数据到目标,或将数据从源推送到目标
+1. 从目标的 IP 访问列表中移除源服务器(如果适用)
+1. 从源服务中移除只读用户
### 从一个系统迁移表到另一个系统: {#migration-of-tables-from-one-system-to-another}
-此示例将一个表从自管理的 ClickHouse 服务器迁移到 ClickHouse Cloud。
+该示例将一个表从自管理的 ClickHouse 服务器迁移到 ClickHouse Cloud。
### 在源 ClickHouse 系统上(当前托管数据的系统) {#on-the-source-clickhouse-system-the-system-that-currently-hosts-the-data}
-- 添加一个可以读取源表(本例中为 `db.table`)的只读用户
+- 添加一个可以读取源表的只读用户(在此示例中为 `db.table`)
```sql
CREATE USER exporter
IDENTIFIED WITH SHA256_PASSWORD BY 'password-here'
@@ -62,9 +60,9 @@ GRANT SELECT ON db.table TO exporter;
- 复制表定义
```sql
-select create_table_query
-from system.tables
-where database = 'db' and table = 'table'
+SELECT create_table_query
+FROM system.tables
+WHERE database = 'db' AND table = 'table'
```
### 在目标 ClickHouse Cloud 系统上: {#on-the-destination-clickhouse-cloud-system}
@@ -74,18 +72,17 @@ where database = 'db' and table = 'table'
CREATE DATABASE db
```
-- 使用源的 CREATE TABLE 语句创建目标表。
+- 使用源的 CREATE TABLE 语句创建目标。
:::tip
-运行 CREATE 语句时,将 ENGINE 更改为不带任何参数的 ReplicatedMergeTree。ClickHouse Cloud 始终复制表并提供正确的参数。请保留 `ORDER BY`、`PRIMARY KEY`、`PARTITION BY`、`SAMPLE BY`、`TTL` 和 `SETTINGS` 子句。
+在运行 CREATE 语句时,将 ENGINE 更改为 ReplicatedMergeTree,且不带任何参数。ClickHouse Cloud 始终复制表并提供正确的参数。但请保留 `ORDER BY`,`PRIMARY KEY`,`PARTITION BY`,`SAMPLE BY`,`TTL` 和 `SETTINGS` 子句。
:::
```sql
CREATE TABLE db.table ...
```
-
-- 使用 `remoteSecure` 函数从自管理的源拉取数据
+- 使用 `remoteSecure` 函数从自管理源提取数据
@@ -95,7 +92,7 @@ remoteSecure('source-hostname', db, table, 'exporter', 'password-here')
```
:::note
-如果源系统无法从外部网络访问,您可以推送数据而不是拉取数据,因为 `remoteSecure` 函数适用于选择和插入。 查看下一个选项。
+如果源系统从外部网络不可用,您可以使用推送而不是提取数据,因为 `remoteSecure` 函数适用于选择和插入。请参阅下一个选项。
:::
- 使用 `remoteSecure` 函数将数据推送到 ClickHouse Cloud 服务
@@ -103,7 +100,7 @@ remoteSecure('source-hostname', db, table, 'exporter', 'password-here')
:::tip 将远程系统添加到您的 ClickHouse Cloud 服务 IP 访问列表
-为了让 `remoteSecure` 函数连接到您的 ClickHouse Cloud 服务,远程系统的 IP 地址需要在 IP 访问列表中被允许。有关更多信息,请展开此提示下的 **管理您的 IP 访问列表**。
+为了使 `remoteSecure` 函数能够连接到您的 ClickHouse Cloud 服务,远程系统的 IP 地址需要在 IP 访问列表中被允许。有关更多信息,请展开此提示下方的 **管理您的 IP 访问列表**。
:::
@@ -114,33 +111,30 @@ remoteSecure('HOSTNAME.clickhouse.cloud:9440', 'db.table',
'default', 'PASS') SELECT * FROM db.table
```
-
-
## 在 ClickHouse Cloud 服务之间迁移 {#migrating-between-clickhouse-cloud-services}
-在 ClickHouse Cloud 服务之间迁移数据的一些示例用途:
-- 从恢复的备份迁移数据
+以下是将数据在 ClickHouse Cloud 服务之间迁移的一些示例用法:
+- 从恢复的备份中迁移数据
- 从开发服务复制数据到暂存服务(或从暂存到生产)
-在这个例子中,有两个 ClickHouse Cloud 服务,将分别称为 *源* 和 *目标*。数据将从源拉取到目标。尽管您可以选择推送数据,但示例中展示的是拉取,因为它使用了只读用户。
+在此示例中,有两个 ClickHouse Cloud 服务,它们将分别被称为 *源* 和 *目标*。数据将从源提取到目标。虽然您可以选择推送,但这里以提取为例,因为它使用了只读用户。
-迁移过程包含以下几个步骤:
+迁移有几个步骤:
1. 确定一个 ClickHouse Cloud 服务作为 *源*,另一个作为 *目标*
1. 向源服务添加只读用户
1. 在目标服务上复制源表结构
-1. 临时允许源服务的 IP 访问
+1. 暂时允许对源服务的 IP 访问
1. 从源复制数据到目标
-1. 在目标上重新建立 IP 访问列表
-1. 从源服务中删除只读用户
-
+1. 重新建立目标上的 IP 访问列表
+1. 从源服务中移除只读用户
#### 向源服务添加只读用户 {#add-a-read-only-user-to-the-source-service}
-- 添加一个可以读取源表(本例中为 `db.table`)的只读用户
+- 添加一个可以读取源表的只读用户(在此示例中为 `db.table`)
```sql
CREATE USER exporter
IDENTIFIED WITH SHA256_PASSWORD BY 'password-here'
@@ -160,37 +154,35 @@ where database = 'db' and table = 'table'
#### 在目标服务上复制表结构 {#duplicate-the-table-structure-on-the-destination-service}
-如果目标中尚不存在数据库,则创建该数据库:
+在目标创建数据库(如果尚未存在):
- 创建目标数据库:
```sql
CREATE DATABASE db
```
-
-
- 使用源的 CREATE TABLE 语句创建目标。
- 在目标上使用源中的 `select create_table_query...` 输出创建表:
+ 在目标使用源的 `select create_table_query...` 输出创建表:
```sql
CREATE TABLE db.table ...
```
-#### 允许源服务的远程访问 {#allow-remote-access-to-the-source-service}
+#### 允许远程访问源服务 {#allow-remote-access-to-the-source-service}
-为了从源向目标拉取数据,源服务必须允许连接。临时禁用源服务上的 "IP 访问列表" 功能。
+为了从源提取数据到目标,源服务必须允许连接。暂时禁用源服务上的“IP 访问列表”功能。
:::tip
-如果您将继续使用源 ClickHouse Cloud 服务,则在切换到允许从任何地方访问之前,将现有的 IP 访问列表导出到 JSON 文件;这将允许您在数据迁移完成后导入访问列表。
+如果您将继续使用源 ClickHouse Cloud 服务,则在切换到允许来自任何地方的访问之前,请将现有的 IP 访问列表导出为 JSON 文件;这将允许您在数据迁移后导入访问列表。
:::
-修改允许列表,临时允许 **任何地方** 的访问。有关详细信息,请参见 [IP 访问列表](/cloud/security/setting-ip-filters) 文档。
+修改允许列表并暂时允许来自 **任何地方** 的访问。有关详细信息,请参见 [IP Access List](/cloud/security/setting-ip-filters) 文档。
#### 从源复制数据到目标 {#copy-the-data-from-source-to-destination}
-- 使用 `remoteSecure` 函数从源 ClickHouse Cloud 服务拉取数据
- 连接到目标。在目标 ClickHouse Cloud 服务上运行此命令:
+- 使用 `remoteSecure` 函数从源 ClickHouse Cloud 服务提取数据
+ 连接到目标。在目标的 ClickHouse Cloud 服务上运行此命令:
```sql
INSERT INTO db.table SELECT * FROM
@@ -199,11 +191,11 @@ remoteSecure('source-hostname', db, table, 'exporter', 'password-here')
- 验证目标服务中的数据
-#### 在源上重新建立 IP 访问列表 {#re-establish-the-ip-access-list-on-the-source}
+#### 重新建立源上的 IP 访问列表 {#re-establish-the-ip-access-list-on-the-source}
-如果您之前导出了访问列表,则可以通过 **共享** 重新导入它,否则重新添加您的条目到访问列表中。
+如果您之前导出了访问列表,则可以使用 **Share** 重新导入,如果没有,则重新添加您的条目到访问列表中。
-#### 删除只读 `exporter` 用户 {#remove-the-read-only-exporter-user}
+#### 移除只读 `exporter` 用户 {#remove-the-read-only-exporter-user}
```sql
DROP USER exporter
diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/cloud/onboard/02_migrate/01_migration_guides/07_OSS_to_Cloud/01_clickhouse-to-cloud.md.hash b/i18n/zh/docusaurus-plugin-content-docs/current/cloud/onboard/02_migrate/01_migration_guides/07_OSS_to_Cloud/01_clickhouse-to-cloud.md.hash
new file mode 100644
index 00000000000..7dbe0fc708e
--- /dev/null
+++ b/i18n/zh/docusaurus-plugin-content-docs/current/cloud/onboard/02_migrate/01_migration_guides/07_OSS_to_Cloud/01_clickhouse-to-cloud.md.hash
@@ -0,0 +1 @@
+c2c2735fd11e325d
diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/cloud/onboard/02_migrate/01_migration_guides/07_OSS_to_Cloud/_category_.json b/i18n/zh/docusaurus-plugin-content-docs/current/cloud/onboard/02_migrate/01_migration_guides/07_OSS_to_Cloud/_category_.json
new file mode 100644
index 00000000000..9720f826193
--- /dev/null
+++ b/i18n/zh/docusaurus-plugin-content-docs/current/cloud/onboard/02_migrate/01_migration_guides/07_OSS_to_Cloud/_category_.json
@@ -0,0 +1,5 @@
+{
+ "label": "OSS to Cloud",
+ "collapsible": true,
+ "collapsed": true,
+}
\ No newline at end of file
diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/cloud/onboard/02_migrate/01_migration_guides/08_other_methods/01_clickhouse-local-etl.md b/i18n/zh/docusaurus-plugin-content-docs/current/cloud/onboard/02_migrate/01_migration_guides/08_other_methods/01_clickhouse-local-etl.md
new file mode 100644
index 00000000000..63dc08978da
--- /dev/null
+++ b/i18n/zh/docusaurus-plugin-content-docs/current/cloud/onboard/02_migrate/01_migration_guides/08_other_methods/01_clickhouse-local-etl.md
@@ -0,0 +1,146 @@
+---
+'sidebar_label': '使用 clickhouse-local'
+'keywords':
+- 'clickhouse'
+- 'migrate'
+- 'migration'
+- 'migrating'
+- 'data'
+- 'etl'
+- 'elt'
+- 'clickhouse-local'
+- 'clickhouse-client'
+'slug': '/cloud/migration/clickhouse-local'
+'title': '迁移到 ClickHouse 使用 clickhouse-local'
+'description': '指南展示如何使用 clickhouse-local 迁移到 ClickHouse'
+'doc_type': 'guide'
+---
+
+import Image from '@theme/IdealImage';
+import Tabs from '@theme/Tabs';
+import TabItem from '@theme/TabItem';
+import CodeBlock from '@theme/CodeBlock';
+import AddARemoteSystem from '@site/i18n/zh/docusaurus-plugin-content-docs/current/_snippets/_add_remote_ip_access_list_detail.md';
+import ch_local_01 from '@site/static/images/integrations/migration/ch-local-01.png';
+import ch_local_02 from '@site/static/images/integrations/migration/ch-local-02.png';
+import ch_local_03 from '@site/static/images/integrations/migration/ch-local-03.png';
+import ch_local_04 from '@site/static/images/integrations/migration/ch-local-04.png';
+
+
+# 使用 clickhouse-local 迁移到 ClickHouse
+
+
+
+您可以使用 ClickHouse,更具体地说是 [`clickhouse-local`](/operations/utilities/clickhouse-local.md) 作为 ETL 工具,将数据从您当前的数据库系统迁移到 ClickHouse Cloud,只要您的当前数据库系统有 ClickHouse 提供的 [集成引擎](/engines/table-engines/#integration-engines) 或 [表函数](/sql-reference/table-functions/),或者有供应商提供的 JDBC 驱动程序或 ODBC 驱动程序可用。
+
+我们有时将这种迁移方法称为“支点”方法,因为它使用一个中间支点或跳跃,将数据从源数据库迁移到目标数据库。例如,如果由于安全要求,仅允许从私有或内部网络进行外部连接,则可能需要这种方法,因此您需要使用 clickhouse-local 从源数据库拉取数据,然后将数据推送到目标 ClickHouse 数据库,而 clickhouse-local 充当支点。
+
+ClickHouse 为 [MySQL](/engines/table-engines/integrations/mysql/)、[PostgreSQL](/engines/table-engines/integrations/postgresql)、[MongoDB](/engines/table-engines/integrations/mongodb) 和 [SQLite](/engines/table-engines/integrations/sqlite) 提供集成引擎和表函数(动态创建集成引擎)。对于所有其他流行的数据库系统,供应商提供了 JDBC 驱动程序或 ODBC 驱动程序。
+
+## 什么是 clickhouse-local? {#what-is-clickhouse-local}
+
+
+
+通常,ClickHouse 以集群的形式运行,其中多个 ClickHouse 数据库引擎的实例在不同的服务器上分布式运行。
+
+在单台服务器上,ClickHouse 数据库引擎作为 `clickhouse-server` 程序的一部分运行。数据库访问(路径、用户、安全性等)通过服务器配置文件进行配置。
+
+`clickhouse-local` 工具使您能够以命令行实用程序的方式,隔离使用 ClickHouse 数据库引擎,进行快速 SQL 数据处理,而无需配置和启动 ClickHouse 服务器。
+
+## 安装 clickhouse-local {#installing-clickhouse-local}
+
+您需要一个用于 `clickhouse-local` 的主机,该主机可以访问当前的源数据库系统和您的 ClickHouse Cloud 目标服务。
+
+在该主机上,下载适合您的计算机操作系统的 `clickhouse-local` 的适当版本:
+
+
+
+
+1. 下载 `clickhouse-local` 的最简单方法是运行以下命令:
+```bash
+curl https://clickhouse.com/ | sh
+```
+
+1. 运行 `clickhouse-local`(它将仅打印其版本):
+```bash
+./clickhouse-local
+```
+
+
+
+
+1. 下载 `clickhouse-local` 的最简单方法是运行以下命令:
+```bash
+curl https://clickhouse.com/ | sh
+```
+
+1. 运行 `clickhouse-local`(它将仅打印其版本):
+```bash
+./clickhouse local
+```
+
+
+
+
+:::info 重要
+本指南中的示例使用 Linux 命令运行 `clickhouse-local` (`./clickhouse-local`)。
+要在 Mac 上运行 `clickhouse-local`,请使用 `./clickhouse local`。
+:::
+
+:::tip 将远程系统添加到您的 ClickHouse Cloud 服务 IP 访问列表
+为了使 `remoteSecure` 函数能够连接到您的 ClickHouse Cloud 服务,远程系统的 IP 地址必须被 IP 访问列表允许。有关更多信息,请展开此提示下的 **管理您的 IP 访问列表**。
+:::
+
+
+
+## 示例 1: 使用集成引擎将 MySQL 迁移到 ClickHouse Cloud {#example-1-migrating-from-mysql-to-clickhouse-cloud-with-an-integration-engine}
+
+我们将使用 [集成表引擎](/engines/table-engines/integrations/mysql/) (通过 [mysql 表函数](/sql-reference/table-functions/mysql/) 动态创建)从源 MySQL 数据库读取数据,并将使用 [remoteSecure 表函数](/sql-reference/table-functions/remote/) 将数据写入 ClickHouse cloud 服务的目标表中。
+
+
+
+### 在目标 ClickHouse Cloud 服务上: {#on-the-destination-clickhouse-cloud-service}
+
+#### 创建目标数据库: {#create-the-destination-database}
+
+```sql
+CREATE DATABASE db
+```
+
+#### 创建一个与 MySQL 表模式相等的目标表: {#create-a-destination-table-that-has-a-schema-equivalent-to-the-mysql-table}
+
+```sql
+CREATE TABLE db.table ...
+```
+
+:::note
+ClickHouse Cloud 的目标表模式与源 MySQL 表的模式必须对齐(列名和顺序必须相同,列数据类型必须兼容)。
+:::
+
+### 在 clickhouse-local 主机上: {#on-the-clickhouse-local-host-machine}
+
+#### 使用迁移查询运行 clickhouse-local: {#run-clickhouse-local-with-the-migration-query}
+
+```sql
+ ./clickhouse-local --query "
+INSERT INTO FUNCTION
+remoteSecure('HOSTNAME.clickhouse.cloud:9440', 'db.table', 'default', 'PASS')
+SELECT * FROM mysql('host:port', 'database', 'table', 'user', 'password');"
+```
+
+:::note
+在 `clickhouse-local` 主机上没有存储任何数据。相反,数据是从源 MySQL 表读取的,然后立即写入 ClickHouse Cloud 服务上的目标表。
+:::
+
+## 示例 2: 使用 JDBC 桥将 MySQL 迁移到 ClickHouse Cloud {#example-2-migrating-from-mysql-to-clickhouse-cloud-with-the-jdbc-bridge}
+
+我们将使用 [JDBC 集成表引擎](/engines/table-engines/integrations/jdbc.md) (通过 [jdbc 表函数](/sql-reference/table-functions/jdbc.md) 动态创建),结合 [ClickHouse JDBC 桥](https://github.com/ClickHouse/clickhouse-jdbc-bridge) 和 MySQL JDBC 驱动程序,从源 MySQL 数据库读取数据,并将使用 [remoteSecure 表函数](/sql-reference/table-functions/remote.md) 将数据写入 ClickHouse cloud 服务的目标表中。
+
+
+
+### 在目标 ClickHouse Cloud 服务上: {#on-the-destination-clickhouse-cloud-service-1}
+
+#### 创建目标数据库: {#create-the-destination-database-1}
+```sql
+CREATE DATABASE db
+```
diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/cloud/onboard/02_migrate/01_migration_guides/08_other_methods/01_clickhouse-local-etl.md.hash b/i18n/zh/docusaurus-plugin-content-docs/current/cloud/onboard/02_migrate/01_migration_guides/08_other_methods/01_clickhouse-local-etl.md.hash
new file mode 100644
index 00000000000..feb5e6b61b9
--- /dev/null
+++ b/i18n/zh/docusaurus-plugin-content-docs/current/cloud/onboard/02_migrate/01_migration_guides/08_other_methods/01_clickhouse-local-etl.md.hash
@@ -0,0 +1 @@
+dadfc60a8ad286f5
diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/integrations/migration/etl-tool-to-clickhouse.md b/i18n/zh/docusaurus-plugin-content-docs/current/cloud/onboard/02_migrate/01_migration_guides/08_other_methods/02_etl-tool-to-clickhouse.md
similarity index 65%
rename from i18n/zh/docusaurus-plugin-content-docs/current/integrations/migration/etl-tool-to-clickhouse.md
rename to i18n/zh/docusaurus-plugin-content-docs/current/cloud/onboard/02_migrate/01_migration_guides/08_other_methods/02_etl-tool-to-clickhouse.md
index 455936d8798..ef06c476f1f 100644
--- a/i18n/zh/docusaurus-plugin-content-docs/current/integrations/migration/etl-tool-to-clickhouse.md
+++ b/i18n/zh/docusaurus-plugin-content-docs/current/cloud/onboard/02_migrate/01_migration_guides/08_other_methods/02_etl-tool-to-clickhouse.md
@@ -1,6 +1,5 @@
---
'sidebar_label': '使用第三方 ETL 工具'
-'sidebar_position': 20
'keywords':
- 'clickhouse'
- 'migrate'
@@ -13,7 +12,8 @@
- 'clickhouse-client'
'slug': '/cloud/migration/etl-tool-to-clickhouse'
'title': '使用第三方 ETL 工具'
-'description': '页面描述如何将第三方 ETL 工具与 ClickHouse 一起使用'
+'description': '本页描述如何在 ClickHouse 中使用第三方 ETL 工具'
+'doc_type': 'guide'
---
import Image from '@theme/IdealImage';
@@ -24,10 +24,10 @@ import third_party_01 from '@site/static/images/integrations/migration/third-par
-将数据从外部数据源移动到 ClickHouse 的一个不错选择是使用众多流行的 ETL 和 ELT 工具之一。我们有文档涵盖以下内容:
+将数据从外部数据源移入 ClickHouse 的一个好选择是使用许多流行的 ETL 和 ELT 工具之一。我们有文档涵盖以下内容:
- [Airbyte](/integrations/data-ingestion/etl-tools/airbyte-and-clickhouse.md)
- [dbt](/integrations/data-ingestion/etl-tools/dbt/index.md)
- [Vector](/integrations/data-ingestion/etl-tools/vector-to-clickhouse.md)
-但是还有许多其他与 ClickHouse 集成的 ETL/ELT 工具,因此请查看您喜欢的工具的文档以获取详细信息。
+但还有许多其他与 ClickHouse 集成的 ETL/ELT 工具,因此请查看您喜爱的工具的文档以获取详细信息。
diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/cloud/onboard/02_migrate/01_migration_guides/08_other_methods/02_etl-tool-to-clickhouse.md.hash b/i18n/zh/docusaurus-plugin-content-docs/current/cloud/onboard/02_migrate/01_migration_guides/08_other_methods/02_etl-tool-to-clickhouse.md.hash
new file mode 100644
index 00000000000..233197e383f
--- /dev/null
+++ b/i18n/zh/docusaurus-plugin-content-docs/current/cloud/onboard/02_migrate/01_migration_guides/08_other_methods/02_etl-tool-to-clickhouse.md.hash
@@ -0,0 +1 @@
+e7e4cf07d4f7e459
diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/cloud/onboard/02_migrate/01_migration_guides/08_other_methods/03_object-storage-to-clickhouse.md b/i18n/zh/docusaurus-plugin-content-docs/current/cloud/onboard/02_migrate/01_migration_guides/08_other_methods/03_object-storage-to-clickhouse.md
new file mode 100644
index 00000000000..2cde87b8951
--- /dev/null
+++ b/i18n/zh/docusaurus-plugin-content-docs/current/cloud/onboard/02_migrate/01_migration_guides/08_other_methods/03_object-storage-to-clickhouse.md
@@ -0,0 +1,32 @@
+---
+'title': '使用对象存储'
+'description': '将数据从对象存储移动到 ClickHouse Cloud'
+'keywords':
+- 'object storage'
+- 's3'
+- 'azure blob'
+- 'gcs'
+- 'migration'
+'slug': '/integrations/migration/object-storage-to-clickhouse'
+'doc_type': 'guide'
+---
+
+import Image from '@theme/IdealImage';
+import object_storage_01 from '@site/static/images/integrations/migration/object-storage-01.png';
+
+
+# 将数据从云对象存储移动到 ClickHouse Cloud
+
+
+
+如果您使用云对象存储作为数据湖并希望将这些数据导入 ClickHouse Cloud,或者如果您当前的数据库系统能够直接将数据卸载到云对象存储中,那么您可以使用以下表函数将存储在云对象存储中的数据迁移到 ClickHouse Cloud 表中:
+
+- [s3](/sql-reference/table-functions/s3.md) 或 [s3Cluster](/sql-reference/table-functions/s3Cluster.md)
+- [gcs](/sql-reference/table-functions/gcs)
+- [azureBlobStorage](/sql-reference/table-functions/azureBlobStorage)
+
+如果您当前的数据库系统无法直接将数据卸载到云对象存储中,您可以使用 [第三方 ETL/ELT 工具](/cloud/migration/etl-tool-to-clickhouse) 或 [clickhouse-local](/cloud/migration/clickhouse-local) 来将数据从您当前的数据库系统移动到云对象存储,以便在第二步中将这些数据迁移到 ClickHouse Cloud 表中。
+
+尽管这是一个两步过程(将数据卸载到云对象存储,然后加载到 ClickHouse),但它的优势在于由于 [强大的 ClickHouse Cloud](https://clickhouse.com/blog/getting-data-into-clickhouse-part-3-s3) 对来自云对象存储的高并发读取的支持,可以扩展到 PB 级别。同时,您可以利用复杂和压缩的格式,例如 [Parquet](/interfaces/formats/#data-format-parquet)。
+
+有一篇 [博客文章](https://clickhouse.com/blog/getting-data-into-clickhouse-part-3-s3) 通过具体代码示例展示了如何使用 S3 将数据导入 ClickHouse Cloud。
diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/cloud/onboard/02_migrate/01_migration_guides/08_other_methods/03_object-storage-to-clickhouse.md.hash b/i18n/zh/docusaurus-plugin-content-docs/current/cloud/onboard/02_migrate/01_migration_guides/08_other_methods/03_object-storage-to-clickhouse.md.hash
new file mode 100644
index 00000000000..25ba1f9400b
--- /dev/null
+++ b/i18n/zh/docusaurus-plugin-content-docs/current/cloud/onboard/02_migrate/01_migration_guides/08_other_methods/03_object-storage-to-clickhouse.md.hash
@@ -0,0 +1 @@
+c95b3324aab9b6fb
diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/cloud/onboard/02_migrate/01_migration_guides/08_other_methods/_category_.json b/i18n/zh/docusaurus-plugin-content-docs/current/cloud/onboard/02_migrate/01_migration_guides/08_other_methods/_category_.json
new file mode 100644
index 00000000000..61c592ce8a0
--- /dev/null
+++ b/i18n/zh/docusaurus-plugin-content-docs/current/cloud/onboard/02_migrate/01_migration_guides/08_other_methods/_category_.json
@@ -0,0 +1,5 @@
+{
+ "label": "Other...",
+ "collapsible": true,
+ "collapsed": true,
+}
\ No newline at end of file
diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/cloud/onboard/02_migrate/01_migration_guides/_category_.json b/i18n/zh/docusaurus-plugin-content-docs/current/cloud/onboard/02_migrate/01_migration_guides/_category_.json
new file mode 100644
index 00000000000..aca0c529bce
--- /dev/null
+++ b/i18n/zh/docusaurus-plugin-content-docs/current/cloud/onboard/02_migrate/01_migration_guides/_category_.json
@@ -0,0 +1,5 @@
+{
+ "label": "Migration guides",
+ "collapsible": true,
+ "collapsed": true,
+}
\ No newline at end of file
diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/cloud/onboard/03_tune/_snippets/_monitoring_table_of_contents.md b/i18n/zh/docusaurus-plugin-content-docs/current/cloud/onboard/03_tune/_snippets/_monitoring_table_of_contents.md
new file mode 100644
index 00000000000..e5d813d8226
--- /dev/null
+++ b/i18n/zh/docusaurus-plugin-content-docs/current/cloud/onboard/03_tune/_snippets/_monitoring_table_of_contents.md
@@ -0,0 +1,3 @@
+| Page | Description |
+|------|-------------|
+| | |
diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/cloud/onboard/03_tune/_snippets/_monitoring_table_of_contents.md.hash b/i18n/zh/docusaurus-plugin-content-docs/current/cloud/onboard/03_tune/_snippets/_monitoring_table_of_contents.md.hash
new file mode 100644
index 00000000000..e852b72ed46
--- /dev/null
+++ b/i18n/zh/docusaurus-plugin-content-docs/current/cloud/onboard/03_tune/_snippets/_monitoring_table_of_contents.md.hash
@@ -0,0 +1 @@
+b95b12523c2327fa
diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/cloud/onboard/03_tune/resource_tour.md b/i18n/zh/docusaurus-plugin-content-docs/current/cloud/onboard/03_tune/resource_tour.md
new file mode 100644
index 00000000000..827442fca40
--- /dev/null
+++ b/i18n/zh/docusaurus-plugin-content-docs/current/cloud/onboard/03_tune/resource_tour.md
@@ -0,0 +1,49 @@
+---
+'slug': '/cloud/get-started/cloud/resource-tour'
+'title': '资源巡回'
+'description': '关于 ClickHouse Cloud 文档资源的概述,包括查询优化、扩展策略、监控和最佳实践'
+'keywords':
+- 'clickhouse cloud'
+'hide_title': true
+'doc_type': 'guide'
+---
+
+import TableOfContentsBestPractices from '@site/i18n/zh/docusaurus-plugin-content-docs/current/best-practices/_snippets/_table_of_contents.md';
+import TableOfContentsOptimizationAndPerformance from '@site/i18n/zh/docusaurus-plugin-content-docs/current/guides/best-practices/_snippets/_performance_optimizations_table_of_contents.md';
+import TableOfContentsSecurity from '@site/i18n/zh/docusaurus-plugin-content-docs/current/cloud/_snippets/_security_table_of_contents.md';
+
+
+# 资源导览
+
+本文旨在为您提供概述,以了解在文档中可用的资源,学习如何最大化利用您的 ClickHouse Cloud 部署。根据以下主题探索资源:
+
+- [查询优化技术和性能调优](#query-optimization)
+- [监控](#monitoring)
+- [安全最佳实践和合规功能](#security)
+- [成本优化和计费](#cost-optimization)
+
+在深入具体主题之前,我们建议您先查看我们的通用 ClickHouse 最佳实践指南,其中涵盖了使用 ClickHouse 时应遵循的通用最佳实践:
+
+
+
+## 查询优化技术和性能调优 {#query-optimization}
+
+
+
+## 监控 {#monitoring}
+
+| 页面 | 描述 |
+|-------------------------------------------------------------------|---------------------------------------------------------------------------|
+| [高级仪表板](/cloud/manage/monitor/advanced-dashboard) | 使用内置的高级仪表板监控服务状态和性能 |
+| [Prometheus 集成](/integrations/prometheus) | 使用 Prometheus 监控云服务 |
+
+## 安全 {#security}
+
+
+
+## 成本优化和计费 {#cost-optimization}
+
+| 页面 | 描述 |
+|-------------------------------------------------------|-----------------------------------------------------------------------------------------------------|
+| [数据传输](/cloud/manage/network-data-transfer) | 理解 ClickHouse Cloud 如何计量传入和传出的数据传输 |
+| [通知](/cloud/notifications) | 为您的 ClickHouse Cloud 服务设置通知。例如,当信用使用量超过一个阈值时 |
diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/cloud/onboard/03_tune/resource_tour.md.hash b/i18n/zh/docusaurus-plugin-content-docs/current/cloud/onboard/03_tune/resource_tour.md.hash
new file mode 100644
index 00000000000..725282f98ab
--- /dev/null
+++ b/i18n/zh/docusaurus-plugin-content-docs/current/cloud/onboard/03_tune/resource_tour.md.hash
@@ -0,0 +1 @@
+1a10abd292336aea
diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/cloud/onboard/index.md b/i18n/zh/docusaurus-plugin-content-docs/current/cloud/onboard/index.md
new file mode 100644
index 00000000000..5da21d34d46
--- /dev/null
+++ b/i18n/zh/docusaurus-plugin-content-docs/current/cloud/onboard/index.md
@@ -0,0 +1,40 @@
+---
+'slug': '/cloud/get-started'
+'title': '开始使用 ClickHouse Cloud'
+'description': '完整指南,让您了解如何开始使用 ClickHouse Cloud - 从发现功能到部署和优化'
+'hide_title': true
+'doc_type': 'guide'
+---
+
+
+# 开始使用 ClickHouse Cloud
+
+新手使用 ClickHouse Cloud,不知道从哪里开始?在本节文档中,我们将引导您快速入门。我们将此入门部分安排为三个子部分,以帮助您在探索 ClickHouse Cloud 的每一个步骤中获得指导。
+
+
+
+## 发现 ClickHouse Cloud {#discover-clickhouse-cloud}
+
+- [了解](/cloud/overview) ClickHouse Cloud 是什么,以及它与开源版本的不同
+- [发现](/cloud/get-started/cloud/use-cases/overview) ClickHouse Cloud 的主要用例
+
+## 设置 ClickHouse Cloud {#get-set-up-with-clickhouse-cloud}
+
+现在您知道了 ClickHouse Cloud 是什么,我们将引导您完成将数据导入 ClickHouse Cloud 的过程,展示可用的主要功能,并指出一些您应该了解的通用最佳实践。
+
+主题包括:
+
+- [来自各种平台的迁移指南](/integrations/migration/overview)
+
+## 调整您的 ClickHouse Cloud 部署 {#evaluate-clickhouse-cloud}
+
+现在您的数据已在 ClickHouse Cloud 中,我们将引导您了解一些更高级的主题,以帮助您充分利用 ClickHouse Cloud 的体验,并探索该平台提供的内容。
+
+主题包括:
+
+- [查询性能和优化](/cloud/get-started/cloud/resource-tour#query-optimization)
+- [监控](/cloud/get-started/cloud/resource-tour#monitoring)
+- [安全考虑](/cloud/get-started/cloud/resource-tour#security)
+- [故障排除提示](/troubleshooting)
+
+
diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/cloud/onboard/index.md.hash b/i18n/zh/docusaurus-plugin-content-docs/current/cloud/onboard/index.md.hash
new file mode 100644
index 00000000000..a4bf5bd209d
--- /dev/null
+++ b/i18n/zh/docusaurus-plugin-content-docs/current/cloud/onboard/index.md.hash
@@ -0,0 +1 @@
+938eb877f02bd5f5
diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/cloud/reference/changelog.md b/i18n/zh/docusaurus-plugin-content-docs/current/cloud/reference/01_changelog/01_changelog.md
similarity index 90%
rename from i18n/zh/docusaurus-plugin-content-docs/current/cloud/reference/changelog.md
rename to i18n/zh/docusaurus-plugin-content-docs/current/cloud/reference/01_changelog/01_changelog.md
index 0d0e7992055..d46b36e6524 100644
--- a/i18n/zh/docusaurus-plugin-content-docs/current/cloud/reference/changelog.md
+++ b/i18n/zh/docusaurus-plugin-content-docs/current/cloud/reference/01_changelog/01_changelog.md
@@ -3,6 +3,7 @@ slug: /whats-new/cloud
sidebar_label: 'Cloud Changelog'
title: 'Cloud Changelog'
description: 'ClickHouse Cloud changelog providing descriptions of what is new in each ClickHouse Cloud release'
+doc_type: 'changelog'
---
import Image from '@theme/IdealImage';
@@ -27,8 +28,112 @@ import kafka_config from '@site/static/images/cloud/reference/june-13-kafka-conf
import fast_releases from '@site/static/images/cloud/reference/june-13-fast-releases.png';
import share_queries from '@site/static/images/cloud/reference/may-30-share-queries.png';
import query_endpoints from '@site/static/images/cloud/reference/may-17-query-endpoints.png';
+import dashboards from '@site/static/images/cloud/reference/may-30-dashboards.png';
-In addition to this ClickHouse Cloud changelog, please see the [Cloud Compatibility](/cloud/reference/cloud-compatibility.md) page.
+In addition to this ClickHouse Cloud changelog, please see the [Cloud Compatibility](/whats-new/cloud-compatibility) page.
+
+## August 29, 2025 {#august-29-2025}
+
+- [ClickHouse Cloud Azure Private Link](/cloud/security/azure-privatelink) has switched from using Resource GUID to Resource ID filters for resource identification. You can still use the legacy Resource GUID, which is backward compatible, but we recommend switching to Resource ID filters. For migration details see the [docs](/cloud/security/azure-privatelink#obtaining-private-endpoint-resourceid) for Azure Private Link.
+
+## August 22, 2025 {#august-22-2025}
+
+- **ClickHouse Connector for AWS Glue**
+ You can now use the official [ClickHouse Connector for AWS Glue](/integrations/glue) that is available from the [AWS Marketplace](https://aws.amazon.com/marketplace/pp/prodview-eqvmuopqzdg7s). Utilizes AWS Glue’s Apache
+ Spark-based serverless engine for extracting, transforming and loading data integration between ClickHouse and other data sources. Get
+ started by following along with the announcement [blogpost](http://clickhouse.com/blog/clickhouse-connector-aws-glue) for how to create tables, write and read data between ClickHouse and Spark.
+- **Change to the minimum number of replicas in a service**
+ Services which have been scaled up can now be [scaled back down](/manage/scaling) to use a single replica (previously the minimum was 2 replicas). Note: single replica services have reduced availability and are not recommended for production usage.
+- ClickHouse Cloud will begin to send notifications related to service scaling and service version upgrades, by default for administrator roles. Users can adjust their notification preferences in their notification settings.
+
+## August 13, 2025 {#august-13-2025}
+
+- **ClickPipes for MongoDB CDC now in Private Preview**
+ You can now use ClickPipes to replicate data from MongoDB into ClickHouse Cloud in a few clicks, enabling
+ real-time analytics without the need for external ETL tools. The connector supports continuous
+ replication as well as one-time migrations, and is compatible with MongoDB Atlas and self-hosted MongoDB
+ deployments. Read the [blogpost](https://clickhouse.com/blog/mongodb-cdc-clickhouse-preview) for an overview of the MongoDB CDC connector and [sign up for early access here](https://clickhouse.com/cloud/clickpipes/mongodb-cdc-connector)!
+
+## August 8, 2025 {#august-08-2025}
+
+- **Notifications**: Users will now receive a UI notification when their service starts upgrading to a new ClickHouse version. Additional Email and Slack notifications can be added via the notification center.
+- **ClickPipes**: Azure Blob Storage (ABS) ClickPipes support was added to the ClickHouse Terraform provider. See the provider documentation for an example of how to programmatically create an ABS ClickPipe.
+ - [Bug fix] Object storage ClickPipes writing to a destination table using the Null engine now report "Total records" and "Data ingested" metrics in the UI.
+ - [Bug fix] The “Time period” selector for metrics in the UI defaulted to “24 hours” regardless of the selected time period. This has now been fixed, and the UI correctly updates the charts for the selected time period.
+- **Cross-region private link (AWS)** is now Generally Available. Please refer to the [documentation](/manage/security/aws-privatelink) for the list of supported regions.
+
+## July 31, 2025 {#july-31-2025}
+
+**Vertical scaling for ClickPipes now available**
+
+[Vertical scaling is now available for streaming ClickPipes](https://clickhouse.com/blog/clickpipes-flexible-scaling-monitoring).
+This feature allows you to control the size of each replica, in addition to the
+number of replicas (horizontal scaling). The details page for each ClickPipe now
+also includes per-replica CPU and memory utilization, which helps you better
+understand your workloads and plan re-sizing operations with confidence.
+
+## July 24, 2025 {#july-24-2025}
+
+**ClickPipes for MySQL CDC now in public beta**
+
+The MySQL CDC connector in ClickPipes is now widely available in public beta. With just a few clicks,
+you can start replicating your MySQL (or MariaDB) data directly into ClickHouse Cloud in real-time,
+with no external dependencies. Read the [blogpost](https://clickhouse.com/blog/mysql-cdc-connector-clickpipes-beta)
+for an overview of the connector and follow the [quickstart](https://clickhouse.com/docs/integrations/clickpipes/mysql)
+to get up and running.
+
+## July 11, 2025 {#june-11-2025}
+
+- New services now store database and table metadata in a central **SharedCatalog**,
+ a new model for coordination and object lifecycles which enables:
+ - **Cloud-scale DDL**, even under high concurrency
+ - **Resilient deletion and new DDL operations**
+ - **Fast spin-up and wake-ups** as stateless nodes now launch with no disk dependencies
+ - **Stateless compute across both native and open formats**, including Iceberg and Delta Lake
+
+ Read more about SharedCatalog in our [blog](https://clickhouse.com/blog/clickhouse-cloud-stateless-compute)
+
+- We now support the ability to launch HIPAA compliant services in GCP `europe-west4`
+
+## June 27, 2025 {#june-27-2025}
+
+- We now officially support a Terraform provider for managing database privileges
+ which is also compatible with self-managed deployments. Please refer to the
+ [blog](https://clickhouse.com/blog/new-terraform-provider-manage-clickhouse-database-users-roles-and-privileges-with-code)
+ and our [docs](https://registry.terraform.io/providers/ClickHouse/clickhousedbops/latest/docs)
+ for more information.
+- Enterprise tier services can now enlist in the [slow release channel](/manage/updates/#slow-release-channel-deferred-upgrades) to defer
+ upgrades by two weeks after the regular release to permit additional time for
+ testing.
+
+## June 13, 2025 {#june-13-2025}
+
+- We're excited to announce that ClickHouse Cloud Dashboards are now generally available. Dashboards allow users to visualize queries on dashboards, interact with data via filters and query parameters, and manage sharing.
+- API key IP filters: we are introducing an additional layer of protection for your interactions with ClickHouse Cloud. When generating an API key, you may setup an IP allow list to limit where the API key may be used. Please refer to the [documentation](https://clickhouse.com/docs/cloud/security/setting-ip-filters) for details.
+
+## May 30, 2025 {#may-30-2025}
+
+- We're excited to announce general availability of **ClickPipes for Postgres CDC**
+ in ClickHouse Cloud. With just a few clicks, you can now replicate your Postgres
+ databases and unlock blazing-fast, real-time analytics. The connector delivers
+ faster data synchronization, latency as low as a few seconds, automatic schema changes,
+ fully secure connectivity, and more. Refer to the
+ [blog](https://clickhouse.com/blog/postgres-cdc-connector-clickpipes-ga) for
+ more information. To get started, refer to the instructions [here](https://clickhouse.com/docs/integrations/clickpipes/postgres).
+
+- Introduced new improvements to the SQL console dashboards:
+ - Sharing: You can share your dashboard with your team members. Four levels of access are supported, that can be adjusted both globally and on a per-user basis:
+ - _Write access_: Add/edit visualizations, refresh settings, interact with dashboards via filters.
+ - _Owner_: Share a dashboard, delete a dashboard, and all other permissions of a user with "write access".
+ - _Read-only access_: View and interact with dashboard via filters
+ - _No access_: Cannot view a dashboard
+ - For existing dashboards that have already been created, Organization Administrators can assign existing dashboards to themselves as owners.
+ - You can now add a table or chart from the SQL console to a dashboard from the query view.
+
+
+
+- We are enlisting preview participants for [Distributed cache](https://clickhouse.com/cloud/distributed-cache-waitlist)
+ for AWS and GCP. Read more in the [blog](https://clickhouse.com/blog/building-a-distributed-cache-for-s3).
## May 16, 2025 {#may-16-2025}
@@ -38,7 +143,7 @@ In addition to this ClickHouse Cloud changelog, please see the [Cloud Compatibil
* Memory & CPU: Graphs for `CGroupMemoryTotal` (Allocated Memory), `CGroupMaxCPU` (allocated CPU),
`MemoryResident` (memory used), and `ProfileEvent_OSCPUVirtualTimeMicroseconds` (CPU used)
* Data Transfer: Graphs showing data ingress and egress from ClickHouse Cloud. Learn more [here](/cloud/manage/network-data-transfer).
-- We’re excited to announce the launch of our new ClickHouse Cloud Prometheus/Grafana mix-in,
+- We're excited to announce the launch of our new ClickHouse Cloud Prometheus/Grafana mix-in,
built to simplify monitoring for your ClickHouse Cloud services.
This mix-in uses our Prometheus-compatible API endpoint to seamlessly integrate
ClickHouse metrics into your existing Prometheus and Grafana setup. It includes
@@ -79,7 +184,7 @@ In addition to this ClickHouse Cloud changelog, please see the [Cloud Compatibil
## April 4, 2025 {#april-4-2025}
- Slack notifications for ClickHouse Cloud: ClickHouse Cloud now supports Slack notifications for billing, scaling, and ClickPipes events, in addition to in-console and email notifications. These notifications are sent via the ClickHouse Cloud Slack application. Organization admins can configure these notifications via the notification center by specifying slack channels to which notifications should be sent.
-- Users running Production and Development services will now see ClickPipes and data transfer usage price on their bills. Please refer to the [announcement](/cloud/manage/jan-2025-faq/pricing-dimensions) from January 2025 for more details.
+- Users running Production and Development services will now see ClickPipes and data transfer usage price on their bills.
## March 21, 2025 {#march-21-2025}
@@ -101,7 +206,7 @@ In addition to this ClickHouse Cloud changelog, please see the [Cloud Compatibil
## February 21, 2025 {#february-21-2025}
-### ClickHouse Bring Your Own Cloud (BYOC) for AWS is now generally available! {#clickhouse-byoc-for-aws-ga}
+### ClickHouse Bring Your Own Cloud (BYOC) for AWS is now generally available {#clickhouse-byoc-for-aws-ga}
In this deployment model, data plane components (compute, storage, backups, logs, metrics)
run in the Customer VPC, while the control plane (web access, APIs, and billing)
@@ -150,7 +255,6 @@ in use.
- If your service is already above these limits, we will permit a 10% increase.
Please contact [support](https://clickhouse.com/support/program) if you have any questions.
-
## January 27, 2025 {#january-27-2025}
### Changes to ClickHouse Cloud tiers {#changes-to-clickhouse-cloud-tiers}
@@ -163,7 +267,7 @@ We are adding a **new Enterprise tier** to serve the needs of the most demanding
To support these changes, we are restructuring our current **Development** and **Production** tiers to more closely match how our evolving customer base is using our offerings. We are introducing the **Basic** tier, oriented toward users that are testing out new ideas and projects, and the **Scale** tier, matching users working with production workloads and data at scale.
-You can read about these and other functional changes in this [blog](https://clickhouse.com/blog/evolution-of-clickhouse-cloud-new-features-superior-performance-tailored-offerings). Existing customers will need to take action to select a [new plan](https://clickhouse.com/pricing). Customer-facing communication was sent via email to organization administrators, and the following [FAQ](/cloud/manage/jan-2025-faq/summary) covers the key changes and timelines.
+You can read about these and other functional changes in this [blog](https://clickhouse.com/blog/evolution-of-clickhouse-cloud-new-features-superior-performance-tailored-offerings). Existing customers will need to take action to select a [new plan](https://clickhouse.com/pricing). Customer-facing communication was sent via email to organization administrators.
### Warehouses: Compute-compute separation (GA) {#warehouses-compute-compute-separation-ga}
@@ -191,7 +295,7 @@ Safe managed upgrades deliver significant value to our users by allowing them to
### HIPAA support {#hipaa-support}
-We now support HIPAA in compliant regions, including AWS `us-east-1`, `us-west-2` and GCP `us-central1`, `us-east1`. Customers wishing to onboard must sign a Business Associate Agreement (BAA) and deploy to the compliant version of the region. For more information on HIPAA, please refer to the [documentation](/cloud/security/security-and-compliance).
+We now support HIPAA in compliant regions, including AWS `us-east-1`, `us-west-2` and GCP `us-central1`, `us-east1`. Customers wishing to onboard must sign a Business Associate Agreement (BAA) and deploy to the compliant version of the region. For more information on HIPAA, please refer to the [documentation](/cloud/security/compliance-overview).
### Scheduled upgrades {#scheduled-upgrades}
@@ -225,7 +329,6 @@ We've added several enhancements for the Prometheus integration:
The filtered metrics feature is now available for all users. You can find more details [here](/integrations/prometheus).
-
## December 20, 2024 {#december-20-2024}
### Marketplace subscription organization attachment {#marketplace-subscription-organization-attachment}
@@ -244,15 +347,15 @@ Org Admins can now add more email addresses to a specific notification as additi
## December 6, 2024 {#december-6-2024}
-### BYOC (Beta) {#byoc-beta}
+### BYOC (beta) {#byoc-beta}
Bring Your Own Cloud for AWS is now available in Beta. This deployment model allows you to deploy and run ClickHouse Cloud in your own AWS account. We support deployments in 11+ AWS regions, with more coming soon. Please [contact support](https://clickhouse.com/support/program) for access. Note that this deployment is reserved for large-scale deployments.
-### Postgres Change-Data-Capture (CDC) Connector in ClickPipes {#postgres-change-data-capture-cdc-connector-in-clickpipes}
+### Postgres Change Data Capture (CDC) connector in ClickPipes {#postgres-change-data-capture-cdc-connector-in-clickpipes}
This turnkey integration enables customers to replicate their Postgres databases to ClickHouse Cloud in just a few clicks and leverage ClickHouse for blazing-fast analytics. You can use this connector for both continuous replication and one-time migrations from Postgres.
-### Dashboards (Beta) {#dashboards-beta}
+### Dashboards (beta) {#dashboards-beta}
This week, we're excited to announce the Beta launch of Dashboards in ClickHouse Cloud. With Dashboards, users can turn saved queries into visualizations, organize visualizations onto dashboards, and interact with dashboards using query parameters. To get started, follow the [dashboards documentation](/cloud/manage/dashboards).
@@ -278,15 +381,15 @@ To get started, follow the [Query API Endpoints documentation](/cloud/get-starte
We are launching Beta for our native JSON support in ClickHouse Cloud. To get started, please get in touch with support[ to enable your cloud service](/cloud/support).
-### Vector search using vector similarity indexes (Early Access) {#vector-search-using-vector-similarity-indexes-early-access}
+### Vector search using vector similarity indexes (early access) {#vector-search-using-vector-similarity-indexes-early-access}
-We are announcing vector similarity indexes for approximate vector search in early access!
+We are announcing vector similarity indexes for approximate vector search in early access.
ClickHouse already offers robust support for vector-based use cases, with a wide range of [distance functions]https://clickhouse.com/blog/reinvent-2024-product-announcements#vector-search-using-vector-similarity-indexes-early-access) and the ability to perform linear scans. In addition, more recently, we added an experimental[ approximate vector search](/engines/table-engines/mergetree-family/annindexes) approach powered by the [usearch](https://github.com/unum-cloud/usearch) library and the Hierarchical Navigable Small Worlds (HNSW) approximate nearest neighbor search algorithm.
To get started, [please sign up for the early access waitlist](https://clickhouse.com/cloud/vector-search-index-waitlist).
-### ClickHouse-Connect (Python) and ClickHouse-Kafka-Connect Users {#clickhouse-connect-python-and-clickhouse-kafka-connect-users}
+### ClickHouse-connect (Python) and ClickHouse Kafka Connect users {#clickhouse-connect-python-and-clickhouse-kafka-connect-users}
Notification emails went out to customers who had experienced issues where the clients could encounter a `MEMORY_LIMIT_EXCEEDED` exception.
@@ -302,7 +405,7 @@ You can now grant uni-directional access to a specific data source like AWS MSK.
### ClickPipes now supports IAM for AWS MSK {#clickpipes-now-supports-iam-for-aws-msk}
-You can now use IAM authentication to connect to an MSK broker with AWS MSK ClickPipes. To get started, review our [documentation](/integrations/clickpipes/kafka#iam).
+You can now use IAM authentication to connect to an MSK broker with AWS MSK ClickPipes. To get started, review our [documentation](/integrations/clickpipes/kafka/best-practices/#iam).
### Maximum replica size for new services on AWS {#maximum-replica-size-for-new-services-on-aws}
@@ -312,7 +415,7 @@ From now on, any new services created on AWS will allow a maximum available repl
### Built-in advanced observability dashboard for ClickHouse Cloud {#built-in-advanced-observability-dashboard-for-clickhouse-cloud}
-Previously, the advanced observability dashboard that allows you to monitor ClickHouse server metrics and hardware resource utilization was only available in open-source ClickHouse. We are happy to announce that this feature is now available in the ClickHouse Cloud console!
+Previously, the advanced observability dashboard that allows you to monitor ClickHouse server metrics and hardware resource utilization was only available in open-source ClickHouse. We are happy to announce that this feature is now available in the ClickHouse Cloud console.
This dashboard allows you to view queries based on the [system.dashboards](/operations/system-tables/dashboards) table in an all-in-one UI. Visit **Monitoring > Service Health** page to start using the advanced observability dashboard today.
@@ -320,11 +423,11 @@ This dashboard allows you to view queries based on the [system.dashboards](/oper
### AI-powered SQL autocomplete {#ai-powered-sql-autocomplete}
-We've improved autocomplete significantly, allowing you to get in-line SQL completions as you write your queries with the new AI Copilot! This feature can be enabled by toggling the **"Enable Inline Code Completion"** setting for any ClickHouse Cloud service.
+We've improved autocomplete significantly, allowing you to get in-line SQL completions as you write your queries with the new AI Copilot. This feature can be enabled by toggling the **"Enable Inline Code Completion"** setting for any ClickHouse Cloud service.
-### New "Billing" role {#new-billing-role}
+### New "billing" role {#new-billing-role}
You can now assign users in your organization to a new **Billing** role that allows them to view and manage billing information without giving them the ability to configure or manage services. Simply invite a new user or edit an existing user's role to assign the **Billing** role.
@@ -350,7 +453,7 @@ Customers looking for increased security for protected health information (PHI)
Services are available in GCP `us-central-1` to customers with the **Dedicated** service type and require a Business Associate Agreement (BAA). Contact [sales](mailto:sales@clickhouse.com) or [support](https://clickhouse.com/support/program) to request access to this feature or join the wait list for additional GCP, AWS, and Azure regions.
-### Compute-Compute separation is now in Private Preview for GCP and Azure {#compute-compute-separation-is-now-in-private-preview-for-gcp-and-azure}
+### Compute-compute separation is now in private preview for GCP and Azure {#compute-compute-separation-is-now-in-private-preview-for-gcp-and-azure}
We recently announced the Private Preview for Compute-Compute Separation for AWS. We're happy to announce that it is now available for GCP and Azure.
@@ -360,9 +463,9 @@ Compute-compute separation allows you to designate specific services as read-wri
Customers using multi-factor authentication can now obtain recovery codes that can be used in the event of a lost phone or accidentally deleted token. Customers enrolling in MFA for the first time will be provided the code on set up. Customers with existing MFA can obtain a recovery code by removing their existing MFA token and adding a new one.
-### ClickPipes update: custom certificates, latency insights, and more! {#clickpipes-update-custom-certificates-latency-insights-and-more}
+### ClickPipes update: custom certificates, latency insights, and more. {#clickpipes-update-custom-certificates-latency-insights-and-more}
-We're excited to share the latest updates for ClickPipes, the easiest way to ingest data into your ClickHouse service! These new features are designed to enhance your control over data ingestion and provide greater visibility into performance metrics.
+We're excited to share the latest updates for ClickPipes, the easiest way to ingest data into your ClickHouse service. These new features are designed to enhance your control over data ingestion and provide greater visibility into performance metrics.
*Custom Authentication Certificates for Kafka*
@@ -382,13 +485,13 @@ High throughput can demand extra resources to meet your data volume and latency
*Raw Message Ingestion for Kafka and Kinesis*
-It is now possible to ingest an entire Kafka or Kinesis message without parsing it. ClickPipes now offers support for a `_raw_message` [virtual column](/integrations/clickpipes/kafka#kafka-virtual-columns), allowing users to map the full message into a single String column. This gives you the flexibility to work with raw data as needed.
+It is now possible to ingest an entire Kafka or Kinesis message without parsing it. ClickPipes now offers support for a `_raw_message` [virtual column](/integrations/clickpipes/kafka/reference/#kafka-virtual-columns), allowing users to map the full message into a single String column. This gives you the flexibility to work with raw data as needed.
## August 29, 2024 {#august-29-2024}
### New Terraform provider version - v1.0.0 {#new-terraform-provider-version---v100}
-Terraform allows you to control your ClickHouse Cloud services programmatically, then store your configuration as code. Our Terraform provider has almost 200,000 downloads and is now officially v1.0.0! This new version includes improvements such as better retry logic and a new resource to attach private endpoints to your ClickHouse Cloud service. You can download the [Terraform provider here](https://registry.terraform.io/providers/ClickHouse/clickhouse/latest) and view the [full changelog here](https://github.com/ClickHouse/terraform-provider-clickhouse/releases/tag/v1.0.0).
+Terraform allows you to control your ClickHouse Cloud services programmatically, then store your configuration as code. Our Terraform provider has almost 200,000 downloads and is now officially v1.0.0. This new version includes improvements such as better retry logic and a new resource to attach private endpoints to your ClickHouse Cloud service. You can download the [Terraform provider here](https://registry.terraform.io/providers/ClickHouse/clickhouse/latest) and view the [full changelog here](https://github.com/ClickHouse/terraform-provider-clickhouse/releases/tag/v1.0.0).
### 2024 SOC 2 Type II report and updated ISO 27001 certificate {#2024-soc-2-type-ii-report-and-updated-iso-27001-certificate}
@@ -418,7 +521,7 @@ ClickPipes is the easiest way to ingest data into ClickHouse Cloud. We're happy
In our last cloud changelog, we announced the Private Preview for exporting [Prometheus](https://prometheus.io/) metrics from ClickHouse Cloud. This feature allows you to use the [ClickHouse Cloud API](/cloud/manage/api/api-overview) to get your metrics into tools like [Grafana](https://grafana.com/) and [Datadog](https://www.datadoghq.com/) for visualization. We're happy to announce that this feature is now **Generally Available**. Please see [our docs](/integrations/prometheus) to learn more about this feature.
-### Table Inspector in Cloud Console {#table-inspector-in-cloud-console}
+### Table inspector in Cloud console {#table-inspector-in-cloud-console}
ClickHouse has commands like [`DESCRIBE`](/sql-reference/statements/describe-table) that allow you to introspect your table to examine schema. These commands output to the console, but they are often not convenient to use as you need to combine several queries to retrieve all pertinent data about your tables and columns.
@@ -434,11 +537,11 @@ Our [Java Client](https://github.com/ClickHouse/clickhouse-java) is one of the m
For the last couple of years, we've been working on a new analyzer for query analysis and optimization. This analyzer improves query performance and will allow us to make further optimizations, including faster and more efficient `JOIN`s. Previously, it was required that new users enable this feature using the setting `allow_experimental_analyzer`. This improved analyzer is now available on new ClickHouse Cloud services by default.
-Stay tuned for more improvements to the analyzer as we have many more optimizations planned!
+Stay tuned for more improvements to the analyzer as we have many more optimizations planned.
## June 28, 2024 {#june-28-2024}
-### ClickHouse Cloud for Microsoft Azure is now Generally Available! {#clickhouse-cloud-for-microsoft-azure-is-now-generally-available}
+### ClickHouse Cloud for Microsoft Azure is now generally available {#clickhouse-cloud-for-microsoft-azure-is-now-generally-available}
We first announced Microsoft Azure support in Beta [this past May](https://clickhouse.com/blog/clickhouse-cloud-is-now-on-azure-in-public-beta). In this latest cloud release, we're happy to announce that our Azure support is transitioning from Beta to Generally Available. ClickHouse Cloud is now available on all the three major cloud platforms: AWS, Google Cloud Platform, and now Microsoft Azure.
@@ -451,7 +554,7 @@ If you'd like any specific region to be supported, please [contact us](https://c
### Query log insights {#query-log-insights}
-Our new Query Insights UI in the Cloud Console makes ClickHouse's built-in query log a lot easier to use. ClickHouse's `system.query_log` table is a key source of information for query optimization, debugging, and monitoring overall cluster health and performance. There's just one caveat: with 70+ fields and multiple records per query, interpreting the query log represents a steep learning curve. This initial version of query insights provides a blueprint for future work to simplify query debugging and optimization patterns. We'd love to hear your feedback as we continue to iterate on this feature, so please reach out—your input will be greatly appreciated!
+Our new Query Insights UI in the Cloud console makes ClickHouse's built-in query log a lot easier to use. ClickHouse's `system.query_log` table is a key source of information for query optimization, debugging, and monitoring overall cluster health and performance. There's just one caveat: with 70+ fields and multiple records per query, interpreting the query log represents a steep learning curve. This initial version of query insights provides a blueprint for future work to simplify query debugging and optimization patterns. We'd love to hear your feedback as we continue to iterate on this feature, so please reach out—your input will be greatly appreciated.
@@ -461,7 +564,7 @@ Perhaps one of our most requested features: you can now export [Prometheus](http
-### Other features: {#other-features}
+### Other features {#other-features}
- [Configurable backups](/cloud/manage/backups/configurable-backups) to configure custom backup policies like frequency, retention, and schedule are now Generally Available.
## June 13, 2024 {#june-13-2024}
@@ -481,7 +584,7 @@ The following options are available:
### Enroll services to the Fast release channel {#enroll-services-to-the-fast-release-channel}
-The Fast release channel allows your services to receive updates ahead of the release schedule. Previously, this feature required assistance from the support team to enable. Now, you can use the ClickHouse Cloud console to enable this feature for your services directly. Simply navigate to **Settings**, and click **Enroll in fast releases**. Your service will now receive updates as soon as they are available!
+The Fast release channel allows your services to receive updates ahead of the release schedule. Previously, this feature required assistance from the support team to enable. Now, you can use the ClickHouse Cloud console to enable this feature for your services directly. Simply navigate to **Settings**, and click **Enroll in fast releases**. Your service will now receive updates as soon as they are available.
@@ -503,13 +606,13 @@ We're happy to announce that you can now easily share queries via the ClickHouse
### ClickHouse Cloud for Microsoft Azure is now in beta {#clickhouse-cloud-for-microsoft-azure-is-now-in-beta}
-We've finally launched the ability to create ClickHouse Cloud services on Microsoft Azure! We already have many customers using ClickHouse Cloud on Azure in production as part of our Private Preview program. Now, anyone can create their own service on Azure. All of your favorite ClickHouse features that are supported on AWS and GCP will also work on Azure.
+We've finally launched the ability to create ClickHouse Cloud services on Microsoft Azure. We already have many customers using ClickHouse Cloud on Azure in production as part of our Private Preview program. Now, anyone can create their own service on Azure. All of your favorite ClickHouse features that are supported on AWS and GCP will also work on Azure.
We expect to have ClickHouse Cloud for Azure ready for General Availability in the next few weeks. [Read this blog post](https://clickhouse.com/blog/clickhouse-cloud-is-now-on-azure-in-public-beta) to learn more, or create your new service using Azure via the ClickHouse Cloud console.
Note: **Development** services for Azure are not supported at this time.
-### Set up Private Link via the Cloud Console {#set-up-private-link-via-the-cloud-console}
+### Set up Private Link via the Cloud console {#set-up-private-link-via-the-cloud-console}
Our Private Link feature allows you to connect your ClickHouse Cloud services with internal services in your cloud provider account without having to direct traffic to the public internet, saving costs and enhancing security. Previously, this was difficult to set up and required using the ClickHouse Cloud API.
@@ -519,15 +622,15 @@ You can now configure private endpoints in just a few clicks directly from the C
## May 17, 2024 {#may-17-2024}
-### Ingest data from Amazon Kinesis using ClickPipes (Beta) {#ingest-data-from-amazon-kinesis-using-clickpipes-beta}
+### Ingest data from Amazon Kinesis using ClickPipes (beta) {#ingest-data-from-amazon-kinesis-using-clickpipes-beta}
-ClickPipes is an exclusive service provided by ClickHouse Cloud to ingest data without code. Amazon Kinesis is AWS's fully managed streaming service to ingest and store data streams for processing. We are thrilled to launch the ClickPipes beta for Amazon Kinesis, one of our most requested integrations. We're looking to add more integrations to ClickPipes, so please let us know which data source you'd like us to support! Read more about this feature [here](https://clickhouse.com/blog/clickpipes-amazon-kinesis).
+ClickPipes is an exclusive service provided by ClickHouse Cloud to ingest data without code. Amazon Kinesis is AWS's fully managed streaming service to ingest and store data streams for processing. We are thrilled to launch the ClickPipes beta for Amazon Kinesis, one of our most requested integrations. We're looking to add more integrations to ClickPipes, so please let us know which data source you'd like us to support. Read more about this feature [here](https://clickhouse.com/blog/clickpipes-amazon-kinesis).
You can try the new Amazon Kinesis integration for ClickPipes in the cloud console:
-### Configurable Backups (Private Preview) {#configurable-backups-private-preview}
+### Configurable backups (private preview) {#configurable-backups-private-preview}
Backups are important for every database (no matter how reliable), and we've taken backups very seriously since day 1 of ClickHouse Cloud. This week, we launched Configurable Backups, which allows for much more flexibility for your service's backups. You can now control start time, retention, and frequency. This feature is available for **Production** and **Dedicated** services and is not available for **Development** services. As this feature is in private preview, please contact support@clickhouse.com to enable this for your service. Read more about configurable backups [here](https://clickhouse.com/blog/configurable-backups-in-clickhouse-cloud).
@@ -588,10 +691,9 @@ Other changes:
- Java client: Fixed bug with incorrect error code parsing
- Python client: Fixed parameters binding for numeric types, fixed bugs with number list in query binding, added SQLAlchemy Point support.
-
## April 4, 2024 {#april-4-2024}
-### Introducing the new ClickHouse Cloud Console {#introducing-the-new-clickhouse-cloud-console}
+### Introducing the new ClickHouse Cloud console {#introducing-the-new-clickhouse-cloud-console}
This release introduces a private preview for the new cloud console.
@@ -601,7 +703,7 @@ Thousands of ClickHouse Cloud users execute billions of queries on our SQL conso
Select customers will receive a preview of our new cloud console experience – a unified and immersive way to explore and manage your data in ClickHouse. Please reach out to us at support@clickhouse.com if you'd like priority access.
-
+
## March 28, 2024 {#march-28-2024}
@@ -635,10 +737,10 @@ This release introduces support for Microsoft Azure, Horizontal Scaling via API,
## March 14, 2024 {#march-14-2024}
-This release makes available in early access the new Cloud Console experience, ClickPipes for bulk loading from S3 and GCS, and support for Avro format in ClickPipes for Kafka. It also upgrades the ClickHouse database version to 24.1, bringing support for new functions as well as performance and resource usage optimizations.
+This release makes available in early access the new Cloud console experience, ClickPipes for bulk loading from S3 and GCS, and support for Avro format in ClickPipes for Kafka. It also upgrades the ClickHouse database version to 24.1, bringing support for new functions as well as performance and resource usage optimizations.
### Console changes {#console-changes-2}
-- New Cloud Console experience is available in early access (please contact support if you're interested in participating).
+- New Cloud console experience is available in early access (please contact support if you're interested in participating).
- ClickPipes for bulk loading from S3 and GCS are available in early access (please contact support if you're interested in participating).
- Support for Avro format in ClickPipes for Kafka is available in early access (please contact support if you're interested in participating).
@@ -688,12 +790,12 @@ This release upgrades the core database version, adds ability to set up private
### Integrations changes {#integrations-changes-4}
* Kafka Connect
- * Support async_insert for exactly once (disabled by default)
+ * Support async_insert for exactly once (disabled by default)
* Golang client
- * Fixed DateTime binding
- * Improved batch insert performance
+ * Fixed DateTime binding
+ * Improved batch insert performance
* Java client
- * Fixed request compression problem
+ * Fixed request compression problem
### Settings changes {#settings-changes}
* `use_mysql_types_in_show_columns` is no longer required. It will be automatically enabled when you connect through the MySQL interface.
@@ -724,7 +826,6 @@ This release brings availability of ClickPipes for Azure Event Hub, dramatically
* Metabase
* Added support for a connection to multiple databases
-
## January 18, 2024 {#january-18-2024}
This release brings a new region in AWS (London / eu-west-2), adds ClickPipes support for Redpanda, Upstash, and Warpstream, and improves reliability of the [is_deleted](/engines/table-engines/mergetree-family/replacingmergetree#is_deleted) core database capability.
@@ -750,7 +851,6 @@ This release brings a new region in AWS (London / eu-west-2), adds ClickPipes su
### Reliability changes {#reliability-changes}
- User-facing backward incompatible change: Previously, two features ([is_deleted](/engines/table-engines/mergetree-family/replacingmergetree#is_deleted) and ``OPTIMIZE CLEANUP``) under certain conditions could lead to corruption of the data in ClickHouse. To protect the integrity of the data of our users, while keeping the core of the functionality, we adjusted how this feature works. Specifically, the MergeTree setting ``clean_deleted_rows`` is now deprecated and has no effect anymore. The ``CLEANUP`` keyword is not allowed by default (to use it you will need to enable ``allow_experimental_replacing_merge_with_cleanup``). If you decide to use ``CLEANUP``, you need to make sure that it is always used together with ``FINAL``, and you must guarantee that no rows with older versions will be inserted after you run ``OPTIMIZE FINAL CLEANUP``.
-
## December 18, 2023 {#december-18-2023}
This release brings a new region in GCP (us-east1), ability to self-service secure endpoint connections, support for additional integrations including DBT 1.7, and numerous bug fixes and security enhancements.
@@ -780,7 +880,6 @@ This release brings a new region in GCP (us-east1), ability to self-service secu
- CVE-2023-48704 (CVSS 7.0) - a heap buffer overflow vulnerability affecting the native interface running by default on port 9000/tcp
- CVE 2023-48298 (CVSS 5.9) - an integer underflow vulnerability in the FPC compressions codec
-
## November 22, 2023 {#november-22-2023}
This release upgrades the core database version, improves login and authentication flow, and adds proxy support to Kafka Connect Sink.
@@ -856,7 +955,7 @@ This release brings general availability of ClickPipes for Kafka, Confluent Clou
### Console changes {#console-changes-11}
- Added a self-service workflow to secure [access to Amazon S3 via IAM roles](/cloud/security/secure-s3)
-- Introduced AI-assisted query suggestions in private preview (please [contact ClickHouse Cloud support](https://console.clickhouse.cloud/support) to try it out!)
+- Introduced AI-assisted query suggestions in private preview (please [contact ClickHouse Cloud support](https://console.clickhouse.cloud/support) to try it out.)
### Integrations changes {#integrations-changes-11}
- Announced general availability of ClickPipes - a turnkey data ingestion service - for Kafka, Confluent Cloud, and Amazon MSK (see the [release blog](https://clickhouse.com/blog/clickpipes-is-generally-available))
@@ -994,9 +1093,21 @@ This release brings the public release of the ClickHouse Cloud Programmatic API
## May 11, 2023 {#may-11-2023}
-This release brings the ~~public beta~~ (now GA, see June 20th entry above) of ClickHouse Cloud on GCP (see [blog](https://clickhouse.com/blog/clickhouse-cloud-on-gcp-available-in-public-beta) for details), extends administrators rights to grant terminate query permissions, and adds more visibility into the status of MFA users in the Cloud console.
+This release brings the public beta of ClickHouse Cloud on GCP
+(see [blog](https://clickhouse.com/blog/clickhouse-cloud-on-gcp-available-in-public-beta)
+for details), extends administrators' rights to grant terminate query permissions,
+and adds more visibility into the status of MFA users in the Cloud console.
+
+:::note Update
+ClickHouse Cloud on GCP is now GA, see the entry for June twenty above.
+:::
+
+### ClickHouse Cloud on GCP is now available in public beta {#clickhouse-cloud-on-gcp-is-now-available-in-public-beta-now-ga-see-june-20th-entry-above}
+
+:::note
+ClickHouse Cloud on GCP is now GA, see the [June 20th](#june-20-2023) entry above.
+:::
-### ClickHouse Cloud on GCP ~~(Public Beta)~~ (now GA, see June 20th entry above) {#clickhouse-cloud-on-gcp-public-beta-now-ga-see-june-20th-entry-above}
- Launches a fully-managed separated storage and compute ClickHouse offering, running on top of Google Compute and Google Cloud Storage
- Available in Iowa (us-central1), Netherlands (europe-west4), and Singapore (asia-southeast1) regions
- Supports both Development and Production services in all three initial regions
@@ -1079,7 +1190,6 @@ This release brings an API for retrieving cloud endpoints, an advanced scaling c
### Bug fixes {#bug-fixes-1}
* Fixed behavior where running `INSERT INTO ... SELECT ...` from the SQL console incorrectly applied the same row limit as select queries
-
## March 23, 2023 {#march-23-2023}
This release brings database password complexity rules, significant speedup in restoring large backups, and support for displaying traces in Grafana Trace View.
@@ -1113,7 +1223,6 @@ This release brings database password complexity rules, significant speedup in r
- Fixed a bug resulting in slow initial provisioning and startup times for new services
- Fixed a bug that resulted in slower query performance due to cache misconfiguration
-
## March 9, 2023 {#march-9-2023}
This release improves observability dashboards, optimizes time to create large backups, and adds the configuration necessary to drop large tables and partitions.
@@ -1199,7 +1308,6 @@ This release brings an officially supported Metabase integration, a major Java c
- Fixed a bug where SQL console CSV export was truncated
- Fixed a bug resulting in intermittent sample data upload failures
-
## January 12, 2023 {#january-12-2023}
This release updates the ClickHouse version to 22.12, enables dictionaries for many new sources, and improves query performance.
@@ -1253,7 +1361,7 @@ This release introduces seamless logins for administrators to SQL console, impro
### Integrations changes {#integrations-changes-26}
- The [Metabase plugin](/integrations/data-visualization/metabase-and-clickhouse.md) got a long-awaited v0.9.1 major update. Now it is compatible with the latest Metabase version and has been thoroughly tested against ClickHouse Cloud.
-## December 6, 2022 - General Availability {#december-6-2022---general-availability}
+## December 6, 2022 - General availability {#december-6-2022---general-availability}
ClickHouse Cloud is now production-ready with SOC2 Type II compliance, uptime SLAs for production workloads, and public status page. This release includes major new capabilities like AWS Marketplace integration, SQL console - a data exploration workbench for ClickHouse users, and ClickHouse Academy - self-paced learning in ClickHouse Cloud. Learn more in this [blog](https://clickhouse.com/blog/clickhouse-cloud-generally-available).
@@ -1335,7 +1443,7 @@ This release enables dictionaries from local ClickHouse table and HTTP sources,
### General changes {#general-changes-5}
- Added support for [dictionaries](/sql-reference/dictionaries/index.md) from local ClickHouse table and HTTP sources
-- Introduced support for the Mumbai [region](/cloud/reference/supported-regions.md)
+- Introduced support for the Mumbai [region](/cloud/reference/supported-regions)
### Console changes {#console-changes-30}
@@ -1379,7 +1487,6 @@ This release removes read & write units from pricing (see the [pricing page](htt
- Added functions for Morton curve encoding, Java integer hashing, and random number generation.
- See the [detailed 22.10 changelog](/whats-new/cloud#clickhouse-2210-version-upgrade) for the complete list of changes.
-
## October 25, 2022 {#october-25-2022}
This release significantly lowers compute consumption for small workloads, lowers compute pricing (see [pricing](https://clickhouse.com/pricing) page for details), improves stability through better defaults, and enhances the Billing and Usage views in the ClickHouse Cloud console.
@@ -1404,4 +1511,4 @@ This release significantly lowers compute consumption for small workloads, lower
ClickHouse Cloud began its public Beta on October 4th, 2022. Learn more in this [blog](https://clickhouse.com/blog/clickhouse-cloud-public-beta).
-The ClickHouse Cloud version is based on ClickHouse core v22.10. For a list of compatible features, refer to the [Cloud Compatibility](/cloud/reference/cloud-compatibility.md) guide.
+The ClickHouse Cloud version is based on ClickHouse core v22.10. For a list of compatible features, refer to the [Cloud Compatibility](/whats-new/cloud-compatibility) guide.
diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/cloud/changelogs/fast-release-24-2.md b/i18n/zh/docusaurus-plugin-content-docs/current/cloud/reference/01_changelog/02_release_notes/24_02.md
similarity index 99%
rename from i18n/zh/docusaurus-plugin-content-docs/current/cloud/changelogs/fast-release-24-2.md
rename to i18n/zh/docusaurus-plugin-content-docs/current/cloud/reference/01_changelog/02_release_notes/24_02.md
index 714f8a8f575..0600119bc76 100644
--- a/i18n/zh/docusaurus-plugin-content-docs/current/cloud/changelogs/fast-release-24-2.md
+++ b/i18n/zh/docusaurus-plugin-content-docs/current/cloud/reference/01_changelog/02_release_notes/24_02.md
@@ -3,12 +3,14 @@ slug: /whats-new/changelog/24.2-fast-release
title: 'v24.2 Changelog'
description: 'Fast release changelog for v24.2'
keywords: ['changelog']
-sidebar_label: 'v24.2'
+sidebar_label: '24.2'
+sidebar_position: 8
+doc_type: 'changelog'
---
### ClickHouse release tag: 24.2.2.15987 {#clickhouse-release-tag-242215987}
-#### Backward Incompatible Change {#backward-incompatible-change}
+#### Backward incompatible change {#backward-incompatible-change}
* Validate suspicious/experimental types in nested types. Previously we didn't validate such types (except JSON) in nested types like Array/Tuple/Map. [#59385](https://github.com/ClickHouse/ClickHouse/pull/59385) ([Kruglov Pavel](https://github.com/Avogar)).
* The sort clause `ORDER BY ALL` (introduced with v23.12) is replaced by `ORDER BY *`. The previous syntax was too error-prone for tables with a column `all`. [#59450](https://github.com/ClickHouse/ClickHouse/pull/59450) ([Robert Schulze](https://github.com/rschu1ze)).
* Add sanity check for number of threads and block sizes. [#60138](https://github.com/ClickHouse/ClickHouse/pull/60138) ([Raúl Marín](https://github.com/Algunenano)).
@@ -20,9 +22,9 @@ sidebar_label: 'v24.2'
* ClickHouse allows arbitrary binary data in the String data type, which is typically UTF-8. Parquet/ORC/Arrow Strings only support UTF-8. That's why you can choose which Arrow's data type to use for the ClickHouse String data type - String or Binary. This is controlled by the settings, `output_format_parquet_string_as_string`, `output_format_orc_string_as_string`, `output_format_arrow_string_as_string`. While Binary would be more correct and compatible, using String by default will correspond to user expectations in most cases. Parquet/ORC/Arrow supports many compression methods, including lz4 and zstd. ClickHouse supports each and every compression method. Some inferior tools lack support for the faster `lz4` compression method, that's why we set `zstd` by default. This is controlled by the settings `output_format_parquet_compression_method`, `output_format_orc_compression_method`, and `output_format_arrow_compression_method`. We changed the default to `zstd` for Parquet and ORC, but not Arrow (it is emphasized for low-level usages). [#61817](https://github.com/ClickHouse/ClickHouse/pull/61817) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Fix for the materialized view security issue, which allowed a user to insert into a table without required grants for that. Fix validates that the user has permission to insert not only into a materialized view but also into all underlying tables. This means that some queries, which worked before, now can fail with Not enough privileges. To address this problem, the release introduces a new feature of SQL security for views [https://clickhouse.com/docs/sql-reference/statements/create/view#sql_security](/sql-reference/statements/create/view#sql_security). [#54901](https://github.com/ClickHouse/ClickHouse/pull/54901) ([pufit](https://github.com/pufit))
-#### New Feature {#new-feature}
+#### New feature {#new-feature}
* Topk/topkweighed support mode, which return count of values and it's error. [#54508](https://github.com/ClickHouse/ClickHouse/pull/54508) ([UnamedRus](https://github.com/UnamedRus)).
-* Added new syntax which allows to specify definer user in View/Materialized View. This allows to execute selects/inserts from views without explicit grants for underlying tables. [#54901](https://github.com/ClickHouse/ClickHouse/pull/54901) ([pufit](https://github.com/pufit)).
+* Added new syntax which allows to specify definer user in view/materialized view. This allows to execute selects/inserts from views without explicit grants for underlying tables. [#54901](https://github.com/ClickHouse/ClickHouse/pull/54901) ([pufit](https://github.com/pufit)).
* Implemented automatic conversion of merge tree tables of different kinds to replicated engine. Create empty `convert_to_replicated` file in table's data directory (`/clickhouse/store/xxx/xxxyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy/`) and that table will be converted automatically on next server start. [#57798](https://github.com/ClickHouse/ClickHouse/pull/57798) ([Kirill](https://github.com/kirillgarbar)).
* Added table function `mergeTreeIndex`. It represents the contents of index and marks files of `MergeTree` tables. It can be used for introspection. Syntax: `mergeTreeIndex(database, table, [with_marks = true])` where `database.table` is an existing table with `MergeTree` engine. [#58140](https://github.com/ClickHouse/ClickHouse/pull/58140) ([Anton Popov](https://github.com/CurtizJ)).
* Try to detect file format automatically during schema inference if it's unknown in `file/s3/hdfs/url/azureBlobStorage` engines. Closes [#50576](https://github.com/ClickHouse/ClickHouse/issues/50576). [#59092](https://github.com/ClickHouse/ClickHouse/pull/59092) ([Kruglov Pavel](https://github.com/Avogar)).
@@ -37,7 +39,7 @@ sidebar_label: 'v24.2'
* Added function `toMillisecond` which returns the millisecond component for values of type`DateTime` or `DateTime64`. [#60281](https://github.com/ClickHouse/ClickHouse/pull/60281) ([Shaun Struwig](https://github.com/Blargian)).
* Support single-argument version for the merge table function, as `merge(['db_name', ] 'tables_regexp')`. [#60372](https://github.com/ClickHouse/ClickHouse/pull/60372) ([豪肥肥](https://github.com/HowePa)).
* Make all format names case insensitive, like Tsv, or TSV, or tsv, or even rowbinary. [#60420](https://github.com/ClickHouse/ClickHouse/pull/60420) ([豪肥肥](https://github.com/HowePa)).
-* Added new syntax which allows to specify definer user in View/Materialized View. This allows to execute selects/inserts from views without explicit grants for underlying tables. [#60439](https://github.com/ClickHouse/ClickHouse/pull/60439) ([pufit](https://github.com/pufit)).
+* Added new syntax which allows to specify definer user in view/materialized view. This allows to execute selects/inserts from views without explicit grants for underlying tables. [#60439](https://github.com/ClickHouse/ClickHouse/pull/60439) ([pufit](https://github.com/pufit)).
* Add four properties to the `StorageMemory` (memory-engine) `min_bytes_to_keep, max_bytes_to_keep, min_rows_to_keep` and `max_rows_to_keep` - Add tests to reflect new changes - Update `memory.md` documentation - Add table `context` property to `MemorySink` to enable access to table parameter bounds. [#60612](https://github.com/ClickHouse/ClickHouse/pull/60612) ([Jake Bamrah](https://github.com/JakeBamrah)).
* Added function `toMillisecond` which returns the millisecond component for values of type`DateTime` or `DateTime64`. [#60649](https://github.com/ClickHouse/ClickHouse/pull/60649) ([Robert Schulze](https://github.com/rschu1ze)).
* Separate limits on number of waiting and executing queries. Added new server setting `max_waiting_queries` that limits the number of queries waiting due to `async_load_databases`. Existing limits on number of executing queries no longer count waiting queries. [#61053](https://github.com/ClickHouse/ClickHouse/pull/61053) ([Sergei Trifonov](https://github.com/serxa)).
diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/cloud/changelogs/changelog-24-5.md b/i18n/zh/docusaurus-plugin-content-docs/current/cloud/reference/01_changelog/02_release_notes/24_05.md
similarity index 98%
rename from i18n/zh/docusaurus-plugin-content-docs/current/cloud/changelogs/changelog-24-5.md
rename to i18n/zh/docusaurus-plugin-content-docs/current/cloud/reference/01_changelog/02_release_notes/24_05.md
index 256c6e4c3be..ad97ed2b6ac 100644
--- a/i18n/zh/docusaurus-plugin-content-docs/current/cloud/changelogs/changelog-24-5.md
+++ b/i18n/zh/docusaurus-plugin-content-docs/current/cloud/reference/01_changelog/02_release_notes/24_05.md
@@ -3,14 +3,16 @@ slug: /changelogs/24.5
title: 'v24.5 Changelog for Cloud'
description: 'Fast release changelog for v24.5'
keywords: ['changelog', 'cloud']
-sidebar_label: 'v24.5'
+sidebar_label: '24.5'
+sidebar_position: 7
+doc_type: 'changelog'
---
-# v24.5 Changelog for Cloud
+# V24.5 changelog for Cloud
Relevant changes for ClickHouse Cloud services based on the v24.5 release.
-## Breaking Changes {#breaking-changes}
+## Breaking changes {#breaking-changes}
* Change the column name from duration_ms to duration_microseconds in the system.zookeeper table to reflect the reality that the duration is in the microsecond resolution. [#60774](https://github.com/ClickHouse/ClickHouse/pull/60774) (Duc Canh Le).
@@ -20,8 +22,7 @@ Relevant changes for ClickHouse Cloud services based on the v24.5 release.
* Usage of functions neighbor, runningAccumulate, runningDifferenceStartingWithFirstValue, runningDifference deprecated (because it is error-prone). Proper window functions should be used instead. To enable them back, set allow_deprecated_error_prone_window_functions=1. [#63132](https://github.com/ClickHouse/ClickHouse/pull/63132) (Nikita Taranov).
-
-## Backward Incompatible Changes {#backward-incompatible-changes}
+## Backward incompatible changes {#backward-incompatible-changes}
* In the new ClickHouse version, the functions geoDistance, greatCircleDistance, and greatCircleAngle will use 64-bit double precision floating point data type for internal calculations and return type if all the arguments are Float64. This closes #58476. In previous versions, the function always used Float32. You can switch to the old behavior by setting geo_distance_returns_float64_on_float64_arguments to false or setting compatibility to 24.2 or earlier. [#61848](https://github.com/ClickHouse/ClickHouse/pull/61848) (Alexey Milovidov).
@@ -29,7 +30,7 @@ Relevant changes for ClickHouse Cloud services based on the v24.5 release.
* Fix crash in largestTriangleThreeBuckets. This changes the behaviour of this function and makes it to ignore NaNs in the series provided. Thus the resultset might differ from previous versions. [#62646](https://github.com/ClickHouse/ClickHouse/pull/62646) (Raúl Marín).
-## New Features {#new-features}
+## New features {#new-features}
* The new analyzer is enabled by default on new services.
diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/cloud/changelogs/changelog-24-6.md b/i18n/zh/docusaurus-plugin-content-docs/current/cloud/reference/01_changelog/02_release_notes/24_06.md
similarity index 99%
rename from i18n/zh/docusaurus-plugin-content-docs/current/cloud/changelogs/changelog-24-6.md
rename to i18n/zh/docusaurus-plugin-content-docs/current/cloud/reference/01_changelog/02_release_notes/24_06.md
index 3dc8d747ea5..1436edd5227 100644
--- a/i18n/zh/docusaurus-plugin-content-docs/current/cloud/changelogs/changelog-24-6.md
+++ b/i18n/zh/docusaurus-plugin-content-docs/current/cloud/reference/01_changelog/02_release_notes/24_06.md
@@ -3,18 +3,20 @@ slug: /changelogs/24.6
title: 'v24.6 Changelog for Cloud'
description: 'Fast release changelog for v24.6'
keywords: ['changelog', 'cloud']
-sidebar_label: 'v24.6'
+sidebar_label: '24.6'
+sidebar_position: 6
+doc_type: 'changelog'
---
-# v24.6 Changelog for Cloud
+# V24.6 changelog for Cloud
Relevant changes for ClickHouse Cloud services based on the v24.6 release.
-## Backward Incompatible Change {#backward-incompatible-change}
+## Backward incompatible change {#backward-incompatible-change}
* Rework parallel processing in `Ordered` mode of storage `S3Queue`. This PR is backward incompatible for Ordered mode if you used settings `s3queue_processing_threads_num` or `s3queue_total_shards_num`. Setting `s3queue_total_shards_num` is deleted, previously it was allowed to use only under `s3queue_allow_experimental_sharded_mode`, which is now deprecated. A new setting is added - `s3queue_buckets`. [#64349](https://github.com/ClickHouse/ClickHouse/pull/64349) ([Kseniia Sumarokova](https://github.com/kssenii)).
* New functions `snowflakeIDToDateTime`, `snowflakeIDToDateTime64`, `dateTimeToSnowflakeID`, and `dateTime64ToSnowflakeID` were added. Unlike the existing functions `snowflakeToDateTime`, `snowflakeToDateTime64`, `dateTimeToSnowflake`, and `dateTime64ToSnowflake`, the new functions are compatible with function `generateSnowflakeID`, i.e. they accept the snowflake IDs generated by `generateSnowflakeID` and produce snowflake IDs of the same type as `generateSnowflakeID` (i.e. `UInt64`). Furthermore, the new functions default to the UNIX epoch (aka. 1970-01-01), just like `generateSnowflakeID`. If necessary, a different epoch, e.g. Twitter's/X's epoch 2010-11-04 aka. 1288834974657 msec since UNIX epoch, can be passed. The old conversion functions are deprecated and will be removed after a transition period: to use them regardless, enable setting `allow_deprecated_snowflake_conversion_functions`. [#64948](https://github.com/ClickHouse/ClickHouse/pull/64948) ([Robert Schulze](https://github.com/rschu1ze)).
-## New Feature {#new-feature}
+## New feature {#new-feature}
* Support empty tuples. [#55061](https://github.com/ClickHouse/ClickHouse/pull/55061) ([Amos Bird](https://github.com/amosbird)).
* Add Hilbert Curve encode and decode functions. [#60156](https://github.com/ClickHouse/ClickHouse/pull/60156) ([Artem Mustafin](https://github.com/Artemmm91)).
diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/cloud/changelogs/changelog-24-8.md b/i18n/zh/docusaurus-plugin-content-docs/current/cloud/reference/01_changelog/02_release_notes/24_08.md
similarity index 97%
rename from i18n/zh/docusaurus-plugin-content-docs/current/cloud/changelogs/changelog-24-8.md
rename to i18n/zh/docusaurus-plugin-content-docs/current/cloud/reference/01_changelog/02_release_notes/24_08.md
index 29cabc28e51..5567fdccb05 100644
--- a/i18n/zh/docusaurus-plugin-content-docs/current/cloud/changelogs/changelog-24-8.md
+++ b/i18n/zh/docusaurus-plugin-content-docs/current/cloud/reference/01_changelog/02_release_notes/24_08.md
@@ -3,12 +3,14 @@ slug: /changelogs/24.8
title: 'v24.8 Changelog for Cloud'
description: 'Fast release changelog for v24.8'
keywords: ['changelog', 'cloud']
-sidebar_label: 'v24.8'
+sidebar_label: '24.8'
+sidebar_position: 5
+doc_type: 'changelog'
---
Relevant changes for ClickHouse Cloud services based on the v24.8 release.
-## Backward Incompatible Change {#backward-incompatible-change}
+## Backward incompatible change {#backward-incompatible-change}
- Change binary serialization of Variant data type: add compact mode to avoid writing the same discriminator multiple times for granules with single variant or with only NULL values. Add MergeTree setting use_compact_variant_discriminators_serialization that is enabled by default. Note that Variant type is still experimental and backward-incompatible change in serialization should not impact you unless you have been working with support to get this feature enabled earlier. [#62774](https://github.com/ClickHouse/ClickHouse/pull/62774) (Kruglov Pavel).
@@ -28,8 +30,7 @@ Relevant changes for ClickHouse Cloud services based on the v24.8 release.
- Fix REPLACE modifier formatting (forbid omitting brackets). [#67774](https://github.com/ClickHouse/ClickHouse/pull/67774) (Azat Khuzhin).
-
-## New Feature {#new-feature}
+## New feature {#new-feature}
- Extend function tuple to construct named tuples in query. Introduce function tupleNames to extract names from tuples. [#54881](https://github.com/ClickHouse/ClickHouse/pull/54881) (Amos Bird).
diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/cloud/changelogs/changelog-24-10.md b/i18n/zh/docusaurus-plugin-content-docs/current/cloud/reference/01_changelog/02_release_notes/24_10.md
similarity index 98%
rename from i18n/zh/docusaurus-plugin-content-docs/current/cloud/changelogs/changelog-24-10.md
rename to i18n/zh/docusaurus-plugin-content-docs/current/cloud/reference/01_changelog/02_release_notes/24_10.md
index e75eec40655..097e6fa5f91 100644
--- a/i18n/zh/docusaurus-plugin-content-docs/current/cloud/changelogs/changelog-24-10.md
+++ b/i18n/zh/docusaurus-plugin-content-docs/current/cloud/reference/01_changelog/02_release_notes/24_10.md
@@ -3,12 +3,14 @@ slug: /changelogs/24.10
title: 'v24.10 Changelog for Cloud'
description: 'Fast release changelog for v24.10'
keywords: ['changelog', 'cloud']
-sidebar_label: 'v24.10'
+sidebar_label: '24.10'
+sidebar_position: 4
+doc_type: 'changelog'
---
Relevant changes for ClickHouse Cloud services based on the v24.10 release.
-## Backward Incompatible Change {#backward-incompatible-change}
+## Backward incompatible change {#backward-incompatible-change}
- Allow to write `SETTINGS` before `FORMAT` in a chain of queries with `UNION` when subqueries are inside parentheses. This closes [#39712](https://github.com/ClickHouse/ClickHouse/issues/39712). Change the behavior when a query has the SETTINGS clause specified twice in a sequence. The closest SETTINGS clause will have a preference for the corresponding subquery. In the previous versions, the outermost SETTINGS clause could take a preference over the inner one. [#60197](https://github.com/ClickHouse/ClickHouse/pull/60197)[#68614](https://github.com/ClickHouse/ClickHouse/pull/68614) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
- Reimplement Dynamic type. Now when the limit of dynamic data types is reached new types are not cast to String but stored in a special data structure in binary format with binary encoded data type. Now any type ever inserted into Dynamic column can be read from it as subcolumn. [#68132](https://github.com/ClickHouse/ClickHouse/pull/68132) ([Pavel Kruglov](https://github.com/Avogar)).
- Expressions like `a[b].c` are supported for named tuples, as well as named subscripts from arbitrary expressions, e.g., `expr().name`. This is useful for processing JSON. This closes [#54965](https://github.com/ClickHouse/ClickHouse/issues/54965). In previous versions, an expression of form `expr().name` was parsed as `tupleElement(expr(), name)`, and the query analyzer was searching for a column `name` rather than for the corresponding tuple element; while in the new version, it is changed to `tupleElement(expr(), 'name')`. In most cases, the previous version was not working, but it is possible to imagine a very unusual scenario when this change could lead to incompatibility: if you stored names of tuple elements in a column or an alias, that was named differently than the tuple element's name: `SELECT 'b' AS a, CAST([tuple(123)] AS 'Array(Tuple(b UInt8))') AS t, t[1].a`. It is very unlikely that you used such queries, but we still have to mark this change as potentially backward incompatible. [#68435](https://github.com/ClickHouse/ClickHouse/pull/68435) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
@@ -16,8 +18,7 @@ Relevant changes for ClickHouse Cloud services based on the v24.10 release.
- Reordering of filter conditions from `[PRE]WHERE` clause is now allowed by default. It could be disabled by setting `allow_reorder_prewhere_conditions` to `false`. [#70657](https://github.com/ClickHouse/ClickHouse/pull/70657) ([Nikita Taranov](https://github.com/nickitat)).
- Fix `optimize_functions_to_subcolumns` optimization (previously could lead to `Invalid column type for ColumnUnique::insertRangeFrom. Expected String, got LowCardinality(String)` error), by preserving `LowCardinality` type in `mapKeys`/`mapValues`. [#70716](https://github.com/ClickHouse/ClickHouse/pull/70716) ([Azat Khuzhin](https://github.com/azat)).
-
-## New Feature {#new-feature}
+## New feature {#new-feature}
- Refreshable materialized views are production ready. [#70550](https://github.com/ClickHouse/ClickHouse/pull/70550) ([Michael Kolupaev](https://github.com/al13n321)). Refreshable materialized views are now supported in Replicated databases. [#60669](https://github.com/ClickHouse/ClickHouse/pull/60669) ([Michael Kolupaev](https://github.com/al13n321)).
- Function `toStartOfInterval()` now has a new overload which emulates TimescaleDB's `time_bucket()` function, respectively PostgreSQL's `date_bin()` function. ([#55619](https://github.com/ClickHouse/ClickHouse/issues/55619)). It allows to align date or timestamp values to multiples of a given interval from an *arbitrary* origin (instead of 0000-01-01 00:00:00.000 as *fixed* origin). For example, `SELECT toStartOfInterval(toDateTime('2023-01-01 14:45:00'), INTERVAL 1 MINUTE, toDateTime('2023-01-01 14:35:30'));` returns `2023-01-01 14:44:30` which is a multiple of 1 minute intervals, starting from origin `2023-01-01 14:35:30`. [#56738](https://github.com/ClickHouse/ClickHouse/pull/56738) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
- MongoDB integration refactored: migration to new driver mongocxx from deprecated Poco::MongoDB, remove support for deprecated old protocol, support for connection by URI, support for all MongoDB types, support for WHERE and ORDER BY statements on MongoDB side, restriction for expression unsupported by MongoDB. [#63279](https://github.com/ClickHouse/ClickHouse/pull/63279) ([Kirill Nikiforov](https://github.com/allmazz)).
@@ -50,5 +51,3 @@ Relevant changes for ClickHouse Cloud services based on the v24.10 release.
- Allow to read/write JSON type as binary string in RowBinary format under settings `input_format_binary_read_json_as_string/output_format_binary_write_json_as_string`. [#70288](https://github.com/ClickHouse/ClickHouse/pull/70288) ([Pavel Kruglov](https://github.com/Avogar)).
- Allow to serialize/deserialize JSON column as single String column in Native format. For output use setting `output_format_native_write_json_as_string`. For input, use serialization version `1` before the column data. [#70312](https://github.com/ClickHouse/ClickHouse/pull/70312) ([Pavel Kruglov](https://github.com/Avogar)).
- Supports standard CTE, `with insert`, as previously only supports `insert ... with ...`. [#70593](https://github.com/ClickHouse/ClickHouse/pull/70593) ([Shichao Jin](https://github.com/jsc0218)).
-
-
diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/cloud/changelogs/changelog-24-12.md b/i18n/zh/docusaurus-plugin-content-docs/current/cloud/reference/01_changelog/02_release_notes/24_12.md
similarity index 99%
rename from i18n/zh/docusaurus-plugin-content-docs/current/cloud/changelogs/changelog-24-12.md
rename to i18n/zh/docusaurus-plugin-content-docs/current/cloud/reference/01_changelog/02_release_notes/24_12.md
index feb1b2fe93a..239257061ea 100644
--- a/i18n/zh/docusaurus-plugin-content-docs/current/cloud/changelogs/changelog-24-12.md
+++ b/i18n/zh/docusaurus-plugin-content-docs/current/cloud/reference/01_changelog/02_release_notes/24_12.md
@@ -3,12 +3,14 @@ slug: /changelogs/24.12
title: 'v24.12 Changelog for Cloud'
description: 'Fast release changelog for v24.12'
keywords: ['changelog', 'cloud']
-sidebar_label: 'v24.12'
+sidebar_label: '24.12'
+sidebar_position: 3
+doc_type: 'changelog'
---
Relevant changes for ClickHouse Cloud services based on the v24.12 release.
-## Backward Incompatible Changes {#backward-incompatible-changes}
+## Backward incompatible changes {#backward-incompatible-changes}
- Functions `greatest` and `least` now ignore NULL input values, whereas they previously returned NULL if one of the arguments was NULL. For example, `SELECT greatest(1, 2, NULL)` now returns 2. This makes the behavior compatible with PostgreSQL. [#65519](https://github.com/ClickHouse/ClickHouse/pull/65519) ([kevinyhzou](https://github.com/KevinyhZou)).
- Don't allow Variant/Dynamic types in ORDER BY/GROUP BY/PARTITION BY/PRIMARY KEY by default because it may lead to unexpected results. [#69731](https://github.com/ClickHouse/ClickHouse/pull/69731) ([Pavel Kruglov](https://github.com/Avogar)).
@@ -23,7 +25,7 @@ Relevant changes for ClickHouse Cloud services based on the v24.12 release.
- Remove support for `Enum` as well as `UInt128` and `UInt256` arguments in `deltaSumTimestamp`. Remove support for `Int8`, `UInt8`, `Int16`, and `UInt16` of the second ("timestamp") argument of `deltaSumTimestamp`. [#71790](https://github.com/ClickHouse/ClickHouse/pull/71790) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
- Added source query validation when ClickHouse is used as a source for a dictionary. [#72548](https://github.com/ClickHouse/ClickHouse/pull/72548) ([Alexey Katsman](https://github.com/alexkats)).
-## New Features {#new-features}
+## New features {#new-features}
- Implement SYSTEM LOAD PRIMARY KEY command to load primary indexes for all parts of a specified table or for all tables if no table is specified. This will be useful for benchmarks and to prevent extra latency during query execution. [#66252](https://github.com/ClickHouse/ClickHouse/pull/66252) ([ZAWA_ll](https://github.com/Zawa-ll)).
- Added statement `SYSTEM LOAD PRIMARY KEY` for loading the primary indexes of all parts in a specified table or for all tables if no table is specified. This can be useful for benchmarking and to prevent extra latency during query execution. [#67733](https://github.com/ClickHouse/ClickHouse/pull/67733) ([ZAWA_ll](https://github.com/Zawa-ll)).
diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/cloud/changelogs/changelog-25_1-25_4.md b/i18n/zh/docusaurus-plugin-content-docs/current/cloud/reference/01_changelog/02_release_notes/25_04.md
similarity index 99%
rename from i18n/zh/docusaurus-plugin-content-docs/current/cloud/changelogs/changelog-25_1-25_4.md
rename to i18n/zh/docusaurus-plugin-content-docs/current/cloud/reference/01_changelog/02_release_notes/25_04.md
index 038dd45e061..248509a5425 100644
--- a/i18n/zh/docusaurus-plugin-content-docs/current/cloud/changelogs/changelog-25_1-25_4.md
+++ b/i18n/zh/docusaurus-plugin-content-docs/current/cloud/reference/01_changelog/02_release_notes/25_04.md
@@ -1,12 +1,14 @@
---
slug: /changelogs/25.4
title: 'v25.4 Changelog for Cloud'
-description: 'Changelog for v25.4'
+description: 'Fast release changelog for v25.4'
keywords: ['changelog', 'cloud']
-sidebar_label: 'v25.4'
+sidebar_label: '25.4'
+sidebar_position: 2
+doc_type: 'changelog'
---
-## Backward Incompatible Changes {#backward-incompatible-changes}
+## Backward incompatible changes {#backward-incompatible-changes}
* Parquet output format converts Date and DateTime columns to date/time types supported by Parquet, instead of writing them as raw numbers. DateTime becomes DateTime64(3) (was: UInt32); setting `output_format_parquet_datetime_as_uint32` brings back the old behavior. Date becomes Date32 (was: UInt16). [#70950](https://github.com/ClickHouse/ClickHouse/pull/70950) ([Michael Kolupaev](https://github.com/al13n321)).
* Don't allow comparable types (like JSON/Object/AggregateFunction) in ORDER BY and comparison functions `less/greater/equal/etc` by default. [#73276](https://github.com/ClickHouse/ClickHouse/pull/73276) ([Pavel Kruglov](https://github.com/Avogar)).
@@ -25,7 +27,7 @@ sidebar_label: 'v25.4'
* The legacy MongoDB integration has been removed. Server setting `use_legacy_mongodb_integration` became obsolete and now does nothing. [#77895](https://github.com/ClickHouse/ClickHouse/pull/77895) ([Robert Schulze](https://github.com/rschu1ze)).
* Enhance SummingMergeTree validation to skip aggregation for columns used in partition or sort keys. [#78022](https://github.com/ClickHouse/ClickHouse/pull/78022) ([Pervakov Grigorii](https://github.com/GrigoryPervakov)).
-## New Features {#new-features}
+## New features {#new-features}
* Added an in-memory cache for deserialized skipping index granules. This should make repeated queries that use skipping indexes faster. The size of the new cache is controlled by server settings `skipping_index_cache_size` and `skipping_index_cache_max_entries`. The original motivation for the cache were vector similarity indexes which became a lot faster now. [#70102](https://github.com/ClickHouse/ClickHouse/pull/70102) ([Robert Schulze](https://github.com/rschu1ze)).
* A new implementation of the Userspace Page Cache, which allows caching data in the in-process memory instead of relying on the OS page cache. It is useful when the data is stored on a remote virtual filesystem without backing with the local filesystem cache. [#70509](https://github.com/ClickHouse/ClickHouse/pull/70509) ([Michael Kolupaev](https://github.com/al13n321)).
@@ -274,7 +276,7 @@ sidebar_label: 'v25.4'
* Don't fail silently if user executing `SYSTEM DROP REPLICA` doesn't have enough permissions. [#75377](https://github.com/ClickHouse/ClickHouse/pull/75377) ([Bharat Nallan](https://github.com/bharatnc)).
* Add a ProfileEvent about the number of times any of system logs has failed to flush. [#75466](https://github.com/ClickHouse/ClickHouse/pull/75466) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Add check and logging for decrypting and decompressing. [#75471](https://github.com/ClickHouse/ClickHouse/pull/75471) ([Vitaly Baranov](https://github.com/vitlibar)).
-* Added support for the micro sign (U+00B5) in the `parseTimeDelta` function. Now both the micro sign (U+00B5) and the Greek letter mu (U+03BC) are recognized as valid representations for microseconds, aligning ClickHouse's behavior with Go’s implementation ([see time.go](https://github.com/golang/go/blob/ad7b46ee4ac1cee5095d64b01e8cf7fcda8bee5e/src/time/time.go#L983C19-L983C20) and [time/format.go](https://github.com/golang/go/blob/ad7b46ee4ac1cee5095d64b01e8cf7fcda8bee5e/src/time/format.go#L1608-L1609)). [#75472](https://github.com/ClickHouse/ClickHouse/pull/75472) ([Vitaly Orlov](https://github.com/orloffv)).
+* Added support for the micro sign (U+00B5) in the `parseTimeDelta` function. Now both the micro sign (U+00B5) and the Greek letter mu (U+03BC) are recognized as valid representations for microseconds, aligning ClickHouse's behavior with Go's implementation ([see time.go](https://github.com/golang/go/blob/ad7b46ee4ac1cee5095d64b01e8cf7fcda8bee5e/src/time/time.go#L983C19-L983C20) and [time/format.go](https://github.com/golang/go/blob/ad7b46ee4ac1cee5095d64b01e8cf7fcda8bee5e/src/time/format.go#L1608-L1609)). [#75472](https://github.com/ClickHouse/ClickHouse/pull/75472) ([Vitaly Orlov](https://github.com/orloffv)).
* Replace server setting (`send_settings_to_client`) with client setting (`apply_settings_from_server`) that controls whether client-side code (e.g. parsing INSERT data and formatting query output) should use settings from server's `users.xml` and user profile. Otherwise only settings from client command line, session, and the query are used. Note that this only applies to native client (not e.g. HTTP), and doesn't apply to most of query processing (which happens on the server). [#75478](https://github.com/ClickHouse/ClickHouse/pull/75478) ([Michael Kolupaev](https://github.com/al13n321)).
* Keeper improvement: disable digest calculation when committing to in-memory storage for better performance. It can be enabled with `keeper_server.digest_enabled_on_commit` config. Digest is still calculated when preprocessing requests. [#75490](https://github.com/ClickHouse/ClickHouse/pull/75490) ([Antonio Andelic](https://github.com/antonio2368)).
* Push down filter expression from JOIN ON when possible. [#75536](https://github.com/ClickHouse/ClickHouse/pull/75536) ([Vladimir Cherkasov](https://github.com/vdimir)).
@@ -611,7 +613,7 @@ sidebar_label: 'v25.4'
* Fix crash in REFRESHABLE MV in case of ALTER after incorrect shutdown. [#78858](https://github.com/ClickHouse/ClickHouse/pull/78858) ([Azat Khuzhin](https://github.com/azat)).
* Fix parsing of bad DateTime values in CSV format. [#78919](https://github.com/ClickHouse/ClickHouse/pull/78919) ([Pavel Kruglov](https://github.com/Avogar)).
-## Build/Testing/Packaging Improvement {#build-testing-packaging-improvement}
+## Build/testing/packaging improvement {#build-testing-packaging-improvement}
* The internal dependency LLVM is bumped from 16 to 18. [#66053](https://github.com/ClickHouse/ClickHouse/pull/66053) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
* Restore deleted nats integration tests and fix errors. - fixed some race conditions in nats engine - fixed data loss when streaming data to nats in case of connection loss - fixed freeze of receiving the last chunk of data when streaming from nats ended - nats_max_reconnect is deprecated and has no effect, reconnect is performed permanently with nats_reconnect_wait timeout. [#69772](https://github.com/ClickHouse/ClickHouse/pull/69772) ([Dmitry Novikov](https://github.com/dmitry-sles-novikov)).
@@ -621,7 +623,7 @@ sidebar_label: 'v25.4'
* The universal installation script will propose installation even on macOS. [#74339](https://github.com/ClickHouse/ClickHouse/pull/74339) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
* Fix build when kerberos is not enabled. [#74771](https://github.com/ClickHouse/ClickHouse/pull/74771) ([flynn](https://github.com/ucasfl)).
* Update to embedded LLVM 19. [#75148](https://github.com/ClickHouse/ClickHouse/pull/75148) ([Konstantin Bogdanov](https://github.com/thevar1able)).
-* *Potentially breaking*: Improvement to set even more restrictive defaults. The current defaults are already secure. The user has to specify an option to publish ports explicitly. But when the `default` user doesn’t have a password set by `CLICKHOUSE_PASSWORD` and/or a username changed by `CLICKHOUSE_USER` environment variables, it should be available only from the local system as an additional level of protection. [#75259](https://github.com/ClickHouse/ClickHouse/pull/75259) ([Mikhail f. Shiryaev](https://github.com/Felixoid)).
+* *Potentially breaking*: Improvement to set even more restrictive defaults. The current defaults are already secure. The user has to specify an option to publish ports explicitly. But when the `default` user doesn't have a password set by `CLICKHOUSE_PASSWORD` and/or a username changed by `CLICKHOUSE_USER` environment variables, it should be available only from the local system as an additional level of protection. [#75259](https://github.com/ClickHouse/ClickHouse/pull/75259) ([Mikhail f. Shiryaev](https://github.com/Felixoid)).
* Integration tests have a 1-hour timeout for single batch of parallel tests running. When this timeout is reached `pytest` is killed without some logs. Internal pytest timeout is set to 55 minutes to print results from a session and not trigger external timeout signal. Closes [#75532](https://github.com/ClickHouse/ClickHouse/issues/75532). [#75533](https://github.com/ClickHouse/ClickHouse/pull/75533) ([Ilya Yatsishin](https://github.com/qoega)).
* Make all clickhouse-server related actions a function, and execute them only when launching the default binary in `entrypoint.sh`. A long-postponed improvement was suggested in [#50724](https://github.com/ClickHouse/ClickHouse/issues/50724). Added switch `--users` to `clickhouse-extract-from-config` to get values from the `users.xml`. [#75643](https://github.com/ClickHouse/ClickHouse/pull/75643) ([Mikhail f. Shiryaev](https://github.com/Felixoid)).
* For stress tests if server did not exit while we collected stacktraces via gdb additional wait time is added to make `Possible deadlock on shutdown (see gdb.log)` detection less noisy. It will only add delay for cases when test did not finish successfully. [#75668](https://github.com/ClickHouse/ClickHouse/pull/75668) ([Ilya Yatsishin](https://github.com/qoega)).
diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/cloud/reference/01_changelog/02_release_notes/25_06.md b/i18n/zh/docusaurus-plugin-content-docs/current/cloud/reference/01_changelog/02_release_notes/25_06.md
new file mode 100644
index 00000000000..5f8735fc4a2
--- /dev/null
+++ b/i18n/zh/docusaurus-plugin-content-docs/current/cloud/reference/01_changelog/02_release_notes/25_06.md
@@ -0,0 +1,396 @@
+---
+slug: /changelogs/25.6
+title: 'v25.6 Changelog for Cloud'
+description: 'Fast release changelog for v25.6'
+keywords: ['changelog', 'cloud']
+sidebar_label: '25.6'
+sidebar_position: 1
+doc_type: 'changelog'
+---
+
+## Backward incompatible change {#backward-incompatible-change}
+
+* Function `geoToH3()` now accepts the input in the order (lat, lon,res) (which is the standard order for geometric functions). Users who wish to retain the legacy result order (lon, lat,res) can set setting `geotoh3_lon_lat_input_order = true`. [#78852](https://github.com/ClickHouse/ClickHouse/pull/78852) ([Pratima Patel](https://github.com/pratimapatel2008)).
+* Indexes of type `full_text` were renamed to `gin`. This follows the more familiar terminology of PostgreSQL and other databases. Existing indexes of type `full_text` remain loadable but they will throw an exception (suggesting `gin` indexes instead) when one tries to use them in searches. [#79024](https://github.com/ClickHouse/ClickHouse/pull/79024) ([Robert Schulze](https://github.com/rschu1ze)).
+* Add a filesystem cache setting `allow_dynamic_cache_resize`, by default `false`, to allow dynamic resize of filesystem cache. Why: in certain environments (ClickHouse Cloud) all the scaling events happen through the restart of the process and we would love this feature to be explicitly disabled to have more control over the behavior + as a safety measure. This PR is marked as backward incompatible, because in older versions dynamic cache resize worked by default without special setting. [#79148](https://github.com/ClickHouse/ClickHouse/pull/79148) ([Kseniia Sumarokova](https://github.com/kssenii)).
+* Removed support for legacy index types `annoy` and `usearch`. Both have been stubs for a long time, i.e. every attempt to use the legacy indexes returned an error anyways. If you still have `annoy` and `usearch` indexes, please drop them. [#79802](https://github.com/ClickHouse/ClickHouse/pull/79802) ([Robert Schulze](https://github.com/rschu1ze)).
+#* Remove `format_alter_commands_with_parentheses` server setting. The setting was introduced and disabled by default in 24.2. It was enabled by default in 25.2. As there are no LTS versions that don't support the new format, we can remove the setting. [#79970](https://github.com/ClickHouse/ClickHouse/pull/79970) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)).
+#* Minor: Force backup_threads and restore_threads server settings to be non zero. [#80224](https://github.com/ClickHouse/ClickHouse/pull/80224) ([Raúl Marín](https://github.com/Algunenano)).
+* Fix bitNot() for String to return a zero-terminated string. [#80791](https://github.com/ClickHouse/ClickHouse/pull/80791) ([Azat Khuzhin](https://github.com/azat)).
+
+## New feature {#new-feature}
+
+* Add a new option to MergeTree `SETTINGS` which specifies a default compression codec in case the `CREATE` query does not explicitly define one for the given columns. This closes [#42005](https://github.com/ClickHouse/ClickHouse/issues/42005). [#66394](https://github.com/ClickHouse/ClickHouse/pull/66394) ([gvoelfin](https://github.com/gvoelfin)).
+* Follow up for https://github.com/ClickHouse/ClickHouse/pull/71943. This PR implements `Time`/`Time64` data types. Implements new data types: Time (HHH:MM:SS) and Time64 (HHH:MM:SS.``), some basic cast functions and functions to interact with other data types. Also, changed the existing function's name `toTime` to `toTimeWithFixedDate` because the function `toTime` is required for the cast function. [#75735](https://github.com/ClickHouse/ClickHouse/pull/75735) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
+* Support correlated subqueries as an argument of `EXISTS` expression in the `WHERE` clause. Closes [#72459](https://github.com/ClickHouse/ClickHouse/issues/72459). [#76078](https://github.com/ClickHouse/ClickHouse/pull/76078) ([Dmitry Novik](https://github.com/novikd)).
+* Allow writing to Merge table engines. [#77484](https://github.com/ClickHouse/ClickHouse/pull/77484) ([Anton Ivashkin](https://github.com/ianton-ru)).
+* Distributed `INSERT SELECT` for replicated MergeTree tables now efficiently uses parallel replicas to parallelize `INSERT`s by selecting different data on different nodes and inserting them independently. [#78041](https://github.com/ClickHouse/ClickHouse/pull/78041) ([Igor Nikonov](https://github.com/devcrafter)).
+* Add `mapContainsValuesLike`/`mapContainsValues`/`mapExtractValuesLike` functions to filter on map values and their support in bloomfilter based indexes. [#78171](https://github.com/ClickHouse/ClickHouse/pull/78171) ([UnamedRus](https://github.com/UnamedRus)).
+* Add `system.iceberg_history` table. [#78244](https://github.com/ClickHouse/ClickHouse/pull/78244) ([Smita Kulkarni](https://github.com/SmitaRKulkarni)).
+* Added query slot scheduling for workloads, see https://clickhouse.com/docs/operations/workload-scheduling#query_scheduling for details. [#78415](https://github.com/ClickHouse/ClickHouse/pull/78415) ([Sergei Trifonov](https://github.com/serxa)).
+* Add `getServerSetting` and `getMergeTreeSetting` function. Closes https://github.com/clickhouse/clickhouse/issues/78318. [#78439](https://github.com/ClickHouse/ClickHouse/pull/78439) ([NamNguyenHoai](https://github.com/NamHoaiNguyen)).
+* Support disallowed values under settings constraints. [#78499](https://github.com/ClickHouse/ClickHouse/pull/78499) ([Bharat Nallan](https://github.com/bharatnc)).
+* Add new `iceberg_enable_version_hint` setting to leverage `version-hint.text` file. [#78594](https://github.com/ClickHouse/ClickHouse/pull/78594) ([Arnaud Briche](https://github.com/arnaudbriche)).
+* Gives the possibility to truncate specific tables from a database, filtered with the `LIKE` keyword. [#78597](https://github.com/ClickHouse/ClickHouse/pull/78597) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
+* `clickhouse-local` (and its shorthand alias, `ch`) now use an implicit `FROM table` when there is input data for processing. This closes [#65023](https://github.com/ClickHouse/ClickHouse/issues/65023). Also enabled format inference in clickhouse-local if `--input-format` is not specified and it processes a regular file. [#79085](https://github.com/ClickHouse/ClickHouse/pull/79085) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
+* Add [`icebergHash`](https://iceberg.apache.org/spec/#appendix-b-32-bit-hash-requirements) and [`icebergBucketTransform`](https://iceberg.apache.org/spec/#bucket-transform-details) functions. Support data files pruning in `Iceberg` tables partitioned with [`bucket transfom`](https://iceberg.apache.org/spec/#partitioning). [#79262](https://github.com/ClickHouse/ClickHouse/pull/79262) ([Daniil Ivanik](https://github.com/divanik)).
+* Add a support for Coalescing Merge Tree. This closes [#78869](https://github.com/ClickHouse/ClickHouse/issues/78869). [#79344](https://github.com/ClickHouse/ClickHouse/pull/79344) ([Konstantin Vedernikov](https://github.com/scanhex12)).
+* Add `stringBytesUniq` and `stringBytesEntropy` functions to search for possibly random or encrypted data. [#79350](https://github.com/ClickHouse/ClickHouse/pull/79350) ([Sachin Kumar Singh](https://github.com/sachinkumarsingh092)).
+* Support `_part_starting_offset` virtual column in MergeTree-family tables. This column represents the cumulative row count of all preceding parts, calculated at query time based on the current part list. The cumulative values are retained throughout query execution and remain effective even after part pruning. Related internal logic has been refactored to support this behavior. [#79417](https://github.com/ClickHouse/ClickHouse/pull/79417) ([Amos Bird](https://github.com/amosbird)).
+* Added a setting `enable_shared_storage_snapshot_in_query` to enable sharing the same storage snapshot across all subqueries in a single query. This ensures consistent reads from the same table, even when the table is referenced multiple times within a query. [#79471](https://github.com/ClickHouse/ClickHouse/pull/79471) ([Amos Bird](https://github.com/amosbird)).
+* Support writing CH JSON columns to Parquet and reading Parquet JSON columns directly as CH JSON columns. [#79649](https://github.com/ClickHouse/ClickHouse/pull/79649) ([Nihal Z. Miaji](https://github.com/nihalzp)).
+* Bundle [`chdig`](https://github.com/azat/chdig/) - TUI interface for ClickHouse (top like) as part of ClickHouse. [#79666](https://github.com/ClickHouse/ClickHouse/pull/79666) ([Azat Khuzhin](https://github.com/azat)).
+* Add `MultiPolygon` support for `pointInPolygon`. [#79773](https://github.com/ClickHouse/ClickHouse/pull/79773) ([Nihal Z. Miaji](https://github.com/nihalzp)).
+* Support geo parquet. This closes [#75317](https://github.com/ClickHouse/ClickHouse/issues/75317). [#79777](https://github.com/ClickHouse/ClickHouse/pull/79777) ([Konstantin Vedernikov](https://github.com/scanhex12)).
+* Add support for querying local filesystem-mounted delta tables via `deltaLakeLocal` table function. [#79781](https://github.com/ClickHouse/ClickHouse/pull/79781) ([roykim98](https://github.com/roykim98)).
+* Added base32 encode/decode functionality. [#79809](https://github.com/ClickHouse/ClickHouse/pull/79809) ([Joanna Hulboj](https://github.com/jh0x)).
+* Clickhouse vector search now supports both pre-filtering and post-filtering and provides related settings for finer control. (issue [#78161](https://github.com/ClickHouse/ClickHouse/issues/78161)). [#79854](https://github.com/ClickHouse/ClickHouse/pull/79854) ([Shankar Iyer](https://github.com/shankar-iyer)).
+* Support functions to read WKB format. This partially closes [#43941](https://github.com/ClickHouse/ClickHouse/issues/43941). [#80139](https://github.com/ClickHouse/ClickHouse/pull/80139) ([Konstantin Vedernikov](https://github.com/scanhex12)).
+* Add new setting `cast_string_to_date_time_mode` that allows to choose DateTime parsing mode during cast from String. [#80210](https://github.com/ClickHouse/ClickHouse/pull/80210) ([Pavel Kruglov](https://github.com/Avogar)).
+* Added `Bech32` and `Bech32m` encoding and decoding functions (issue [#40381](https://github.com/ClickHouse/ClickHouse/issues/40381)). [#80239](https://github.com/ClickHouse/ClickHouse/pull/80239) ([George Larionov](https://github.com/glarik)).
+* Support `disk` setting for Atomic and Ordinary DB engines, specifying the disk to store table metadata files. [#80546](https://github.com/ClickHouse/ClickHouse/pull/80546) ([Tuan Pham Anh](https://github.com/tuanpach)).
+* Support functions to unpack and compare merge tree parts. [#80573](https://github.com/ClickHouse/ClickHouse/pull/80573) ([Mikhail Artemenko](https://github.com/Michicosun)).
+* `timeSeries*` helper functions to speed up some scenarios when working with time series data: - re-sample the data to the time grid with specified start timestamp, end timestamp and step - calculate PromQL-like `delta`, `rate`, `idelta` and `irate`. [#80590](https://github.com/ClickHouse/ClickHouse/pull/80590) ([Alexander Gololobov](https://github.com/davenger)).
+* Allow filtering of parts selected for querying by the disk they reside on. [#80650](https://github.com/ClickHouse/ClickHouse/pull/80650) ([tanner-bruce](https://github.com/tanner-bruce)).
+* Add a landing page with the list of embedded web tools. It will open when requested by a browser-like user agent. [#81129](https://github.com/ClickHouse/ClickHouse/pull/81129) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
+* Allow for filtering `NULL` values in `arrayFirst`, `arrayFirstIndex`, `arrayLast` & `arrayLastIndex`. Fixes [#81113](https://github.com/ClickHouse/ClickHouse/issues/81113). [#81197](https://github.com/ClickHouse/ClickHouse/pull/81197) ([Lennard Eijsackers](https://github.com/Blokje5)).
+
+## Experimental feature {#experimental-feature}
+
+* Hive metastore catalog for iceberg datalake. [#77677](https://github.com/ClickHouse/ClickHouse/pull/77677) ([Konstantin Vedernikov](https://github.com/scanhex12)).
+* The explicit parameters are supported via key-value pairs. Currently, supported parameters are a mandatory `tokenizer` and two optional `max_rows_per_postings_list` and `ngram_size`. [#80262](https://github.com/ClickHouse/ClickHouse/pull/80262) ([Elmi Ahmadov](https://github.com/ahmadov)).
+* Experimental indexes of type `gin` were renamed to `text`. Existing indexes of type `gin` remain loadable but they will throw an exception (suggesting `text` indexes instead) when one tries to use them in searches. [#80855](https://github.com/ClickHouse/ClickHouse/pull/80855) ([Robert Schulze](https://github.com/rschu1ze)).
+
+## Performance improvement {#performance-improvement}
+
+* Speed up secondary indices by evaluating their expressions on multiple granules at once. [#64109](https://github.com/ClickHouse/ClickHouse/pull/64109) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
+* Introduced threshold (regulated by setting `parallel_hash_join_threshold`) to fall back to the `hash` algorithm when the size of the right table is below the threshold. [#76185](https://github.com/ClickHouse/ClickHouse/pull/76185) ([Nikita Taranov](https://github.com/nickitat)).
+* The existing implementation of `Pipe::resize` creates a single `Resize` or `StrictResize` node by inserting it into the pipeline topology, which then acts as a central hub connecting all input streams (upstream nodes) to a unified set of output streams (downstream nodes). This design leads to contention for the` ExecutingGraph::Node::status_mutex` during pipeline graph execution, especially in high-core-count environments. When pipelines scale to tens or hundreds of streams, this contention results in:. [#77562](https://github.com/ClickHouse/ClickHouse/pull/77562) ([Zhiguo Zhou](https://github.com/ZhiguoZh)).
+* Improve performance of `S3Queue`/`AzureQueue` by allowing `INSERT`s data in parallel (can be enabled with `parallel_inserts=true` queue setting). Previously `S3Queue`/`AzureQueue` can only do the first part of the pipeline in parallel (downloading, parsing), INSERT was single-threaded. And `INSERT`s are almost always the bottleneck. Now it will scale almost linear with `processing_threads_num`. [#77671](https://github.com/ClickHouse/ClickHouse/pull/77671) ([Azat Khuzhin](https://github.com/azat)).
+* Change the compact part format to save marks for each substream to be able to read individual sub-columns. The old compact format is still supported for reads and can be enabled for writes using MergeTree setting `write_marks_for_substreams_in_compact_parts`. It's disabled by default for safer upgrades as it changes the compact parts storage. It will be enabled by default in one of the next releases. [#77940](https://github.com/ClickHouse/ClickHouse/pull/77940) ([Pavel Kruglov](https://github.com/Avogar)).
+* Introduced new setting`use_skip_indexes_in_final_exact_mode`. If a query on a `ReplacingMergeTree` table has the `FINAL` clause, reading only table ranges based on skip indexes may produce incorrect result. This setting can ensure that correct results are returned by scanning newer parts that have overlap with primary key ranges returned by the skip index. Set to 0 to disable, 1 to enable. [#78350](https://github.com/ClickHouse/ClickHouse/pull/78350) ([Shankar Iyer](https://github.com/shankar-iyer)).
+* Now we use the number of replicas to determine the task size for reading with parallel replicas enabled. This provides better work distribution between replicas when the amount of data to read is not very large. [#78695](https://github.com/ClickHouse/ClickHouse/pull/78695) ([Nikita Taranov](https://github.com/nickitat)).
+* Allow parallel merging of `uniqExact` states during the final stage of distributed aggregation. [#78703](https://github.com/ClickHouse/ClickHouse/pull/78703) ([Nikita Taranov](https://github.com/nickitat)).
+* Fix possible performance degradation of the parallel merging of `uniqExact` states for aggregation with key. [#78724](https://github.com/ClickHouse/ClickHouse/pull/78724) ([Nikita Taranov](https://github.com/nickitat)).
+#* Replace `DELETE FROM ... WHERE 1` queries to `TRUNCATE`. (Reverted). [#78739](https://github.com/ClickHouse/ClickHouse/pull/78739) ([Konstantin Vedernikov](https://github.com/scanhex12)).
+* Reduce the number of List Blobs API calls to Azure storage. [#78860](https://github.com/ClickHouse/ClickHouse/pull/78860) ([Julia Kartseva](https://github.com/jkartseva)).
+* Merge equality conditions from filter query plan step into `JOIN` condition if possible to allow using them as hash table keys. [#78877](https://github.com/ClickHouse/ClickHouse/pull/78877) ([Dmitry Novik](https://github.com/novikd)).
+* Improve performance of hive path parsing by using `extractKeyValuePairs` instead of regex. [#79067](https://github.com/ClickHouse/ClickHouse/pull/79067) ([Arthur Passos](https://github.com/arthurpassos)).
+* Fix performance of the distributed `INSERT SELECT` with parallel replicas. [#79441](https://github.com/ClickHouse/ClickHouse/pull/79441) ([Azat Khuzhin](https://github.com/azat)).
+* Allow moving conditions with sub-columns to `PREWHERE`. [#79489](https://github.com/ClickHouse/ClickHouse/pull/79489) ([Pavel Kruglov](https://github.com/Avogar)).
+* Performance improvements to all bloom filter types. [#79800](https://github.com/ClickHouse/ClickHouse/pull/79800) ([Delyan Kratunov](https://github.com/dkratunov)).
+* Prevent `LogSeriesLimiter` from doing cleanup on every construction, avoiding lock contention and performance regressions in high-concurrency scenarios. [#79864](https://github.com/ClickHouse/ClickHouse/pull/79864) ([filimonov](https://github.com/filimonov)).
+* Enable `compile_expressions` (JIT compiler for fragments of ordinary expressions) by default. This closes [#51264](https://github.com/ClickHouse/ClickHouse/issues/51264) and [#56386](https://github.com/ClickHouse/ClickHouse/issues/56386) and [#66486](https://github.com/ClickHouse/ClickHouse/issues/66486). [#79907](https://github.com/ClickHouse/ClickHouse/pull/79907) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
+* Speedup queries with trivial count optimization. [#79945](https://github.com/ClickHouse/ClickHouse/pull/79945) ([Raúl Marín](https://github.com/Algunenano)).
+* Introduced a happy path in `UniqExactSet::merge` when one of the sets is empty. Also, now if the LHS set is two-level and the RHS is single-level, we won't do the conversion to two-level for the RHS. [#79971](https://github.com/ClickHouse/ClickHouse/pull/79971) ([Nikita Taranov](https://github.com/nickitat)).
+* Add `__attribute__((always_inline))` to `convertDecimalsImpl`. [#79999](https://github.com/ClickHouse/ClickHouse/pull/79999) ([Konstantin Bogdanov](https://github.com/thevar1able)).
+* Set `input_format_parquet_bloom_filter_push_down` to true by default. Also, fix a mistake in the settings changes history. [#80058](https://github.com/ClickHouse/ClickHouse/pull/80058) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
+#* Make logging asynchronous by default. You can disable this by setting `false` under ``. [#80125](https://github.com/ClickHouse/ClickHouse/pull/80125) ([Raúl Marín](https://github.com/Algunenano)).
+* Improve memory reuse efficiency and reduce page faults when using the two-level hash tables. [#80245](https://github.com/ClickHouse/ClickHouse/pull/80245) ([Jiebin Sun](https://github.com/jiebinn)).
+* Avoid unnecessary update and reduce lock contention in QueryConditionCache. [#80247](https://github.com/ClickHouse/ClickHouse/pull/80247) ([Jiebin Sun](https://github.com/jiebinn)).
+* Small optimization of `concatenateBlocks`, which could be good for parallel Hash join. [#80328](https://github.com/ClickHouse/ClickHouse/pull/80328) ([李扬](https://github.com/taiyang-li)).
+* When selecting mark ranges from the primary key range, binary search cannot be used if the primary key is wrapped with functions. This PR improves this limitation: binary search can still be applied when the primary key is wrapped with an always monotonic function chain, or when the RPN contains an element that is always true. This PR closes [#45536](https://github.com/ClickHouse/ClickHouse/issues/45536). [#80597](https://github.com/ClickHouse/ClickHouse/pull/80597) ([zoomxi](https://github.com/zoomxi)).
+* Improve the shutdown speed of Kafka engine (remove an extra 3 seconds delay in case of multiple Kafka tables). [#80796](https://github.com/ClickHouse/ClickHouse/pull/80796) ([Azat Khuzhin](https://github.com/azat)).
+* Reduce memory usage of async inserts and improve the performance of insert queries. [#80972](https://github.com/ClickHouse/ClickHouse/pull/80972) ([Raúl Marín](https://github.com/Algunenano)).
+* Don't profile processors if the log table is disabled. [#81256](https://github.com/ClickHouse/ClickHouse/pull/81256) ([Raúl Marín](https://github.com/Algunenano)).
+* Speed up `toFixedString` when the source is exactly what's requested. [#81257](https://github.com/ClickHouse/ClickHouse/pull/81257) ([Raúl Marín](https://github.com/Algunenano)).
+* Don't process quota values if the user is not limited. [#81549](https://github.com/ClickHouse/ClickHouse/pull/81549) ([Raúl Marín](https://github.com/Algunenano)).
+* Make ProcfsMetricsProvider thread_local to keep files open between tasks. [#81576](https://github.com/ClickHouse/ClickHouse/pull/81576) ([Raúl Marín](https://github.com/Algunenano)).
+* Fixed performance regression in memory tracking. [#81694](https://github.com/ClickHouse/ClickHouse/pull/81694) ([Michael Kolupaev](https://github.com/al13n321)).
+
+## Improvement {#improvement}
+
+#* `clickhouse-local` will retain its databases after restart if you specify the `--path` command line argument. This closes [#50647](https://github.com/ClickHouse/ClickHouse/issues/50647). This closes [#49947](https://github.com/ClickHouse/ClickHouse/issues/49947). [#71722](https://github.com/ClickHouse/ClickHouse/pull/71722) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
+* `EXPLAIN SYNTAX` now uses a new analyzer. It returns an abstract syntax tree (AST) built from the query tree. Added option `query_tree_passes` to control the number of passes to be executed before converting the query tree to the AST. [#74536](https://github.com/ClickHouse/ClickHouse/pull/74536) ([Vladimir Cherkasov](https://github.com/vdimir)).
+#* Use SLRU cache policy in filesystem cache by default. [#75072](https://github.com/ClickHouse/ClickHouse/pull/75072) ([Kseniia Sumarokova](https://github.com/kssenii)).
+* Refactored the logic of pushing to views. [#77309](https://github.com/ClickHouse/ClickHouse/pull/77309) ([Sema Checherinda](https://github.com/CheSema)).
+* Object storage cluster table functions (e.g. `s3Cluster`) will now assign files to replicas for reading based on consistent hash to improve cache locality. [#77326](https://github.com/ClickHouse/ClickHouse/pull/77326) ([Andrej Hoos](https://github.com/adikus)).
+* Refresh S3 credentials after error `AuthenticationRequired`. [#77353](https://github.com/ClickHouse/ClickHouse/pull/77353) ([Vitaly Baranov](https://github.com/vitlibar)).
+* Embed proxy configuration in some HTTP buffers with the help of builders. [#77693](https://github.com/ClickHouse/ClickHouse/pull/77693) ([Arthur Passos](https://github.com/arthurpassos)).
+* Added dictionary metrics to `system.asynchronous_metrics` - `DictionaryMaxUpdateDelay` - The maximum delay(in seconds) of dictionary update. - `DictionaryTotalFailedUpdates` - Number of errors since last successful loading in all dictionaries. [#78175](https://github.com/ClickHouse/ClickHouse/pull/78175) ([Vlad](https://github.com/codeworse)).
+* Add functions `divideOrNull`,`moduloOrNull`, `intDivOrNull`,`positiveModuloOrNull` to return NULL when right argument is zero. [#78276](https://github.com/ClickHouse/ClickHouse/pull/78276) ([kevinyhzou](https://github.com/KevinyhZou)).
+* Extend the `isIPAddressInRange` function to String, IPv4, IPv6, Nullable(String) Nullable(IPv4) and Nullable(IPv6) data types. [#78364](https://github.com/ClickHouse/ClickHouse/pull/78364) ([YjyJeff](https://github.com/YjyJeff)).
+* Change PostgreSQL engine connection pooler settings dynamically. [#78414](https://github.com/ClickHouse/ClickHouse/pull/78414) ([Samay Sharma](https://github.com/samay-sharma)).
+* Allow to specify `_part_offset` in a normal projection. This is the first step to build a projection index. It can be used with [#58224](https://github.com/ClickHouse/ClickHouse/issues/58224) and can help improve https://github.com/ClickHouse/ClickHouse/pull/63207. [#78429](https://github.com/ClickHouse/ClickHouse/pull/78429) ([Amos Bird](https://github.com/amosbird)).
+* Improve the sharding key optimization on distributed queries. [#78452](https://github.com/ClickHouse/ClickHouse/pull/78452) ([fhw12345](https://github.com/fhw12345)).
+* Add new columns(`create_query` and `source`) for `system.named_collections`. Closes [#78179](https://github.com/ClickHouse/ClickHouse/issues/78179). [#78582](https://github.com/ClickHouse/ClickHouse/pull/78582) ([MikhailBurdukov](https://github.com/MikhailBurdukov)).
+* Added field `condition` to system table `system.query_condition_cache`. It stores the plaintext condition whose hash is used as a key in the query condition cache. [#78671](https://github.com/ClickHouse/ClickHouse/pull/78671) ([Robert Schulze](https://github.com/rschu1ze)).
+* Implement Kafka re-balance like logic for StorageKafka2 using ClickHouse Keeper. For each replica we support two types of partition locks: permanent locks and temporary locks. The replica tries to hold permanent locks as long as possible, at any given time there are no more than `all_topic_partitions / active_replicas_count` (here `all_topic_partitions` is the number of all partitions, `active_replicas_count` is the number of active replicas) permanent locks on the replica, if there are more, then the replica releases some partitions. Some partitions are temporarily held by the replica. The maximum number of temporary locks on a replica changes dynamically to give other replicas a chance to take some partitions into permanent locks. When updating temporary locks, the replica releases them all and tries to take some others again. [#78726](https://github.com/ClickHouse/ClickHouse/pull/78726) ([Daria Fomina](https://github.com/sinfillo)).
+* Add table settings for SASL configuration and credentials to the `Kafka` table engine. This allows configuring SASL-based authentication to Kafka and Kafka-compatible systems directly in the `CREATE TABLE` statement rather than having to use configuration files or named collections. [#78810](https://github.com/ClickHouse/ClickHouse/pull/78810) ([Christoph Wurm](https://github.com/cwurm)).
+* Add a warning about databases that were potentially created to save broken tables. [#78841](https://github.com/ClickHouse/ClickHouse/pull/78841) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)).
+* Vector similarity indexes can now be created on top of `BFloat16` columns. [#78850](https://github.com/ClickHouse/ClickHouse/pull/78850) ([Robert Schulze](https://github.com/rschu1ze)).
+* Support unix timestamps with a fractional part in best-effort DateTime64 parsing. [#78908](https://github.com/ClickHouse/ClickHouse/pull/78908) ([Pavel Kruglov](https://github.com/Avogar)).
+* In storage DeltaLake delta-kernel implementation fix for columnMappingMode.name, add tests for schema evolution. [#78921](https://github.com/ClickHouse/ClickHouse/pull/78921) ([Kseniia Sumarokova](https://github.com/kssenii)).
+* Improve insert into Variant column in Values format by better conversion of values. [#78923](https://github.com/ClickHouse/ClickHouse/pull/78923) ([Pavel Kruglov](https://github.com/Avogar)).
+* Add `_time` virtual column in `S3Queue` engine. [#78926](https://github.com/ClickHouse/ClickHouse/pull/78926) ([Anton Ivashkin](https://github.com/ianton-ru)).
+* The `tokens` function was extended to accept an additional "tokenizer" argument plus further tokenizer-specific arguments. [#79001](https://github.com/ClickHouse/ClickHouse/pull/79001) ([Elmi Ahmadov](https://github.com/ahmadov)).
+* The `SHOW CLUSTER` statement now expands macros (if any) in its argument. [#79006](https://github.com/ClickHouse/ClickHouse/pull/79006) ([arf42](https://github.com/arf42)).
+* Hash functions now support `NULL`s inside arrays, tuples, and maps. (issues [#48365](https://github.com/ClickHouse/ClickHouse/issues/48365) and [#48623](https://github.com/ClickHouse/ClickHouse/issues/48623)). [#79008](https://github.com/ClickHouse/ClickHouse/pull/79008) ([Michael Kolupaev](https://github.com/al13n321)).
+* Support for a refresh in read-only MergeTree tables. [#79033](https://github.com/ClickHouse/ClickHouse/pull/79033) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
+#* Update cctz to 2025a. [#79043](https://github.com/ClickHouse/ClickHouse/pull/79043) ([Raúl Marín](https://github.com/Algunenano)).
+* Make settings controlling connection drop on overloaded CPU hot-reloadable. [#79052](https://github.com/ClickHouse/ClickHouse/pull/79052) ([Alexey Katsman](https://github.com/alexkats)).
+* It's better for usability. [#79066](https://github.com/ClickHouse/ClickHouse/pull/79066) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
+* Enable the query condition cache by default. [#79080](https://github.com/ClickHouse/ClickHouse/pull/79080) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
+#* Make tabs undo-able in the Web UI. This closes [#71284](https://github.com/ClickHouse/ClickHouse/issues/71284). [#79084](https://github.com/ClickHouse/ClickHouse/pull/79084) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
+* Remove settings during `recoverLostReplica` the same as was done in https://github.com/ClickHouse/ClickHouse/pull/78637. [#79113](https://github.com/ClickHouse/ClickHouse/pull/79113) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
+* Add ProfileEvents ParquetReadRowGroups and ParquetPrunedRowGroups to profile parquet index prune. [#79180](https://github.com/ClickHouse/ClickHouse/pull/79180) ([flynn](https://github.com/ucasfl)).
+* Add container prefix to data paths reported in system.tables for plain disks in Azure blob storage, making reporting consistent with S3 and GCP. [#79241](https://github.com/ClickHouse/ClickHouse/pull/79241) ([Julia Kartseva](https://github.com/jkartseva)).
+* Support altering a database on cluster. [#79242](https://github.com/ClickHouse/ClickHouse/pull/79242) ([Tuan Pham Anh](https://github.com/tuanpach)).
+* Explicitly skip missed runs of statistics collection for QueryMetricLog, otherwise the log will take a long time to catch up with the current time. [#79257](https://github.com/ClickHouse/ClickHouse/pull/79257) ([Mikhail Artemenko](https://github.com/Michicosun)).
+* Added an ability to apply lightweight deletes on the fly (with settings `lightweight_deletes_sync = 0`, `apply_mutations_on_fly = 1`. [#79281](https://github.com/ClickHouse/ClickHouse/pull/79281) ([Anton Popov](https://github.com/CurtizJ)).
+* Optimized `ALTER ... DELETE` mutations for parts in which all rows should be deleted. Now, in such cases an empty part is created instead of original without executing a mutation. [#79307](https://github.com/ClickHouse/ClickHouse/pull/79307) ([Anton Popov](https://github.com/CurtizJ)).
+* Some small optimizations to `CHColumnToArrowColumn`. [#79308](https://github.com/ClickHouse/ClickHouse/pull/79308) ([Bharat Nallan](https://github.com/bharatnc)).
+* The setting `allow_archive_path_syntax` was marked as experimental by mistake. Add a test to prevent having experimental settings enabled by default. [#79320](https://github.com/ClickHouse/ClickHouse/pull/79320) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
+* Made page cache settings adjustable on a per-query level. This is needed for faster experimentation and for the possibility of fine-tuning for high-throughput and low-latency queries. [#79337](https://github.com/ClickHouse/ClickHouse/pull/79337) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
+* Do not print number tips in pretty formats for numbers that look like most of the 64-bit hashes. This closes [#79334](https://github.com/ClickHouse/ClickHouse/issues/79334). [#79338](https://github.com/ClickHouse/ClickHouse/pull/79338) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
+* If data in the pretty format is displayed in the terminal, and a subsequent block has the same column widths, it can continue from the previous block, glue it to the previous block by moving the cursor up. This closes [#79333](https://github.com/ClickHouse/ClickHouse/issues/79333). The feature is controlled by the new setting, `output_format_pretty_glue_chunks`. [#79339](https://github.com/ClickHouse/ClickHouse/pull/79339) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
+* Colors of graphs on the advanced dashboards will be calculated from the hash of the corresponding query. This makes it easier to remember and locate a graph while scrolling the dashboard. [#79341](https://github.com/ClickHouse/ClickHouse/pull/79341) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
+* Add asynchronous metric, `FilesystemCacheCapacity` - total capacity in the `cache` virtual filesystem. This is useful for global infrastructure monitoring. [#79348](https://github.com/ClickHouse/ClickHouse/pull/79348) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
+* Optimize access to system.parts (read columns/indexes size only when requested). [#79352](https://github.com/ClickHouse/ClickHouse/pull/79352) ([Azat Khuzhin](https://github.com/azat)).
+* Select important fields for query `'SHOW CLUSTER '` instead of all fields. [#79368](https://github.com/ClickHouse/ClickHouse/pull/79368) ([Tuan Pham Anh](https://github.com/tuanpach)).
+* Allow to specify storage settings for `DatabaseCatalog`. [#79407](https://github.com/ClickHouse/ClickHouse/pull/79407) ([Kseniia Sumarokova](https://github.com/kssenii)).
+* Support local storage in delta kernel. [#79416](https://github.com/ClickHouse/ClickHouse/pull/79416) ([Kseniia Sumarokova](https://github.com/kssenii)).
+* Add a query level setting to enable delta-kernel-rs: `allow_experimental_delta_kernel_rs`. [#79418](https://github.com/ClickHouse/ClickHouse/pull/79418) ([Kseniia Sumarokova](https://github.com/kssenii)).
+* Fix possible endless loop when listing blobs from Azure/S3 blob storage. [#79425](https://github.com/ClickHouse/ClickHouse/pull/79425) ([Alexander Gololobov](https://github.com/davenger)).
+* Now, ClickHouse also accepts query parameters as `param-` (dash) along with `param_` (underscore). This closes [#63093](https://github.com/ClickHouse/ClickHouse/issues/63093). [#79429](https://github.com/ClickHouse/ClickHouse/pull/79429) ([Engel Danila](https://github.com/aaaengel)).
+#* Add filesystem cache setting `max_size_ratio_to_total_space`. [#79460](https://github.com/ClickHouse/ClickHouse/pull/79460) ([Kseniia Sumarokova](https://github.com/kssenii)).
+* Detailed warning msg for bandwidth discount when copying data from local to remote S3 with checksum enabled. [#79464](https://github.com/ClickHouse/ClickHouse/pull/79464) ([VicoWu](https://github.com/VicoWu)).
+* For `clickhouse-benchmark` reconfigure `reconnect` option to take 0, 1 or N as values for reconnecting accordingly. [#79465](https://github.com/ClickHouse/ClickHouse/pull/79465) ([Sachin Kumar Singh](https://github.com/sachinkumarsingh092)).
+* Add setting `input_format_max_block_size_bytes` to limit blocks created in input formats in bytes. It can help to avoid high memory usage during data import when rows contains large values. [#79495](https://github.com/ClickHouse/ClickHouse/pull/79495) ([Pavel Kruglov](https://github.com/Avogar)).
+* Enhance sparseGrams speed and memory usage. [#79517](https://github.com/ClickHouse/ClickHouse/pull/79517) ([Konstantin Vedernikov](https://github.com/scanhex12)).
+* Avoid extra copying of the block during insertion into Compact part when possible. [#79536](https://github.com/ClickHouse/ClickHouse/pull/79536) ([Pavel Kruglov](https://github.com/Avogar)).
+* Enable `DeltaLake` storage delta-kernel implementation by default. [#79541](https://github.com/ClickHouse/ClickHouse/pull/79541) ([Kseniia Sumarokova](https://github.com/kssenii)).
+* If reading from an URL involves multiple redirects, setting `enable_url_encoding` is correctly applied across all redirects in the chain. [#79563](https://github.com/ClickHouse/ClickHouse/pull/79563) ([Shankar Iyer](https://github.com/shankar-iyer)).
+* Allow `ALTER TABLE ... MOVE|REPLACE PARTITION` for tables on different plain_rewritable disks. [#79566](https://github.com/ClickHouse/ClickHouse/pull/79566) ([Julia Kartseva](https://github.com/jkartseva)).
+* Support scalar correlated subqueries in the `WHERE` clause. Closes [#6697](https://github.com/ClickHouse/ClickHouse/issues/6697). [#79600](https://github.com/ClickHouse/ClickHouse/pull/79600) ([Dmitry Novik](https://github.com/novikd)).
+* Previously when `input_format_parquet_max_block_size = 0` ClickHouse would stuck. Now this behaviour is fixed. This closes [#79394](https://github.com/ClickHouse/ClickHouse/issues/79394). [#79601](https://github.com/ClickHouse/ClickHouse/pull/79601) ([abashkeev](https://github.com/abashkeev)).
+* Add `throw_on_error` setting for startup_scripts: when `throw_on_error` is true, the server will not start unless all queries complete successfully. By default, `throw_on_error` is false, preserving the previous behavior. [#79732](https://github.com/ClickHouse/ClickHouse/pull/79732) ([Aleksandr Musorin](https://github.com/AVMusorin)).
+* The vector similarity index is now also used if the reference vector is of type `Array(BFloat16)`. [#79745](https://github.com/ClickHouse/ClickHouse/pull/79745) ([Shankar Iyer](https://github.com/shankar-iyer)).
+* Add `last_error_message`, `last_error_trace` and `query_id` to the `system.error_log` table. Related ticket [#75816](https://github.com/ClickHouse/ClickHouse/issues/75816). [#79836](https://github.com/ClickHouse/ClickHouse/pull/79836) ([Andrei Tinikov](https://github.com/Dolso)).
+#* Enable sending crash reports by default. This can be turned off in the server's configuration file. [#79838](https://github.com/ClickHouse/ClickHouse/pull/79838) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
+* System table `system.functions` now shows in which ClickHouse version functions were first introduced. [#79839](https://github.com/ClickHouse/ClickHouse/pull/79839) ([Robert Schulze](https://github.com/rschu1ze)).
+* Added `access_control_improvements.enable_user_name_access_type` setting. This setting allows enabling/disabling of precise grants for users/roles, introduced in https://github.com/ClickHouse/ClickHouse/pull/72246. You may want to turn this setting off in case you have a cluster with the replicas older than 25.1. [#79842](https://github.com/ClickHouse/ClickHouse/pull/79842) ([pufit](https://github.com/pufit)).
+* Proper implementation of `ASTSelectWithUnionQuery::clone()` method now takes into account `is_normalized` field as well. This might help with [#77569](https://github.com/ClickHouse/ClickHouse/issues/77569). [#79909](https://github.com/ClickHouse/ClickHouse/pull/79909) ([Nikita Mikhaylov](https://github.com/nikitamikhaylov)).
+* Support correlated subqueries in the projection list in simple cases. [#79925](https://github.com/ClickHouse/ClickHouse/pull/79925) ([Dmitry Novik](https://github.com/novikd)).
+* Fix the inconsistent formatting of certain queries with the `EXCEPT` operator. If the left-hand side of the EXCEPT operator ends with `*`, the formatted query loses parentheses and is then parsed as a `*` with the `EXCEPT` modifier. These queries are found by the fuzzer and are unlikely to be found in practice. This closes [#79950](https://github.com/ClickHouse/ClickHouse/issues/79950). [#79952](https://github.com/ClickHouse/ClickHouse/pull/79952) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
+* Allow to add `http_response_headers` in `http_handlers` of any kind. [#79975](https://github.com/ClickHouse/ClickHouse/pull/79975) ([Andrey Zvonov](https://github.com/zvonand)).
+* Small improvement in JSON type parsing by using cache of variants deserialization order. [#79984](https://github.com/ClickHouse/ClickHouse/pull/79984) ([Pavel Kruglov](https://github.com/Avogar)).
+* Allow moving `GLOBAL [NOT] IN` predicate to `PREWHERE` clause if applicable. [#79996](https://github.com/ClickHouse/ClickHouse/pull/79996) ([Eduard Karacharov](https://github.com/korowa)).
+* Add setting `s3_slow_all_threads_after_network_error`. [#80035](https://github.com/ClickHouse/ClickHouse/pull/80035) ([Vitaly Baranov](https://github.com/vitlibar)).
+* The logging level about the selected parts to merge was wrong (Information). Closes [#80061](https://github.com/ClickHouse/ClickHouse/issues/80061). [#80062](https://github.com/ClickHouse/ClickHouse/pull/80062) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
+* Function reverse support Tuple data type. Closes [#80053](https://github.com/ClickHouse/ClickHouse/issues/80053). [#80083](https://github.com/ClickHouse/ClickHouse/pull/80083) ([flynn](https://github.com/ucasfl)).
+* Setting `enble_url_encoding` default value is now set to `False`. [#80088](https://github.com/ClickHouse/ClickHouse/pull/80088) ([Shankar Iyer](https://github.com/shankar-iyer)).
+* This tiny patch resolves [#75817](https://github.com/ClickHouse/ClickHouse/issues/75817): allows get `auxiliary_zookeepers` data from `system.zookeeper` table. [#80146](https://github.com/ClickHouse/ClickHouse/pull/80146) ([Nikolay Govorov](https://github.com/mrdimidium)).
+* Vector search using the vector similarity index is now beta (previously experimental). [#80164](https://github.com/ClickHouse/ClickHouse/pull/80164) ([Robert Schulze](https://github.com/rschu1ze)).
+* Add asynchronous metrics about the server's TCP sockets. This improves the observability. Closes [#80187](https://github.com/ClickHouse/ClickHouse/issues/80187). [#80188](https://github.com/ClickHouse/ClickHouse/pull/80188) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
+* Function `tokens` now supports `string` as a tokenizer. [#80195](https://github.com/ClickHouse/ClickHouse/pull/80195) ([Robert Schulze](https://github.com/rschu1ze)).
+* Parallel replicas: avoid waiting for slow unused replicas if all read tasks have been assigned to other replicas. [#80199](https://github.com/ClickHouse/ClickHouse/pull/80199) ([Igor Nikonov](https://github.com/devcrafter)).
+* Support `anylast_respect_nulls` and `any_respect_nulls` in `simpleAggregateFunction`. [#80219](https://github.com/ClickHouse/ClickHouse/pull/80219) ([Diskein](https://github.com/Diskein)).
+* Remove unnecessary call `adjustCreateQueryForBackup()` for replicated databases. [#80282](https://github.com/ClickHouse/ClickHouse/pull/80282) ([Vitaly Baranov](https://github.com/vitlibar)).
+#* Allow extra options (that go after `--` like `-- --config.value='abc'`) in `clickhouse-local` without the equality sign. Closes [#80292](https://github.com/ClickHouse/ClickHouse/issues/80292). [#80293](https://github.com/ClickHouse/ClickHouse/pull/80293) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
+* Highlight metacharacters in `SHOW ... LIKE` queries. This closes [#80275](https://github.com/ClickHouse/ClickHouse/issues/80275). [#80297](https://github.com/ClickHouse/ClickHouse/pull/80297) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
+#* Make SQL UDF persistent in `clickhouse-local`. The previously created function will be loaded at startup. This closes [#80085](https://github.com/ClickHouse/ClickHouse/issues/80085). [#80300](https://github.com/ClickHouse/ClickHouse/pull/80300) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
+* Support comparison between `Time`/`Time64`. [#80327](https://github.com/ClickHouse/ClickHouse/pull/80327) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
+* Fix description in explain plan for a preliminary distinct step. [#80330](https://github.com/ClickHouse/ClickHouse/pull/80330) ([UnamedRus](https://github.com/UnamedRus)).
+* Allow use of named collections in ODBC/JDBC. [#80334](https://github.com/ClickHouse/ClickHouse/pull/80334) ([Andrey Zvonov](https://github.com/zvonand)).
+* Enable multiple-projection filtering support, allowing to use more than one projection for part-level filtering. This addresses [#55525](https://github.com/ClickHouse/ClickHouse/issues/55525). This is the second step to implement projection index, following [#78429](https://github.com/ClickHouse/ClickHouse/issues/78429). [#80343](https://github.com/ClickHouse/ClickHouse/pull/80343) ([Amos Bird](https://github.com/amosbird)).
+* Metrics for the number of readonly and broken disks. Indicator logs when DiskLocalCheckThread is started. [#80391](https://github.com/ClickHouse/ClickHouse/pull/80391) ([VicoWu](https://github.com/VicoWu)).
+* Implement support for `s3_plain_rewritable` storage with projections. In previous versions, metadata objects in S3 referencing projections would not get updated when moved. Closes [#70258](https://github.com/ClickHouse/ClickHouse/issues/70258). [#80393](https://github.com/ClickHouse/ClickHouse/pull/80393) ([Sav](https://github.com/sberss)).
+* Parallel replicas uses separate connection timeout, see `parallel_replicas_connect_timeout_ms` setting. Before `connect_timeout_with_failover_ms`/`connect_timeout_with_failover_secure_ms` settings were used as connection timeout values for parallel replicas queries (1 second by default). [#80421](https://github.com/ClickHouse/ClickHouse/pull/80421) ([Igor Nikonov](https://github.com/devcrafter)).
+* The `SYSTEM UNFREEZE` command will not try to look up parts in readonly and write-once disks. This closes [#80430](https://github.com/ClickHouse/ClickHouse/issues/80430). [#80432](https://github.com/ClickHouse/ClickHouse/pull/80432) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
+* Changed log level of a merged parts message from INFO to TRACE. [#80476](https://github.com/ClickHouse/ClickHouse/pull/80476) ([Hans Krutzer](https://github.com/hkrutzer)).
+* Implement flattened serialization for Dynamic and JSON in Native format that allows to serialize/deserialize Dynamic and JSON data without special structures like shared variant for Dynamic and shared data for JSON. This serialization can be enabled by setting `output_format_native_use_flattened_dynamic_and_json_serialization`. This serialization can be used for easier support for Dynamic and JSON in TCP protocol in clients in different languages. [#80499](https://github.com/ClickHouse/ClickHouse/pull/80499) ([Pavel Kruglov](https://github.com/Avogar)).
+* Changes the default behavior of partition pruning for Iceberg table. [#80583](https://github.com/ClickHouse/ClickHouse/pull/80583) ([Melvyn Peignon](https://github.com/melvynator)).
+* Add two new ProfileEvents for index search algorithm observability: `IndexBinarySearchAlgorithm` and `IndexGenericExclusionSearchAlgorithm`. [#80679](https://github.com/ClickHouse/ClickHouse/pull/80679) ([Pablo Marcos](https://github.com/pamarcos)).
+* Do not complain about unsupported `MADV_POPULATE_WRITE` for older kernels in logs (to avoid logs polluting). [#80704](https://github.com/ClickHouse/ClickHouse/pull/80704) ([Robert Schulze](https://github.com/rschu1ze)).
+* Added support for Date32, DateTime64 in TTL. [#80710](https://github.com/ClickHouse/ClickHouse/pull/80710) ([Andrey Zvonov](https://github.com/zvonand)).
+* Adjust compatibility values for `max_merge_delayed_streams_for_parallel_write`. [#80760](https://github.com/ClickHouse/ClickHouse/pull/80760) ([Azat Khuzhin](https://github.com/azat)).
+* Fix a crash: if an exception is thrown in an attempt to remove a temporary file (they are used for spilling temporary data on disk) in the destructor, the program can terminate. [#80776](https://github.com/ClickHouse/ClickHouse/pull/80776) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
+* Add `IF EXISTS` modifier to `SYSTEM SYNC REPLICA`. [#80810](https://github.com/ClickHouse/ClickHouse/pull/80810) ([Raúl Marín](https://github.com/Algunenano)).
+* Extend the exception message about "Having zero bytes, but read range is not finished...", add finished_download_time column to system.filesystem_cache'. [#80849](https://github.com/ClickHouse/ClickHouse/pull/80849) ([Kseniia Sumarokova](https://github.com/kssenii)).
+* Previously, `packed` storage was not supported for the full-text index, because the segment id was updated on-fly by reading and writing (`.gin_sid`) file on disk. In case of packed storage, reading a value from the uncommited file is not supported and this led to an issue. [#80852](https://github.com/ClickHouse/ClickHouse/pull/80852) ([Elmi Ahmadov](https://github.com/ahmadov)).
+* Add a search algorithm section to `EXPLAIN` output when using it with `indexes = 1`. It shows either "binary search" or "generic exclusion search". [#80881](https://github.com/ClickHouse/ClickHouse/pull/80881) ([Pablo Marcos](https://github.com/pamarcos)).
+* At the beginning of 2024, `prefer_column_name_to_alias` was hardcoded to True for MySQL handler because the new analyzer was not enabled by default. Now, it has been unhardcoded. [#80916](https://github.com/ClickHouse/ClickHouse/pull/80916) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
+* Now `system.iceberg_history` shows history for catalogs databases like glue or iceberg rest. Also renamed `table_name` and `database_name` columns to `table` and `database` in `system.iceberg_history` for consistency. [#80975](https://github.com/ClickHouse/ClickHouse/pull/80975) ([alesapin](https://github.com/alesapin)).
+* Allow read-only mode for the `merge` table function, so the `CREATE TEMPORARY TABLE` grant is not required for using it. [#80981](https://github.com/ClickHouse/ClickHouse/pull/80981) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)).
+* Better introspection of in-memory caches (expose information about caches in `system.metrics` over incomplete `system.asynchronouse_metrics`). Add in-memory caches size (in bytes) into `dashboard.html`. `VectorSimilarityIndexCacheSize`/`IcebergMetadataFilesCacheSize` has been renamed to `VectorSimilarityIndexCacheBytes`/`IcebergMetadataFilesCacheBytes`. [#81023](https://github.com/ClickHouse/ClickHouse/pull/81023) ([Azat Khuzhin](https://github.com/azat)).
+* Ignore databases with engines that can't contain RocksDB tables while reading from system.rocksdb. [#81083](https://github.com/ClickHouse/ClickHouse/pull/81083) ([Pervakov Grigorii](https://github.com/GrigoryPervakov)).
+* Allow `filesystem_caches` and `named_collections` in the `clickhouse-local` configuration file. [#81105](https://github.com/ClickHouse/ClickHouse/pull/81105) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
+* Fix highlighting of `PARTITION BY` in `INSERT` queries. In previous versions, `PARTITION BY` was not highlighted as a keyword. [#81106](https://github.com/ClickHouse/ClickHouse/pull/81106) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
+#* Two mini improvements in Web UI: correctly handle queries without output, such as `CREATE`, `INSERT` (until recently, these queries resulted in an infinite spinner); - when double clicking on a table, scroll to the top. [#81131](https://github.com/ClickHouse/ClickHouse/pull/81131) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
+#* Update `c-ares` to `v1.34.5`. [#81159](https://github.com/ClickHouse/ClickHouse/pull/81159) ([Konstantin Bogdanov](https://github.com/thevar1able)).
+#* Upgrade curl to 8.14 to address CVE-2025-5025 and CVE-2025-4947. [#81171](https://github.com/ClickHouse/ClickHouse/pull/81171) ([larryluogit](https://github.com/larryluogit)).
+#* Upgrade libarchive to 3.7.9 to address: CVE-2024-20696 CVE-2025-25724 CVE-2024-48958 CVE-2024-57970 CVE-2025-1632 CVE-2024-48957 CVE-2024-48615. [#81174](https://github.com/ClickHouse/ClickHouse/pull/81174) ([larryluogit](https://github.com/larryluogit)).
+#* Upgrade libxml2 to 2.14.3. [#81187](https://github.com/ClickHouse/ClickHouse/pull/81187) ([larryluogit](https://github.com/larryluogit)).
+* `MemoryResidentWithoutPageCache` provides the amount of physical memory used by the server process, excluding userspace page cache, in bytes. This provides a more accurate view of actual memory usage when userspace page cache is utilized. When userspace page cache is disabled, this value equals MemoryResident. [#81233](https://github.com/ClickHouse/ClickHouse/pull/81233) ([Jayme Bird](https://github.com/jaymebrd)).
+* Mark manually logged exceptions in client, local server, keeper client and disks app as logged, so that they are not logged twice. [#81271](https://github.com/ClickHouse/ClickHouse/pull/81271) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)).
+* Setting `use_skip_indexes_if_final` and `use_skip_indexes_if_final_exact_mode` now default to `True`. Queries with `FINAL` clause will now use skip indexes (if applicable) to shortlist granules and also read any additional granules corresponding to matching primary key ranges. Users needing earlier behaviour of approximate/imprecise results can set `use_skip_indexes_if_final_exact_mode` to FALSE after careful evaluation. [#81331](https://github.com/ClickHouse/ClickHouse/pull/81331) ([Shankar Iyer](https://github.com/shankar-iyer)).
+#* When you have multiple queries in the web UI, it will run the one under the cursor. Continuation of [#80977](https://github.com/ClickHouse/ClickHouse/issues/80977). [#81354](https://github.com/ClickHouse/ClickHouse/pull/81354) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
+* This PR addresses issues with the implementation of `is_strict` in the monotonicity checks for conversion functions. Currently, some conversion functions, such as toFloat64(UInt32) and toDate(UInt8), incorrectly return is_strict as false when they should return true. [#81359](https://github.com/ClickHouse/ClickHouse/pull/81359) ([zoomxi](https://github.com/zoomxi)).
+#* In filesystem with journal `mkdir` is written to the journal of filesystem which is persisted to disk. In case of slow disk this can take long time. Definitely make sense to move out from reserve lock scope. [#81371](https://github.com/ClickHouse/ClickHouse/pull/81371) ([Kseniia Sumarokova](https://github.com/kssenii)).
+* When checking if a `KeyCondition` matches a continuous range, if the key is wrapped with a non-strict function chain, a `Constraint::POINT` may needs to be converted to a`Constraint::RANGE`. For example: `toDate(event_time) = '2025-06-03'` implies a range for `event_time`: ['2025-06-03 00:00:00', '2025-06-04 00:00:00'). This PR fixes this behavior. [#81400](https://github.com/ClickHouse/ClickHouse/pull/81400) ([zoomxi](https://github.com/zoomxi)).
+#* Use `postgres` 16.9. [#81437](https://github.com/ClickHouse/ClickHouse/pull/81437) ([Konstantin Bogdanov](https://github.com/thevar1able)).
+#* Use `openssl` 3.2.4. [#81438](https://github.com/ClickHouse/ClickHouse/pull/81438) ([Konstantin Bogdanov](https://github.com/thevar1able)).
+#* Use `abseil-cpp` 2025-01-27. [#81440](https://github.com/ClickHouse/ClickHouse/pull/81440) ([Konstantin Bogdanov](https://github.com/thevar1able)).
+#* Use `mongo-c-driver` 1.30.4. [#81449](https://github.com/ClickHouse/ClickHouse/pull/81449) ([Konstantin Bogdanov](https://github.com/thevar1able)).
+#* Use `krb5` 1.21.3-final. [#81453](https://github.com/ClickHouse/ClickHouse/pull/81453) ([Konstantin Bogdanov](https://github.com/thevar1able)).
+#* Use `orc` 2.1.2. [#81455](https://github.com/ClickHouse/ClickHouse/pull/81455) ([Konstantin Bogdanov](https://github.com/thevar1able)).
+#* Add support for the `--database` argument in `clickhouse-local`. You can switch to a previously created database. This closes [#44115](https://github.com/ClickHouse/ClickHouse/issues/44115). [#81465](https://github.com/ClickHouse/ClickHouse/pull/81465) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
+#* `clickhouse`/`ch` aliases will invoke `clickhouse-client` instead of `clickhouse-local` if `--host` or `--port` are specified. Continuation of [#79422](https://github.com/ClickHouse/ClickHouse/issues/79422). Closes [#65252](https://github.com/ClickHouse/ClickHouse/issues/65252). [#81509](https://github.com/ClickHouse/ClickHouse/pull/81509) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
+* Now that we have the keeper response time distribution data, we can tune the histogram buckets. [#81516](https://github.com/ClickHouse/ClickHouse/pull/81516) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)).
+* Postpone reading of Iceberg manifest files until the first reading of a query. [#81619](https://github.com/ClickHouse/ClickHouse/pull/81619) ([Daniil Ivanik](https://github.com/divanik)).
+#* Use `grpc` 1.73.0. [#81629](https://github.com/ClickHouse/ClickHouse/pull/81629) ([Konstantin Bogdanov](https://github.com/thevar1able)).
+#* Use `delta-kernel-rs` v0.12.1. [#81707](https://github.com/ClickHouse/ClickHouse/pull/81707) ([Konstantin Bogdanov](https://github.com/thevar1able)).
+* Add profile event `PageCacheReadBytes`. [#81742](https://github.com/ClickHouse/ClickHouse/pull/81742) ([Kseniia Sumarokova](https://github.com/kssenii)).
+
+## Bug fix (user-visible misbehavior in an official stable release) {#bug-fix-user-visible-misbehavior-in-an-official-stable-release}
+
+* Fix parameterized view with `SELECT EXCEPT` query. Closes [#49447](https://github.com/ClickHouse/ClickHouse/issues/49447). [#57380](https://github.com/ClickHouse/ClickHouse/pull/57380) ([Nikolay Degterinsky](https://github.com/evillique)).
+* Analyzer: fix column projection name after column type promotion in join. Closes [#63345](https://github.com/ClickHouse/ClickHouse/issues/63345). [#63519](https://github.com/ClickHouse/ClickHouse/pull/63519) ([Dmitry Novik](https://github.com/novikd)).
+* A materialized view can start too late, e.g. after the Kafka table that streams to it. [#72123](https://github.com/ClickHouse/ClickHouse/pull/72123) ([Ilya Golshtein](https://github.com/ilejn)).
+* Fixed a logical error in cases of column name clashes when analyzer_compatibility_join_using_top_level_identifier is enabled. [#75676](https://github.com/ClickHouse/ClickHouse/pull/75676) ([Vladimir Cherkasov](https://github.com/vdimir)).
+* Fixed rare crashes while reading from `MergeTree` table after multiple asynchronous (with `alter_sync = 0`) `RENAME COLUMN` and `ADD COLUMN` queries. [#76346](https://github.com/ClickHouse/ClickHouse/pull/76346) ([Anton Popov](https://github.com/CurtizJ)).
+* Fix `SELECT` query rewriting during `VIEW` creation with enabled analyzer. closes [#75956](https://github.com/ClickHouse/ClickHouse/issues/75956). [#76356](https://github.com/ClickHouse/ClickHouse/pull/76356) ([Dmitry Novik](https://github.com/novikd)).
+* Fix CTE usage in pushed-down predicates when `allow_push_predicate_ast_for_distributed_subqueries` is enabled. Fixes [#75647](https://github.com/ClickHouse/ClickHouse/issues/75647). Fixes [#79672](https://github.com/ClickHouse/ClickHouse/issues/79672). [#77316](https://github.com/ClickHouse/ClickHouse/pull/77316) ([Dmitry Novik](https://github.com/novikd)).
+* Fix applying `async_insert` from server (via `apply_settings_from_server`) (previously leads to `Unknown packet 11 from server` errors on the client). [#77578](https://github.com/ClickHouse/ClickHouse/pull/77578) ([Azat Khuzhin](https://github.com/azat)).
+* Fixed refreshable materialized view in replicated databases not working on newly added replicas. [#77774](https://github.com/ClickHouse/ClickHouse/pull/77774) ([Michael Kolupaev](https://github.com/al13n321)).
+* Fixed refreshable materialized views breaking backups. [#77893](https://github.com/ClickHouse/ClickHouse/pull/77893) ([Michael Kolupaev](https://github.com/al13n321)).
+* Fix old firing logical error for `transform`. [#78247](https://github.com/ClickHouse/ClickHouse/pull/78247) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
+* Fixes an issue where `SYSTEM SYNC REPLICA LIGHTWEIGHT 'foo'` would report success even when the specified replica didn't exist. The command now properly validates that the replica exists in Keeper before attempting synchronization. [#78405](https://github.com/ClickHouse/ClickHouse/pull/78405) ([Jayme Bird](https://github.com/jaymebrd)).
+* Fix some cases where secondary index was not applied with analyzer. Fixes [#65607](https://github.com/ClickHouse/ClickHouse/issues/65607) , fixes [#69373](https://github.com/ClickHouse/ClickHouse/issues/69373). [#78485](https://github.com/ClickHouse/ClickHouse/pull/78485) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
+* Fix dumping profile events (`NetworkSendElapsedMicroseconds`/`NetworkSendBytes`) for HTTP protocol with compression enabled (the error should not be more then the buffer size, usually around 1MiB). [#78516](https://github.com/ClickHouse/ClickHouse/pull/78516) ([Azat Khuzhin](https://github.com/azat)).
+#* ```sql CREATE TABLE t0 ( key Int32, value Int32 ) ENGINE=MergeTree() PRIMARY KEY key PARTITION BY key % 2;. [#78593](https://github.com/ClickHouse/ClickHouse/pull/78593) ([Vlad](https://github.com/codeworse)).
+* Fix analyzer producing `LOGICAL_ERROR` when `JOIN ... USING` involves `ALIAS` column - should produce an appropriate error. [#78618](https://github.com/ClickHouse/ClickHouse/pull/78618) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)).
+* Fix analyzer: `CREATE VIEW ... ON CLUSTER` fails if SELECT contains positional arguments. [#78663](https://github.com/ClickHouse/ClickHouse/pull/78663) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)).
+* Fix `Block structure mismatch` error in case of `INSERT SELECT` into table a function with schema inference if `SELECT` has scalar subqueries. [#78677](https://github.com/ClickHouse/ClickHouse/pull/78677) ([Pervakov Grigorii](https://github.com/GrigoryPervakov)).
+* Fix analyzer: with `prefer_global_in_and_join=1` for Distributed table in SELECT query `in` function should be replaced by `globalIn`. [#78749](https://github.com/ClickHouse/ClickHouse/pull/78749) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)).
+* Fixed several types of `SELECT` queries that read from tables with `MongoDB` engine or `mongodb` table function: queries with implicit conversion of const value in `WHERE` clause (e.g. `WHERE datetime = '2025-03-10 00:00:00'`) ; queries with `LIMIT` and `GROUP BY`. Previously, they could return the wrong result. [#78777](https://github.com/ClickHouse/ClickHouse/pull/78777) ([Anton Popov](https://github.com/CurtizJ)).
+* Fix conversion between different JSON types. Now it's performed by simple cast through convertion to/from String. It's less effective but 100% accurate. [#78807](https://github.com/ClickHouse/ClickHouse/pull/78807) ([Pavel Kruglov](https://github.com/Avogar)).
+* Fix logical error during convertion of Dynamic type to Interval. [#78813](https://github.com/ClickHouse/ClickHouse/pull/78813) ([Pavel Kruglov](https://github.com/Avogar)).
+* Fix column rollback on JSON parsing error. [#78836](https://github.com/ClickHouse/ClickHouse/pull/78836) ([Pavel Kruglov](https://github.com/Avogar)).
+* Fix 'bad cast' error when join using constant alias column. [#78848](https://github.com/ClickHouse/ClickHouse/pull/78848) ([Vladimir Cherkasov](https://github.com/vdimir)).
+* Don't allow `PREWHERE` in materialized views on columns with different types in view and target table. [#78889](https://github.com/ClickHouse/ClickHouse/pull/78889) ([Pavel Kruglov](https://github.com/Avogar)).
+* Fix logical error during parsing of bad binary data of Variant column. [#78982](https://github.com/ClickHouse/ClickHouse/pull/78982) ([Pavel Kruglov](https://github.com/Avogar)).
+* Throw an exception when the parquet batch size is set to 0. Previously when `output_format_parquet_batch_size = 0` ClickHouse would hang. Now this behavior is fixed. [#78991](https://github.com/ClickHouse/ClickHouse/pull/78991) ([daryawessely](https://github.com/daryawessely)).
+* Fix deserialization of variant discriminators with basic format in compact parts. It was introduced in https://github.com/ClickHouse/ClickHouse/pull/55518. [#79000](https://github.com/ClickHouse/ClickHouse/pull/79000) ([Pavel Kruglov](https://github.com/Avogar)).
+* Dictionaries of type `complex_key_ssd_cache` now reject zero or negative `block_size` and `write_buffer_size` parameters (issue [#78314](https://github.com/ClickHouse/ClickHouse/issues/78314)). [#79028](https://github.com/ClickHouse/ClickHouse/pull/79028) ([Elmi Ahmadov](https://github.com/ahmadov)).
+* Avoid using Field for non-aggregated columns in SummingMergeTree. It could lead to unexpected errors with Dynamic/Variant types used in SummingMergeTree. [#79051](https://github.com/ClickHouse/ClickHouse/pull/79051) ([Pavel Kruglov](https://github.com/Avogar)).
+* Fix read from materialized view with distributed destination table and different header in analyzer. [#79059](https://github.com/ClickHouse/ClickHouse/pull/79059) ([Pavel Kruglov](https://github.com/Avogar)).
+* Fix crash for a very specific situation when the `currentDatabase` function was used in `CONSTRAINT` sections for `ON CLUSTER` queries Closes [#78100](https://github.com/ClickHouse/ClickHouse/issues/78100). [#79070](https://github.com/ClickHouse/ClickHouse/pull/79070) ([pufit](https://github.com/pufit)).
+* Fixes a bug where `arrayUnion()` returned extra (incorrect) values on tables that had batch inserts. Fixes [#75057](https://github.com/ClickHouse/ClickHouse/issues/75057). [#79079](https://github.com/ClickHouse/ClickHouse/pull/79079) ([Peter Nguyen](https://github.com/petern48)).
+#* Fix segfault in `OpenSSLInitializer`. Closes [#79092](https://github.com/ClickHouse/ClickHouse/issues/79092). [#79097](https://github.com/ClickHouse/ClickHouse/pull/79097) ([Konstantin Bogdanov](https://github.com/thevar1able)).
+* Fix passing of external roles in inter-server queries. [#79099](https://github.com/ClickHouse/ClickHouse/pull/79099) ([Andrey Zvonov](https://github.com/zvonand)).
+* Always set prefix for S3 ListObject. [#79114](https://github.com/ClickHouse/ClickHouse/pull/79114) ([Azat Khuzhin](https://github.com/azat)).
+* Fixes a bug where `arrayUnion()` returned extra (incorrect) values on tables that had batch inserts. Fixes [#79157](https://github.com/ClickHouse/ClickHouse/issues/79157). [#79158](https://github.com/ClickHouse/ClickHouse/pull/79158) ([Peter Nguyen](https://github.com/petern48)).
+* Fix logical error after filter pushdown. [#79164](https://github.com/ClickHouse/ClickHouse/pull/79164) ([Pervakov Grigorii](https://github.com/GrigoryPervakov)).
+* Try to use IColumn instead of Field in SingleValueDataGeneric. It fixes the incorrect return values for some aggregate functions like `argMax` for types `Dynamic/Variant/JSON`. [#79166](https://github.com/ClickHouse/ClickHouse/pull/79166) ([Pavel Kruglov](https://github.com/Avogar)).
+* Fix DeltaLake table engine with delta-kernel implementation being used with http based endpoints, fix NOSIGN. Closes [#78124](https://github.com/ClickHouse/ClickHouse/issues/78124). [#79203](https://github.com/ClickHouse/ClickHouse/pull/79203) ([Kseniia Sumarokova](https://github.com/kssenii)).
+* Keeper fix: Avoid triggering watches on failed multi requests. [#79247](https://github.com/ClickHouse/ClickHouse/pull/79247) ([Antonio Andelic](https://github.com/antonio2368)).
+* Forbid Dynamic and JSON types in IN. With current implementation of `IN` it can lead to incorrect results. Proper support of this types in `IN` is complicated and can be done in future. [#79282](https://github.com/ClickHouse/ClickHouse/pull/79282) ([Pavel Kruglov](https://github.com/Avogar)).
+* Fix check for duplicate paths in JSON type parsing. [#79317](https://github.com/ClickHouse/ClickHouse/pull/79317) ([Pavel Kruglov](https://github.com/Avogar)).
+* Fix SecureStreamSocket connection issues. [#79383](https://github.com/ClickHouse/ClickHouse/pull/79383) ([Konstantin Bogdanov](https://github.com/thevar1able)).
+* Fix loading of plain_rewritable disks containing data. [#79439](https://github.com/ClickHouse/ClickHouse/pull/79439) ([Julia Kartseva](https://github.com/jkartseva)).
+* Fix crash in dynamic subcolumns discovery in Wide parts in MergeTree. [#79466](https://github.com/ClickHouse/ClickHouse/pull/79466) ([Pavel Kruglov](https://github.com/Avogar)).
+* Verify the table name's length only for initial create queries. Do not verify this for secondary creates to avoid backward compatibility issues. [#79488](https://github.com/ClickHouse/ClickHouse/pull/79488) ([Miсhael Stetsyuk](https://github.com/mstetsyuk)).
+* Fixed error `Block structure mismatch` in several cases with tables with sparse columns. [#79491](https://github.com/ClickHouse/ClickHouse/pull/79491) ([Anton Popov](https://github.com/CurtizJ)).
+* Fixes two cases of `Logical Error: Can't set alias of * of Asterisk on alias`. [#79505](https://github.com/ClickHouse/ClickHouse/pull/79505) ([Raúl Marín](https://github.com/Algunenano)).
+* Fix applying use_native_copy and allow_azure_native_copy setting for azure blob storage and updated to use native copy only when credentials match resolves [#78964](https://github.com/ClickHouse/ClickHouse/issues/78964). [#79561](https://github.com/ClickHouse/ClickHouse/pull/79561) ([Smita Kulkarni](https://github.com/SmitaRKulkarni)).
+* Fix using incorrect paths when renaming an Atomic database. [#79569](https://github.com/ClickHouse/ClickHouse/pull/79569) ([Tuan Pham Anh](https://github.com/tuanpach)).
+* Fix order by JSON column with other columns. [#79591](https://github.com/ClickHouse/ClickHouse/pull/79591) ([Pavel Kruglov](https://github.com/Avogar)).
+* Fix result duplication when reading from remote with both `use_hedged_requests` and `allow_experimental_parallel_reading_from_replicas` disabled. [#79599](https://github.com/ClickHouse/ClickHouse/pull/79599) ([Eduard Karacharov](https://github.com/korowa)).
+* Fix crash in delta-kernel implementation when using unity catalog. [#79677](https://github.com/ClickHouse/ClickHouse/pull/79677) ([Kseniia Sumarokova](https://github.com/kssenii)).
+* Resolve macros for autodiscovery clusters. [#79696](https://github.com/ClickHouse/ClickHouse/pull/79696) ([Anton Ivashkin](https://github.com/ianton-ru)).
+* Fix logical errors about a column's unknown origin scope produced while checking if this column is correlated. Fixes [#78183](https://github.com/ClickHouse/ClickHouse/issues/78183). Fixes [#79451](https://github.com/ClickHouse/ClickHouse/issues/79451). [#79727](https://github.com/ClickHouse/ClickHouse/pull/79727) ([Dmitry Novik](https://github.com/novikd)).
+* Fix wrong results for grouping sets with ColumnConst and Analyzer. [#79743](https://github.com/ClickHouse/ClickHouse/pull/79743) ([Andrey Zvonov](https://github.com/zvonand)).
+* Fix local shard result duplication when reading from distributed table with local replica being stale. [#79761](https://github.com/ClickHouse/ClickHouse/pull/79761) ([Eduard Karacharov](https://github.com/korowa)).
+* Handle incorrectly configured `page_cache_limits` suitably. [#79805](https://github.com/ClickHouse/ClickHouse/pull/79805) ([Bharat Nallan](https://github.com/bharatnc)).
+* Fixes the result of SQL function `formatDateTime` if a variable-size formatter (e.g. `%W` aka. weekday `Monday` `Tuesday`, etc.) is followed by a compound formatter (a formatter that prints multiple components at once, e.g. `%D` aka. the American date `05/04/25`). [#79835](https://github.com/ClickHouse/ClickHouse/pull/79835) ([Robert Schulze](https://github.com/rschu1ze)).
+* IcebergS3 supports count optimization, but IcebergS3Cluster does not. As a result, the count() result returned in cluster mode may be a multiple of the number of replicas. [#79844](https://github.com/ClickHouse/ClickHouse/pull/79844) ([wxybear](https://github.com/wxybear)).
+* Fix the sorting order of the NaNs with a negative sign bit. [#79847](https://github.com/ClickHouse/ClickHouse/pull/79847) ([Pervakov Grigorii](https://github.com/GrigoryPervakov)).
+* Now `GROUP BY ALL` doesn't take into account the `GROUPING` part. [#79915](https://github.com/ClickHouse/ClickHouse/pull/79915) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
+* Fixes `AMBIGUOUS_COLUMN_NAME` error with lazy materialization when no columns are used for query execution until projection. Example, SELECT * FROM t ORDER BY rand() LIMIT 5. [#79926](https://github.com/ClickHouse/ClickHouse/pull/79926) ([Igor Nikonov](https://github.com/devcrafter)).
+* Fixed incorrect state merging for `TopK` / `TopKWeighted` functions that would cause excessive error values even when capacity was not exhausted. [#79939](https://github.com/ClickHouse/ClickHouse/pull/79939) ([Joel Höner](https://github.com/athre0z)).
+* Hide password for query `CREATE DATABASE datalake ENGINE = DataLakeCatalog(\'http://catalog:8181\', \'admin\', \'password\')`. [#79941](https://github.com/ClickHouse/ClickHouse/pull/79941) ([Han Fei](https://github.com/hanfei1991)).
+* Allow specifying an alias in `JOIN USING`. Specify this alias in case the column was renamed (e.g., because of `ARRAY JOIN). Fixes [#73707](https://github.com/ClickHouse/ClickHouse/issues/73707). [#79942](https://github.com/ClickHouse/ClickHouse/pull/79942) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
+* Respect `readonly` setting in `azure_blob_storage` object storage. [#79954](https://github.com/ClickHouse/ClickHouse/pull/79954) ([Julia Kartseva](https://github.com/jkartseva)).
+* Fixed incorrect query results and out-of-memory crashes when using `match(column, '^…')` with backslash-escaped characters. [#79969](https://github.com/ClickHouse/ClickHouse/pull/79969) ([filimonov](https://github.com/filimonov)).
+* Disabling hive partitioning for datalakes Partially addresses https://github.com/issues/assigned?issue=ClickHouse%7CClickHouse%7C79937. [#80005](https://github.com/ClickHouse/ClickHouse/pull/80005) ([Daniil Ivanik](https://github.com/divanik)).
+* Skip indexes with lambda expressions could not be applied. Fix the case when high-level functions in the index definition exactly match the one in the query. [#80025](https://github.com/ClickHouse/ClickHouse/pull/80025) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
+* Allow materialized views with UNIONs to work correctly on new replicas. [#80037](https://github.com/ClickHouse/ClickHouse/pull/80037) ([Samay Sharma](https://github.com/samay-sharma)).
+* Fix metadata version during attach part on the replica executing ATTACH_PART command from replication log. [#80038](https://github.com/ClickHouse/ClickHouse/pull/80038) ([Aleksei Filatov](https://github.com/aalexfvk)).
+* Format specifier `%e` in SQL function `parseDateTime` now recognizes single-digit days (e.g. `3`), whereas it previously required space padding (e.g. ` 3`). This makes its behavior compatible with MySQL. To retain the previous behaviour, set setting `parsedatetime_e_requires_space_padding = 1`. (issue [#78243](https://github.com/ClickHouse/ClickHouse/issues/78243)). [#80057](https://github.com/ClickHouse/ClickHouse/pull/80057) ([Robert Schulze](https://github.com/rschu1ze)).
+* Executable User Defined Functions (eUDF) names are not added to the `used_functions` column of the `system.query_log` table, unlike other functions. This PR implements the addition of the eUDF name if the eUDF was used in the request. [#80073](https://github.com/ClickHouse/ClickHouse/pull/80073) ([Kyamran](https://github.com/nibblerenush)).
+#* Fix warnings `Cannot find 'kernel' in '[...]/memory.stat'` in ClickHouse's log (issue [#77410](https://github.com/ClickHouse/ClickHouse/issues/77410)). [#80129](https://github.com/ClickHouse/ClickHouse/pull/80129) ([Robert Schulze](https://github.com/rschu1ze)).
+* Fix logical error in Arrow format with LowCardinality(FixedString). [#80156](https://github.com/ClickHouse/ClickHouse/pull/80156) ([Pavel Kruglov](https://github.com/Avogar)).
+* Fix reading subcolumns from Merge engine. [#80158](https://github.com/ClickHouse/ClickHouse/pull/80158) ([Pavel Kruglov](https://github.com/Avogar)).
+* Fix a bug about the comparison between numeric types in `KeyCondition`. [#80207](https://github.com/ClickHouse/ClickHouse/pull/80207) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
+* Fix AMBIGUOUS_COLUMN_NAME when lazy materialization applied to table with projections. [#80251](https://github.com/ClickHouse/ClickHouse/pull/80251) ([Igor Nikonov](https://github.com/devcrafter)).
+* Fix incorrect count optimization for string prefix filters like LIKE 'ab_c%' when using implicit projections. This fixes [#80250](https://github.com/ClickHouse/ClickHouse/issues/80250). [#80261](https://github.com/ClickHouse/ClickHouse/pull/80261) ([Amos Bird](https://github.com/amosbird)).
+* Fix improper serialization of nested numeric fields as strings in MongoDB documents. Remove maximum depth limit for documents from MongoDB. [#80289](https://github.com/ClickHouse/ClickHouse/pull/80289) ([Kirill Nikiforov](https://github.com/allmazz)).
+* Perform less strict metadata checks for RMT in the Replicated database. Closes [#80296](https://github.com/ClickHouse/ClickHouse/issues/80296). [#80298](https://github.com/ClickHouse/ClickHouse/pull/80298) ([Nikolay Degterinsky](https://github.com/evillique)).
+* Fix text representation of DateTime and DateTime64 for PostgreSQL storage. [#80301](https://github.com/ClickHouse/ClickHouse/pull/80301) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)).
+* Allow `DateTime` with timezone in `StripeLog` tables. This closes [#44120](https://github.com/ClickHouse/ClickHouse/issues/44120). [#80304](https://github.com/ClickHouse/ClickHouse/pull/80304) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
+* Disable filter-push-down for the predicate with a non-deterministic function in case the query plan step changes the number of rows. Fixes [#40273](https://github.com/ClickHouse/ClickHouse/issues/40273). [#80329](https://github.com/ClickHouse/ClickHouse/pull/80329) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
+* Fix possible logical errors and crashes in projections with subcolumns. [#80333](https://github.com/ClickHouse/ClickHouse/pull/80333) ([Pavel Kruglov](https://github.com/Avogar)).
+* Fix `NOT_FOUND_COLUMN_IN_BLOCK` error caused by filter-push-down optimization of the logical JOIN sep in case `ON` expression is not a trivial equality. Fixes [#79647](https://github.com/ClickHouse/ClickHouse/issues/79647) Fixes [#77848](https://github.com/ClickHouse/ClickHouse/issues/77848). [#80360](https://github.com/ClickHouse/ClickHouse/pull/80360) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
+* Fix incorrect results when reading reverse-ordered keys in partitioned tables. This fixes [#79987](https://github.com/ClickHouse/ClickHouse/issues/79987). [#80448](https://github.com/ClickHouse/ClickHouse/pull/80448) ([Amos Bird](https://github.com/amosbird)).
+* Fixed wrong sorting in tables with a nullable key and enabled optimize_read_in_order. [#80515](https://github.com/ClickHouse/ClickHouse/pull/80515) ([Pervakov Grigorii](https://github.com/GrigoryPervakov)).
+* Fixed refreshable materialized view DROP getting stuck if the view was paused using SYSTEM STOP REPLICATED VIEW. [#80543](https://github.com/ClickHouse/ClickHouse/pull/80543) ([Michael Kolupaev](https://github.com/al13n321)).
+* Fix 'Cannot find column' with constant tuple in distributed query. [#80596](https://github.com/ClickHouse/ClickHouse/pull/80596) ([Yakov Olkhovskiy](https://github.com/yakov-olkhovskiy)).
+* Fix `shardNum` function in Distributed tables with `join_use_nulls`. [#80612](https://github.com/ClickHouse/ClickHouse/pull/80612) ([János Benjamin Antal](https://github.com/antaljanosbenjamin)).
+* Fix incorrect results during reading column that exists in subset of tables in Merge engine. [#80643](https://github.com/ClickHouse/ClickHouse/pull/80643) ([Pavel Kruglov](https://github.com/Avogar)).
+* The timestamp in the iceberg_history table should now be correct. [#80711](https://github.com/ClickHouse/ClickHouse/pull/80711) ([Melvyn Peignon](https://github.com/melvynator)).
+* Fix handling of enum globs of a single element in object storage table functions. [#80716](https://github.com/ClickHouse/ClickHouse/pull/80716) ([Konstantin Bogdanov](https://github.com/thevar1able)).
+* Fix wrong result types of comparison functions with Tuple(Dynamic) and String that led to logical error. [#80728](https://github.com/ClickHouse/ClickHouse/pull/80728) ([Pavel Kruglov](https://github.com/Avogar)).
+* Add missing support data type `timestamp_ntz` for unity catalog. Fixes [#79535](https://github.com/ClickHouse/ClickHouse/issues/79535), Fixes [#79875](https://github.com/ClickHouse/ClickHouse/issues/79875). [#80740](https://github.com/ClickHouse/ClickHouse/pull/80740) ([alesapin](https://github.com/alesapin)).
+* Fix `THERE_IS_NO_COLUMN` error for distributed queries with `IN cte`. Fixes [#75032](https://github.com/ClickHouse/ClickHouse/issues/75032). [#80757](https://github.com/ClickHouse/ClickHouse/pull/80757) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
+* Fix excessive number of files (leads to excessive memory usage) for external `ORDER BY`. [#80777](https://github.com/ClickHouse/ClickHouse/pull/80777) ([Azat Khuzhin](https://github.com/azat)).
+#* This PR might close [#80742](https://github.com/ClickHouse/ClickHouse/issues/80742). [#80783](https://github.com/ClickHouse/ClickHouse/pull/80783) ([zoomxi](https://github.com/zoomxi)).
+#* Fix crash in Kafka due to get_member_id() was creating std::string from NULL (it was likely an issue only in case of connection to broker had been failed). [#80793](https://github.com/ClickHouse/ClickHouse/pull/80793) ([Azat Khuzhin](https://github.com/azat)).
+* Properly await consumers before shutting down Kafka engine (active consumers after shutdown can trigger various debug assertions and also may read data from brokers in background after table has been dropped/detached). [#80795](https://github.com/ClickHouse/ClickHouse/pull/80795) ([Azat Khuzhin](https://github.com/azat)).
+* Fix `NOT_FOUND_COLUMN_IN_BLOCK`, which is caused by `predicate-push-down` optimization. Fixes [#80443](https://github.com/ClickHouse/ClickHouse/issues/80443). [#80834](https://github.com/ClickHouse/ClickHouse/pull/80834) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
+* Fix logical error when resolving star (*) matcher in table function in `JOIN` with `USING`. [#80894](https://github.com/ClickHouse/ClickHouse/pull/80894) ([Vladimir Cherkasov](https://github.com/vdimir)).
+* Fix memory accounting for Iceberg metadata files cache. [#80904](https://github.com/ClickHouse/ClickHouse/pull/80904) ([Azat Khuzhin](https://github.com/azat)).
+* Fix wrong partitioning with nullable partition key. [#80913](https://github.com/ClickHouse/ClickHouse/pull/80913) ([Pervakov Grigorii](https://github.com/GrigoryPervakov)).
+* Fix `Table does not exist` error for distributed queries with pushed-down predicate (`allow_push_predicate_ast_for_distributed_subqueries=1`) when the source table does not exist on the initialtor. Fixes [#77281](https://github.com/ClickHouse/ClickHouse/issues/77281). [#80915](https://github.com/ClickHouse/ClickHouse/pull/80915) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
+* Fix the logical error in the nested functions with named windows. [#80926](https://github.com/ClickHouse/ClickHouse/pull/80926) ([Pervakov Grigorii](https://github.com/GrigoryPervakov)).
+* Fix extremes for nullable and floating-point columns. [#80970](https://github.com/ClickHouse/ClickHouse/pull/80970) ([Pervakov Grigorii](https://github.com/GrigoryPervakov)).
+* Fix possible crash while querying from system.tables (likely the case under memory pressure). [#80976](https://github.com/ClickHouse/ClickHouse/pull/80976) ([Azat Khuzhin](https://github.com/azat)).
+* Fix atomic rename with truncate for files which compression is inferred from their file extension. [#80979](https://github.com/ClickHouse/ClickHouse/pull/80979) ([Pablo Marcos](https://github.com/pamarcos)).
+#* Fix ErrorCodes::getName. [#81032](https://github.com/ClickHouse/ClickHouse/pull/81032) ([RinChanNOW](https://github.com/RinChanNOWWW)).
+* Fix bug when user cannot list tables in Unity Catalog without permissions for all of them. Now all tables are listed properly, attempt to read from restricted table will throw an exception. [#81044](https://github.com/ClickHouse/ClickHouse/pull/81044) ([alesapin](https://github.com/alesapin)).
+* Now ClickHouse will ignore errors and unexpected responses from data lake catalogs in `SHOW TABLES` query. Fixes [#79725](https://github.com/ClickHouse/ClickHouse/issues/79725). [#81046](https://github.com/ClickHouse/ClickHouse/pull/81046) ([alesapin](https://github.com/alesapin)).
+* Fix parsing of `DateTime64` from integers in `JSONExtract` and `JSON` type parsing. [#81050](https://github.com/ClickHouse/ClickHouse/pull/81050) ([Pavel Kruglov](https://github.com/Avogar)).
+* Reflect `date_time_input_format` setting in schema inference cache. [#81052](https://github.com/ClickHouse/ClickHouse/pull/81052) ([Pavel Kruglov](https://github.com/Avogar)).
+* Fix crash on `INSERT` if table was DROPed after query started but before columns sent. [#81053](https://github.com/ClickHouse/ClickHouse/pull/81053) ([Azat Khuzhin](https://github.com/azat)).
+* Fix use-of-uninitialized-value in quantileDeterministic. [#81062](https://github.com/ClickHouse/ClickHouse/pull/81062) ([Azat Khuzhin](https://github.com/azat)).
+* Fix hardlinks count management for metadatastoragefromdisk disk transactions. add tests. [#81066](https://github.com/ClickHouse/ClickHouse/pull/81066) ([Sema Checherinda](https://github.com/CheSema)).
+* User Defined Functions (UDF) names are not added to the `system.query_log` table, unlike other functions. This PR implements the addition of the UDF name to one of the two columns `used_executable_user_defined_functions` or `used_sql_user_defined_functions` if the UDF was used in the request. [#81101](https://github.com/ClickHouse/ClickHouse/pull/81101) ([Kyamran](https://github.com/nibblerenush)).
+* Fixed `Too large size ... passed to allocator` errors or possible crashes on inserts via http protocol with text formats (`JSON`, `Values`, ...) and omitted `Enum` fields. [#81145](https://github.com/ClickHouse/ClickHouse/pull/81145) ([Anton Popov](https://github.com/CurtizJ)).
+* Fix LOGICAL_ERROR in case of Sparse column in INSERT block pushed to non-MT MV. [#81161](https://github.com/ClickHouse/ClickHouse/pull/81161) ([Azat Khuzhin](https://github.com/azat)).
+* Fix `Unknown table expression identifier` for `distributed_product_mode_local=local` with cross-replication. [#81162](https://github.com/ClickHouse/ClickHouse/pull/81162) ([Nikolai Kochetov](https://github.com/KochetovNicolai)).
+* Fixed incorrectly caching number of rows in parquet files after filtering. [#81184](https://github.com/ClickHouse/ClickHouse/pull/81184) ([Michael Kolupaev](https://github.com/al13n321)).
+* Fix fs cache `max_size_to_total_space` setting when used with relative cache path. [#81237](https://github.com/ClickHouse/ClickHouse/pull/81237) ([Kseniia Sumarokova](https://github.com/kssenii)).
+* Fixed clickhouse-local crashing when outputting const tuples or maps in Parquet format. [#81249](https://github.com/ClickHouse/ClickHouse/pull/81249) ([Michael Kolupaev](https://github.com/al13n321)).
+* Verify array offsets received over network. [#81269](https://github.com/ClickHouse/ClickHouse/pull/81269) ([Azat Khuzhin](https://github.com/azat)).
+* Fix some corner case in query that joins empty tables and uses window functions. The bug leads to exploding number of parallel streams which leads to OOMs. [#81299](https://github.com/ClickHouse/ClickHouse/pull/81299) ([Alexander Gololobov](https://github.com/davenger)).
+* Fixes for datalake Cluster functions (`deltaLakeCluster`, `icebergCluster`, etc): (1) fix potential segfault in `DataLakeConfiguration` when using `Cluster` function with old analyzer; (2) remove duplicating data lake metadata updates (extra object storage requests); (3) fix redundant listing in object storage when format is not explicitly specified (which was already done for non-cluster data lake engines). [#81300](https://github.com/ClickHouse/ClickHouse/pull/81300) ([Kseniia Sumarokova](https://github.com/kssenii)).
+* Make `force_restore_data` flag recover lost keeper metadata. [#81324](https://github.com/ClickHouse/ClickHouse/pull/81324) ([Raúl Marín](https://github.com/Algunenano)).
+* Fix region error in delta-kernel. Fixes [#79914](https://github.com/ClickHouse/ClickHouse/issues/79914). [#81353](https://github.com/ClickHouse/ClickHouse/pull/81353) ([Kseniia Sumarokova](https://github.com/kssenii)).
+* Disable incorrect JIT for divideOrNull. [#81370](https://github.com/ClickHouse/ClickHouse/pull/81370) ([Raúl Marín](https://github.com/Algunenano)).
+* Fix insert error when MergeTree table has a long partition column name. [#81390](https://github.com/ClickHouse/ClickHouse/pull/81390) ([hy123q](https://github.com/haoyangqian)).
+* Don't store content of several manifest files in memory. [#81470](https://github.com/ClickHouse/ClickHouse/pull/81470) ([Daniil Ivanik](https://github.com/divanik)).
+* Fix possible crash during shutting down background pools (`background_.*pool_size`). [#81473](https://github.com/ClickHouse/ClickHouse/pull/81473) ([Azat Khuzhin](https://github.com/azat)).
+* Fix out-of-bounds read in the `Npy` format happening when writing to a table with the `URL` engine. This closes [#81356](https://github.com/ClickHouse/ClickHouse/issues/81356). [#81502](https://github.com/ClickHouse/ClickHouse/pull/81502) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
+* There is a chance that Web UI displays `NaN%` (typical JavaScript problems). [#81507](https://github.com/ClickHouse/ClickHouse/pull/81507) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
+* Fix `DatabaseReplicated` for `database_replicated_enforce_synchronous_settings=1`. [#81564](https://github.com/ClickHouse/ClickHouse/pull/81564) ([Azat Khuzhin](https://github.com/azat)).
+* Fix sorting order for LowCardinality(Nullable(...)) types. [#81583](https://github.com/ClickHouse/ClickHouse/pull/81583) ([Pervakov Grigorii](https://github.com/GrigoryPervakov)).
+* Server should not preserve a HTTP connection if the request has not been fully read from the socket. [#81595](https://github.com/ClickHouse/ClickHouse/pull/81595) ([Sema Checherinda](https://github.com/CheSema)).
+* Make scalar correlated subqueries return a nullable result of the projection expression. Fix the case when a correlated subquery produces an empty result set. [#81632](https://github.com/ClickHouse/ClickHouse/pull/81632) ([Dmitry Novik](https://github.com/novikd)).
+* Fix `Unexpected relative path for a deduplicated part` during `ATTACH` to `ReplicatedMergeTree`. [#81647](https://github.com/ClickHouse/ClickHouse/pull/81647) ([Azat Khuzhin](https://github.com/azat)).
+* Query settings `use_iceberg_partition_pruning` will not take effect for iceberg storage, because it uses global context rather than query context. it's not critical because its default value is true. this pr can fix it. [#81673](https://github.com/ClickHouse/ClickHouse/pull/81673) ([Han Fei](https://github.com/hanfei1991)).
+* Add validation for merge tree setting `merge_max_block_size` to ensure that it's non zero. [#81693](https://github.com/ClickHouse/ClickHouse/pull/81693) ([Bharat Nallan](https://github.com/bharatnc)).
+* Fix issues with `clickhouse-local` involving stuck `DROP VIEW ` queries. [#81705](https://github.com/ClickHouse/ClickHouse/pull/81705) ([Bharat Nallan](https://github.com/bharatnc)).
+* Fix StorageRedis join in some cases. [#81736](https://github.com/ClickHouse/ClickHouse/pull/81736) ([Pervakov Grigorii](https://github.com/GrigoryPervakov)).
+* Fix crash in `ConcurrentHashJoin` with empty `USING ()` and old analyzer enabled. [#81754](https://github.com/ClickHouse/ClickHouse/pull/81754) ([Nikita Taranov](https://github.com/nickitat)).
+* Keeper fix: block commits of new logs if there is invalid entry in the logs. Previously, if the leader applied some logs incorrectly, it would continue to commit new logs, even though the follower would detect digest mismatch and abort. [#81780](https://github.com/ClickHouse/ClickHouse/pull/81780) ([Antonio Andelic](https://github.com/antonio2368)).
\ No newline at end of file
diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/cloud/reference/01_changelog/02_release_notes/_category_.json b/i18n/zh/docusaurus-plugin-content-docs/current/cloud/reference/01_changelog/02_release_notes/_category_.json
new file mode 100644
index 00000000000..4eeae460788
--- /dev/null
+++ b/i18n/zh/docusaurus-plugin-content-docs/current/cloud/reference/01_changelog/02_release_notes/_category_.json
@@ -0,0 +1,6 @@
+{
+ "label": "Release notes",
+ "collapsible": true,
+ "collapsed": true,
+ "link": { "type": "doc", "id": "cloud/reference/changelog/release_notes/index" }
+}
\ No newline at end of file
diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/cloud/reference/01_changelog/02_release_notes/index.md b/i18n/zh/docusaurus-plugin-content-docs/current/cloud/reference/01_changelog/02_release_notes/index.md
new file mode 100644
index 00000000000..b147678fe10
--- /dev/null
+++ b/i18n/zh/docusaurus-plugin-content-docs/current/cloud/reference/01_changelog/02_release_notes/index.md
@@ -0,0 +1,25 @@
+---
+slug: /cloud/reference/changelogs/release-notes
+title: 'Cloud Release Notes'
+description: 'Landing page for Cloud release notes'
+doc_type: 'changelog'
+---
+
+
+
+
+| Page | Description |
+|-----|-----|
+| [v25.6 Changelog for Cloud](/changelogs/25.6) | Fast release changelog for v25.6 |
+| [v25.4 Changelog for Cloud](/changelogs/25.4) | Fast release changelog for v25.4 |
+| [v24.12 Changelog for Cloud](/changelogs/24.12) | Fast release changelog for v24.12 |
+| [v24.10 Changelog for Cloud](/changelogs/24.10) | Fast release changelog for v24.10 |
+| [v24.8 Changelog for Cloud](/changelogs/24.8) | Fast release changelog for v24.8 |
+| [v24.6 Changelog for Cloud](/changelogs/24.6) | Fast release changelog for v24.6 |
+| [v24.5 Changelog for Cloud](/changelogs/24.5) | Fast release changelog for v24.5 |
+| [v24.2 Changelog](/whats-new/changelog/24.2-fast-release) | Fast release changelog for v24.2 |
+| [Cloud Changelog](/whats-new/cloud) | ClickHouse Cloud changelog providing descriptions of what is new in each ClickHouse Cloud release |
+
diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/cloud/reference/01_changelog/_category_.json b/i18n/zh/docusaurus-plugin-content-docs/current/cloud/reference/01_changelog/_category_.json
new file mode 100644
index 00000000000..60a9e95ee7e
--- /dev/null
+++ b/i18n/zh/docusaurus-plugin-content-docs/current/cloud/reference/01_changelog/_category_.json
@@ -0,0 +1,6 @@
+{
+ "label": "Change logs",
+ "collapsible": true,
+ "collapsed": true,
+ "link": { "type": "doc", "id": "cloud/reference/changelog/index" }
+}
\ No newline at end of file
diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/cloud/reference/01_changelog/index.md b/i18n/zh/docusaurus-plugin-content-docs/current/cloud/reference/01_changelog/index.md
new file mode 100644
index 00000000000..179a4235988
--- /dev/null
+++ b/i18n/zh/docusaurus-plugin-content-docs/current/cloud/reference/01_changelog/index.md
@@ -0,0 +1,11 @@
+---
+slug: /cloud/reference/changelogs
+title: 'Changelogs'
+description: 'Landing page for Cloud changelogs'
+doc_type: 'landing-page'
+---
+
+| Page | Description |
+|---------------------------------------------------------------|-------------------------------------------------|
+| [Cloud Changelog](/whats-new/cloud) | Changelog for ClickHouse Cloud |
+| [Release Notes](/cloud/reference/changelogs/release-notes) | Release notes for all ClickHouse Cloud releases |
\ No newline at end of file
diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/cloud/reference/02_architecture.md b/i18n/zh/docusaurus-plugin-content-docs/current/cloud/reference/02_architecture.md
new file mode 100644
index 00000000000..613ce34876e
--- /dev/null
+++ b/i18n/zh/docusaurus-plugin-content-docs/current/cloud/reference/02_architecture.md
@@ -0,0 +1,55 @@
+---
+'sidebar_label': '架构'
+'slug': '/cloud/reference/architecture'
+'title': 'ClickHouse Cloud 架构'
+'description': '本页面描述了 ClickHouse Cloud 的架构'
+'doc_type': 'reference'
+---
+
+import Architecture from '@site/static/images/cloud/reference/architecture.svg';
+
+
+# ClickHouse Cloud 架构
+
+
+
+## 由对象存储支持的存储 {#storage-backed-by-object-store}
+- 几乎无限的存储
+- 无需手动共享数据
+- 存储数据的成本显著降低,特别是对于访问频率较低的数据
+
+## 计算 {#compute}
+- 自动扩展和闲置:无需前期预估规模,也无需为峰值使用过度配置
+- 自动闲置和恢复:在无人使用时无需保持闲置计算实例运行
+- 默认安全和高可用性
+
+## 管理 {#administration}
+- 设置、监控、备份和计费由系统为您完成。
+- 成本控制默认启用,您可以通过云控制台进行调整。
+
+## 服务隔离 {#service-isolation}
+
+### 网络隔离 {#network-isolation}
+
+所有服务在网络层面上是隔离的。
+
+### 计算隔离 {#compute-isolation}
+
+所有服务在各自的 Kubernetes 空间中以独立的 Pod 部署,并具有网络级隔离。
+
+### 存储隔离 {#storage-isolation}
+
+所有服务使用共享桶(AWS、GCP)或存储容器(Azure)的独立子路径。
+
+对于 AWS,存储访问通过 AWS IAM 控制,每个 IAM 角色对每个服务都是唯一的。对于企业服务,可以启用 [CMEK](/cloud/security/cmek) 以提供静态数据的高级隔离。当前 CMEK 仅支持 AWS 服务。
+
+对于 GCP 和 Azure,服务具有对象存储隔离(所有服务都有自己的存储桶或存储容器)。
+
+## 计算-计算分离 {#compute-compute-separation}
+[计算-计算分离](/cloud/reference/warehouses) 允许用户创建多个计算节点组,每个组都有自己的服务 URL,且都使用相同的共享对象存储。这使得对不同用例的计算隔离成为可能,例如读取与写入的情况,它们共享相同的数据。这还通过允许计算组根据需要独立扩展,从而实现更高效的资源利用。
+
+## 并发限制 {#concurrency-limits}
+
+您在 ClickHouse Cloud 服务中的每秒查询数(QPS)没有限制。然而,每个副本的并发查询数量有限制为 1000。QPS 最终取决于您的平均查询执行时间和服务中的副本数量。
+
+与自管理的 ClickHouse 实例或其他数据库/数据仓库相比,ClickHouse Cloud 的一个主要好处是您可以通过 [添加更多副本(水平扩展)](/manage/scaling#manual-horizontal-scaling) 来轻松增加并发。
diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/cloud/reference/02_architecture.md.hash b/i18n/zh/docusaurus-plugin-content-docs/current/cloud/reference/02_architecture.md.hash
new file mode 100644
index 00000000000..8a7caeb3304
--- /dev/null
+++ b/i18n/zh/docusaurus-plugin-content-docs/current/cloud/reference/02_architecture.md.hash
@@ -0,0 +1 @@
+2e8c7a6d84da5c9d
diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/cloud/reference/03_billing/01_billing_overview.md b/i18n/zh/docusaurus-plugin-content-docs/current/cloud/reference/03_billing/01_billing_overview.md
new file mode 100644
index 00000000000..488c68cf966
--- /dev/null
+++ b/i18n/zh/docusaurus-plugin-content-docs/current/cloud/reference/03_billing/01_billing_overview.md
@@ -0,0 +1,386 @@
+---
+'sidebar_label': '概述'
+'slug': '/cloud/manage/billing/overview'
+'title': '定价'
+'description': 'ClickHouse Cloud 定价的概述页面'
+'doc_type': 'reference'
+---
+
+根据使用情况获取定价信息,请查看 [ClickHouse Cloud Pricing](https://clickhouse.com/pricing#pricing-calculator) 页面。
+ClickHouse Cloud 以计算、存储、[数据传输](/cloud/manage/network-data-transfer)(互联网和跨区域的出口)以及 [ClickPipes](/integrations/clickpipes) 的使用情况进行计费。
+要了解哪些因素可能会影响您的账单,以及如何管理您的支出,请继续阅读。
+
+## 亚马逊网络服务 (AWS) 示例 {#amazon-web-services-aws-example}
+
+:::note
+- 价格反映 AWS us-east-1 的定价。
+- 在 [这里](/cloud/manage/network-data-transfer) 查看适用的数据传输和 ClickPipes 收费。
+:::
+
+### 基本:每月从 $66.52 起 {#basic-from-6652-per-month}
+
+最佳选择:适用于没有严格可靠性保证的小型数据量的部门用例。
+
+**基本层服务**
+- 1 个副本 x 8 GiB RAM,2 vCPU
+- 500 GB 的压缩数据
+- 500 GB 的数据备份
+- 10 GB 的公共互联网出口数据传输
+- 5 GB 的跨区域数据传输
+
+此示例的定价细分:
+
+