我有一个 MSSQL 数据库,其结构是通过 Postgres 数据库复制的。 我已在 MSSQL 中启用 CDC,并在 StreamSets Data Collector 中使用 SQL Server CDC Client 来侦听该数据库表中的更改。
但是我找不到在 Postgres 中写入相同表的方法。
例如我在MSSQL中有3个表: 表A、表B、表C。我在 Postgres 中有相同的表。 我将数据插入表A和表C。我希望通过 Postgres 复制这些更改。
在 StreamSets DC 中,为了写入 Postgres,我使用 JDBC Producer,并在表名称字段中指定:${record:attributes('jdbc.tables')}。
这样做,将从tableA_CT、tableB_CT、tableC_CT中读取数据。启用 CDC 选项时由 MSSQL 创建的表。所以我最终会在 ${record:attribute('jdbc.tables')} 中得到这些表名。
有没有办法在与 MSSQL 相同的表中写入 Postgres?
以下表达式提供原始表名称
${record:attribute('jdbc.cdc.source_name')}
如果您正在寻找原始表模式名称,那么您可以使用
${record:attribute('jdbc.cdc.source_schema_name')}