tongchenkeji 发表于:2023-7-2 17:12:330次点击 已关注取消关注 关注 私信 Flink CDC中pg的逻辑复制和cdc 是一样的嘛?[阿里云实时计算 Flink版] 暂停朗读为您朗读 Flink CDC中pg的逻辑复制和cdc 是一样的嘛? 「点点赞赏,手留余香」 赞赏 还没有人赞赏,快来当第一个赞赏的人吧! 海报 实时计算Flink版# 关系型数据库2577# 实时计算 Flink版3179# 流计算2236
Star时光AM 2023-11-27 18:39:37 1 在 Flink CDC 中,pg(指 PostgreSQL)的逻辑复制和 CDC(Change Data Capture)是类似但不完全相同的概念。 逻辑复制是 PostgreSQL 数据库自身的功能,它从 PostgreSQL 10 版本开始引入。通过逻辑复制,PostgreSQL 可以将逻辑改变记录(Logical Change Records,LCR)从 WAL(Write-Ahead Log)日志中发送给订阅者,并实现增量数据的复制和同步。订阅者可以根据需要将 LCR 转换为其他格式,例如 SQL 语句,以便在另一个 PostgreSQL 数据库中执行。在逻辑复制中,订阅者需要创建一个逻辑复制插槽(Replication Slot),以便从 WAL 日志中读取 LCR 记录。 而 CDC 是一种更通用的概念,广义上指的是捕获数据源(如数据库)的变化,并将这些变化转换为可供其他系统使用的形式。CDC 不仅限于特定的数据库实现,也可以应用于其他数据源,如消息队列、文件系统等。在 Flink CDC 中,针对不同的数据源,实现了相应的 CDC Connector,用于实时读取和处理增量数据。 在 Flink CDC 中,PostgreSQL Connector 使用逻辑解码(Logical Decoding)方式实现增量数据的读取。通过连接到 PostgreSQL 数据库的逻辑解码输出流(Logical Decoding Output Plugin),PostgreSQL Connector 从 WAL 日志中读取逻辑改变记录(LCR),并将其转换为 Flink 可处理的格式,如 JSON 或 Avro。与逻辑复制相比,Flink CDC 的 PostgreSQL Connector 不需要创建逻辑复制插槽,而是利用逻辑解码输出流进行增量数据的读取。 因此,虽然 pg 的逻辑复制和 CDC 在某种程度上具有相似性,但在具体实现和使用方式上存在一些差异。请根据具体的场景和需求选择适合的方法和工具。
算精通AM 2023-11-27 18:39:37 2 PostgreSQL 中,有两种方式可以实现增量数据的读取:逻辑复制和逻辑解码(Logical Decoding)。逻辑复制是 PostgreSQL 从 10 版本开始引入的一项功能,它通过将 WAL(Write-Ahead Log)日志中的逻辑改变记录(Logical Change Records,LCR)发送到一个或多个订阅者(Subscribers),实现增量数据的复制和同步。订阅者可以使用自己的方式,将 LCR 转换为自己需要的格式,例如,可以将 LCR 转换为 SQL 语句,以便在另一个 PostgreSQL 数据库中执行。在逻辑复制中,订阅者需要创建一个逻辑复制插槽(Replication Slot),以便从 WAL 日志中读取 LCR 记录。逻辑解码是 PostgreSQL 从 9.4 版本开始引入的一项功能,它允许用户将 WAL 日志中的逻辑改变记录(Logical Change Records,LCR)转换为易于处理的格式,例如,JSON 或者 Protocol Buffer。逻辑解码不需要订阅者创建逻辑复制插槽,而是通过使用一个外部插件,将 LCR 转换为需要的格式。外部插件可以通过 PostgreSQL 的插件机制进行加载和管理。在 Flink CDC 中,PostgreSQL Connector 使用逻辑解码方式实现增量数据的读取。具体来说,PostgreSQL Connector 会通过订阅 PostgreSQL 数据库的逻辑解码输出流(Logical Decoding Output Plugin),从 WAL 日志中读取逻辑改变记录(LCR),并将其转换为 Flink 能够处理的格式(例如,JSON 或者 Avro)。在此过程中,PostgreSQL Connector 不需要创建逻辑复制插槽,而是通过连接到 PostgreSQL 数据库的逻辑解码输出流,实现增量数据的读取。
在 Flink CDC 中,pg(指 PostgreSQL)的逻辑复制和 CDC(Change Data Capture)是类似但不完全相同的概念。
逻辑复制是 PostgreSQL 数据库自身的功能,它从 PostgreSQL 10 版本开始引入。通过逻辑复制,PostgreSQL 可以将逻辑改变记录(Logical Change Records,LCR)从 WAL(Write-Ahead Log)日志中发送给订阅者,并实现增量数据的复制和同步。订阅者可以根据需要将 LCR 转换为其他格式,例如 SQL 语句,以便在另一个 PostgreSQL 数据库中执行。在逻辑复制中,订阅者需要创建一个逻辑复制插槽(Replication Slot),以便从 WAL 日志中读取 LCR 记录。
而 CDC 是一种更通用的概念,广义上指的是捕获数据源(如数据库)的变化,并将这些变化转换为可供其他系统使用的形式。CDC 不仅限于特定的数据库实现,也可以应用于其他数据源,如消息队列、文件系统等。在 Flink CDC 中,针对不同的数据源,实现了相应的 CDC Connector,用于实时读取和处理增量数据。
在 Flink CDC 中,PostgreSQL Connector 使用逻辑解码(Logical Decoding)方式实现增量数据的读取。通过连接到 PostgreSQL 数据库的逻辑解码输出流(Logical Decoding Output Plugin),PostgreSQL Connector 从 WAL 日志中读取逻辑改变记录(LCR),并将其转换为 Flink 可处理的格式,如 JSON 或 Avro。与逻辑复制相比,Flink CDC 的 PostgreSQL Connector 不需要创建逻辑复制插槽,而是利用逻辑解码输出流进行增量数据的读取。
因此,虽然 pg 的逻辑复制和 CDC 在某种程度上具有相似性,但在具体实现和使用方式上存在一些差异。请根据具体的场景和需求选择适合的方法和工具。
PostgreSQL 中,有两种方式可以实现增量数据的读取:逻辑复制和逻辑解码(Logical Decoding)。
逻辑复制是 PostgreSQL 从 10 版本开始引入的一项功能,它通过将 WAL(Write-Ahead Log)日志中的逻辑改变记录(Logical Change Records,LCR)发送到一个或多个订阅者(Subscribers),实现增量数据的复制和同步。订阅者可以使用自己的方式,将 LCR 转换为自己需要的格式,例如,可以将 LCR 转换为 SQL 语句,以便在另一个 PostgreSQL 数据库中执行。在逻辑复制中,订阅者需要创建一个逻辑复制插槽(Replication Slot),以便从 WAL 日志中读取 LCR 记录。
逻辑解码是 PostgreSQL 从 9.4 版本开始引入的一项功能,它允许用户将 WAL 日志中的逻辑改变记录(Logical Change Records,LCR)转换为易于处理的格式,例如,JSON 或者 Protocol Buffer。逻辑解码不需要订阅者创建逻辑复制插槽,而是通过使用一个外部插件,将 LCR 转换为需要的格式。外部插件可以通过 PostgreSQL 的插件机制进行加载和管理。
在 Flink CDC 中,PostgreSQL Connector 使用逻辑解码方式实现增量数据的读取。具体来说,PostgreSQL Connector 会通过订阅 PostgreSQL 数据库的逻辑解码输出流(Logical Decoding Output Plugin),从 WAL 日志中读取逻辑改变记录(LCR),并将其转换为 Flink 能够处理的格式(例如,JSON 或者 Avro)。在此过程中,PostgreSQL Connector 不需要创建逻辑复制插槽,而是通过连接到 PostgreSQL 数据库的逻辑解码输出流,实现增量数据的读取。