-
Notifications
You must be signed in to change notification settings - Fork 55
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Request: Support MergeTree with version timestamp. #445
Comments
That's on the roadmap. Please note that there is risk of duplicated data. If the version timestamp is part of the sort key, it will not be merged. Another idea is to create a history table with a materialized view but materialized views have issues with RMT. |
I tested the below and it works fine if you write to the history table and use a MV to send the updates to the current table.
|
@aadant could you please elaborate what you've done? I'm very interested in keeping history of the objects, and would like to implement this workaround. |
@vpol currently table overrides are not supported by the connector but you can stop it and apply, then restart the connector :
|
Moving to 2.3.0, need to discuss on the scope of the implementation. |
Why do we need ReplicatedMergeTree for the History table? Why don't we use plain MergeTree (or ReplicatedMergeTree) and beat duplicate with argMax? There are not too many rows in the table (not 10M), so ReplacingMT has no positive effect. |
Possible implementation for handling DDL's
|
In case of failure, the connector should restart the operation from the beginning in an IDEMPOTENT way - not failing if some steps have already been processed. IF EXISTS/IF NOT EXISTS clauses should be added to all DDLs on the TABLE and COLUMN levels.
My bet is creating a special Clickhouse table with rules for every history table with the columns as in system.tables:
If the connector finds the table in the list while processing DDL update, it can do the mentioned processing. If not - do nothing, no history tables need to be created.
Such a table could also filter the incoming table list instead of Debezium variables. So all table updates go to Connector; no need to change text configs when a new table is added to MySQL. Boris. |
Hi Team, is there a way to use the lightweight altinity connector with a MergeTree engine and keep the version timestamp permanently as we want to keep the time series? We want to avoid losing the information after merging has happened on ReplacingMergeTree.
The text was updated successfully, but these errors were encountered: