逻辑复制是 Postgres 原生复制,可在 Lakebase 数据库与另一个 Postgres 数据库之间流式传输行级变更。 Lakebase 可以作为订阅者接收外部发布者的变更,也可以作为发布者向外部订阅者发送变更。
使用逻辑复制将现有的 Postgres 数据库迁移到 Lakebase,在不同区域的 Lakebase 数据库之间复制,或将变更从 Lakebase 流式传输到外部 Postgres 数据库。
开始
开始时,将外部的 Postgres 数据库复制同步到 Lakebase。 指南会一步步介绍如何准备源、从Lakebase订阅,以及验证变更是否及时到来。 参见“将数据复制到 Lakebase”。
用例
| 用例 | 它的作用是什么 | Guide |
|---|---|---|
| 将 Postgres 数据库迁移到 Lakebase | Lakebase 订阅外部 Postgres 发布端,复制其数据,然后保持同步,直到你完成切换。 | 将数据复制到 Lakebase |
| 在不同区域的Lakebase数据库之间复制 | 使另一区域中的 Lakebase 数据库保持同步,例如用于跨区域读取。 | 从Lakebase复制数据 |
| 将更改流式传输到外部 Postgres | Lakebase 会向外部 Postgres 订阅者发布更改。 | 从Lakebase复制数据 |
逻辑复制的工作原理
发布端定义发布,即其发送变更所涉及的一组表。 订阅端创建连接到发布端的订阅,复制现有数据,然后在每次发生插入、更新和删除时应用这些变更。 连接到哪个数据库决定了网络方向:
逻辑复制及其他数据移动方法
逻辑复制在 Postgres 数据库之间传输数据。 要将 Postgres 的更改迁移到 lakehouse,可以使用 Lakebase Change Data Feed,它会将更改写入 Unity Catalog 管理的 Delta 表。 有关数据进出 Lakebase 的完整比较,请参见 将数据移入和移出 Lakebase。
Limitations
- 逻辑复制支持AWS和Azure。
- 逻辑复制运行在公共网络上。 专用链接 在任一方向都不支持。 订阅者连接受账户网络策略允许的互联网目的地约束,发布者连接受工作空间 IP 访问列表约束。
- 不支持同一区域内的Lakebase数据库间复制。 同一区域内,从一个 Lakebase 数据库到另一个 Lakebase 数据库的订阅无法连接。 支持不同区域的 Lakebase 数据库间的复制。
- 复制是在主计算上运行,而不是在只读副本上。
- 逻辑复制复制的是数据,而不是模式。 在开始复制之前先创建目标表。 后续的架构变更不会被复制。
- 外部表不会被复制。
后续步骤
- 迁移到 Lakebase:将现有的 Postgres 数据库复制到 Lakebase。 参见“将数据复制到 Lakebase”。
- 比较方法:选择正确的方式将数据进出Lakebase。 参见 “移动数据进出Lakebase”。