双写和回填是一种迁移策略,用于以低停机时间(分钟级停机时间)迁移大量时序数据(100 GB-10 TB+)。它比使用 pg_dump/restore 进行停机迁移要复杂得多,并且对应用程序的数据摄取模式有一些先决条件,因此它可能并非普遍适用。

注意

在迁移的上下文中,您现有的生产数据库被称为“源”数据库,而您打算将数据迁移到的新 Timescale 数据库被称为“目标”数据库。

大致来说,它包含三个步骤

  1. 将模式和关系数据从源克隆到目标
  2. 双写到源和目标
  3. 回填时序数据

双写和回填可用于任何源数据库类型,只要它可以提供 csv 格式的数据即可。它可以用于从 PostgresSQL 源以及从 TimescaleDB 迁移到 TimescaleDB 的数据迁移。

双写和回填在以下情况下效果良好

  1. (磁盘上的)大部分数据都在时序表中。
  2. 应用程序的写入不引用历史时序数据。
  3. 对时序数据的写入是仅追加的。
  4. 在迁移过程中,不会在源数据库中的时序数据上运行 UPDATEDELETE 查询(或者,如果运行,则以受控方式进行,以便可以忽略或重新回填)。
  5. 关系(非时序)数据要么足够小,可以在可接受的停机时间内从源复制到目标,要么关系数据可以在应用程序继续运行时异步复制(即,更改相对不频繁)。

有关更多信息,请查阅您的源数据库的逐步指南

提示

如果您遇到困难,可以通过打开支持请求获得帮助,或者将您的问题提交到 社区 Slack 中的 #migration 频道,该迁移方法的开发人员将在那里提供帮助。

您可以直接从 Timescale 控制台 或通过电子邮件 support@timescale.com 打开支持请求。

关键词

在此页面上发现问题?报告问题 或 在 GitHub 上编辑此页