You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Switch using __source_ts_ns for data de-duplicatinon, for upsert mode (#546)
* Switch to __source_ts_ns for de-duplicating data for upsert
* Switch to __source_ts_ns for de-duplicating data for upsert
* Switch to __source_ts_ns for de-duplicating data for upsert
* Switch to __source_ts_ns for de-duplicating data for upsert
* Switch to __source_ts_ns for de-duplicating data for upsert
* Switch to __source_ts_ns for de-duplicating data for upsert
* Switch to __source_ts_ns for de-duplicating data for upsert
thrownewDebeziumException("Field '" + config.iceberg().cdcSourceTsMsField() + "' not found in JSON object: " + value());
87
+
thrownewDebeziumException("Field '" + config.iceberg().cdcSourceTsField() + "' not found in JSON object: " + value());
88
88
}
89
89
90
90
try {
91
91
returnelement.asLong();
92
92
} catch (NumberFormatExceptione) {
93
-
thrownewDebeziumException("Error converting field '" + config.iceberg().cdcSourceTsMsField() + "' value '" + element + "' to Long: " + e.getMessage(), e);
93
+
thrownewDebeziumException("Error converting field '" + config.iceberg().cdcSourceTsField() + "' value '" + element + "' to Long: " + e.getMessage(), e);
Copy file name to clipboardExpand all lines: debezium-server-iceberg-sink/src/test/java/io/debezium/server/iceberg/IcebergChangeConsumerMongodbTest.java
+1-1
Original file line number
Diff line number
Diff line change
@@ -57,7 +57,7 @@ public Map<String, String> getConfigOverrides() {
Copy file name to clipboardExpand all lines: debezium-server-iceberg-sink/src/test/java/io/debezium/server/iceberg/tableoperator/IcebergTableOperatorTest.java
+7-7
Original file line number
Diff line number
Diff line change
@@ -102,31 +102,31 @@ public void testDeduplicateBatch() throws Exception {
Copy file name to clipboardExpand all lines: docs/DOCS.md
+4-4
Original file line number
Diff line number
Diff line change
@@ -22,7 +22,7 @@ When event and key schema information is enabled (`debezium.format.value.schemas
22
22
|`debezium.sink.iceberg.allow-field-addition`|`true`| Allow field addition to target tables. Enables automatic schema evolution, expansion. |
23
23
|`debezium.sink.iceberg.upsert`|`true`| Upsert mode overwrites updated rows. Any existing rows that are updated will be overwritten with the new values. Explained further below. |
24
24
|`debezium.sink.iceberg.upsert-keep-deletes`|`true`| When running in upsert mode, deleted rows are marked as deleted but retained in the target table (soft delete) |
25
-
|`debezium.sink.iceberg.upsert-dedup-column`|`__source_ts_ms`| With upsert mode this field is used to deduplicate data. The row with the highest `__source_ts_ms` timestamp (the latest change event) is retained. _dont change!_|
25
+
|`debezium.sink.iceberg.upsert-dedup-column`|`__source_ts_ns`| With upsert mode this field is used to deduplicate data. The row with the highest `__source_ts_ns` timestamp (the latest change event) is retained. _dont change!_|
26
26
|`debezium.sink.iceberg.upsert-op-field`|`__op`| Field name for operation type in upsert mode. _dont change!_|
27
27
|`debezium.sink.iceberg.create-identifier-fields`|`true`| When set to `false`, the consumer will create tables without identifier fields. This is useful for scenarios where users want to consume nested events in append-only mode. |
28
28
|`debezium.sink.iceberg.destination-regexp`| `` | A regular expression used to modify the destination Iceberg table name. This setting allows for combining multiple tables, such as `table_ptt1` and `table_ptt2`, into a single table, `table_combined`. |
@@ -43,7 +43,7 @@ When event and key schema information is enabled (`debezium.format.value.schemas
43
43
|`debezium.format.key.schemas.enable`|`true`| Enable schema inclusion in the event key format. |
44
44
|`debezium.transforms`|`unwrap`| Enables Debezium transforms for event processing. |
45
45
|`debezium.transforms.unwrap.type`|`io.debezium.transforms.ExtractNewRecordState`| Type of the Debezium unwrap transform. |
46
-
|`debezium.transforms.unwrap.add.fields`|`op,table,source.ts_ms,db,ts_ms`| List of fields to add in the Debezium unwrap transform. |
46
+
|`debezium.transforms.unwrap.add.fields`|`op,table,source.ts_ns,db,ts_ms`| List of fields to add in the Debezium unwrap transform. |
47
47
|`debezium.transforms.unwrap.delete.handling.mode`|`rewrite`| Handling mode for delete events in the Debezium unwrap transform. |
48
48
|`debezium.transforms.unwrap.drop.tombstones`|`true`| Handling mode for tombstone events (delete markers) in the Debezium unwrap transform. |
49
49
|`quarkus.log.level`|`INFO`| Global Quarkus logging level |
@@ -57,7 +57,7 @@ mode.
57
57
58
58
#### Upsert Mode Data Deduplication
59
59
60
-
Upsert mode enables data deduplication, prioritizing records based on their `__source_ts_ms` timestamp and operation
60
+
Upsert mode enables data deduplication, prioritizing records based on their `__source_ts_ns` timestamp and operation
61
61
type (`__op`). The `debezium.sink.iceberg.upsert-dedup-column` property can be used to specify a different column for
62
62
deduplication (currently limited to Long type).
63
63
@@ -163,7 +163,7 @@ the [Debezium documentation](https://debezium.io/documentation/reference/stable/
0 commit comments