Uploaded image for project: 'Debezium'
  1. Debezium
  2. DBZ-7482

Merge changes for CLOB/BLOB columns without lob.enabled=true

    XMLWordPrintable

Details

    • Enhancement
    • Resolution: Unresolved
    • Major
    • under-triaging
    • 2.5.1.Final
    • oracle-connector
    • None
    • False
    • None
    • False

    Description

      Bug report

      For bug reports, provide this information, please:

      What Debezium connector do you use and what version?

      debezium-connector-oracle version 2.5.1.Final

      What is the connector configuration?

      {
        "name": "source-test-connector",
        "config": {
          "connector.class": "io.debezium.connector.oracle.OracleConnector",
          "tasks.max": "1",
          "database.hostname": "oracle",
          "database.port": "1521",
          "database.user": "c##dbzuser",
          "database.password": "dbz",
          "database.dbname": "orclcdb",
          "database.pdb.name": "orclpdb1",
          "database.connection.adapter": "logminer",
          "topic.prefix": "dbz",
          "schema.name.adjustment.mode": "avro",
          "table.include.list": "C##DBZUSER.TEST_TABLE",
          "include.schema.changes": "false",
          "schema.history.internal.kafka.bootstrap.servers" : "kafka:9092",
          "schema.history.internal.kafka.topic": "schema-changes.test",
          "heartbeat.interval.ms": "60000",
          "log.mining.strategy": "online_catalog",
          "log.mining.query.filter.mode": "in",
          "post.processors": "reselector",
          "reselector.type": "io.debezium.processors.reselect.ReselectColumnsPostProcessor",
          "reselector.reselect.columns.include.list": "C##DBZUSER.TEST_TABLE:DATA",
          "custom.metric.tags": "connector=source-test-connector",
          "transforms": "unwrap",
          "transforms.unwrap.type": "io.debezium.transforms.ExtractNewRecordState",
          "key.converter": "org.apache.kafka.connect.json.JsonConverter",
          "key.converter.schemas.enable": "false",
          "value.converter": "org.apache.kafka.connect.json.JsonConverter",
          "value.converter.schemas.enable": "false"
        }
      }
      

      What is the captured database version and mode of deployment?

      Oracle Database 19, Docker

      What behaviour do you expect?

      Oracle connector merges changes for CLOB/BLOB columns without lob.enabled=true.

      What behaviour do you see?

      Because Oracle Database can generate multiple events for tables with CLOB/BLOB columns within a single insert operation:

      3920122  INSERT  insert into "C##DBZUSER"."TEST_TABLE"("ID","DATA") values ('1',EMPTY_CLOB())
      3920122	 UPDATE  update "C##DBZUSER"."TEST_TABLE" set "DATA" = 'data' where "ID" = '1'
      

      Oracle connector also sends multiple messages without merging:

      {
      	"ID": 1,
      	"DATA": "__debezium_unavailable_value"
      }
      
      {
      	"ID": 1,
      	"DATA": "data"
      }
      

      Do you see the same behaviour using the latest relesead Debezium version?

      Yes

      Feature request or enhancement

      <Your answer>

      Implementation ideas (optional)

      I suggest adding a new option to enable merging changes for CLOB/BLOB columns within a transaction regardless of lob.enabled=true.

      Implementing this ticket along with tickets DBZ-7474 and DBZ-7479 will allow for alternative LOB support without lob.enabled=true.

      Attachments

        Activity

          People

            ccranfor@redhat.com Chris Cranford
            andrey.pustovetov@gmail.com Andrey Pustovetov
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

              Created:
              Updated: