Skip to content
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

Integrate CDC data from MySQL/Postgres/MongoDb data source #3313

Merged
merged 30 commits into from
Oct 12, 2023

Conversation

wanghd89
Copy link
Contributor

@wanghd89 wanghd89 commented Sep 7, 2023

Description

Integrate with Kafka Connect and Debezium MySQL/Postgres/MongoDb plugin for CDC

Issues Resolved

Resolves #3233 #3234 #3235

Check List

  • New functionality includes testing.
  • New functionality has a documentation issue. Please link to it in this PR.
    • New functionality has javadoc added
  • Commits are signed with a real name per the DCO

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.
For more information on following Developer Certificate of Origin and signing off your commits, please check here.

@wanghd89 wanghd89 changed the title Feat cdc Integrate CDC data from MySQL/Postgres/MongoDb data source Sep 7, 2023
build.gradle Outdated Show resolved Hide resolved
build.gradle Outdated
}
because 'CVE from transitive dependencies'
}
implementation('org.eclipse.jetty:jetty-server') {
version {
require '11.0.15'
require '9.4.51.v20230217'
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can we exclude Jetty from the Debezium project instead?

@@ -39,6 +39,8 @@ dependencyResolutionManagement {
library('bouncycastle-bcpkix', 'org.bouncycastle', 'bcpkix-jdk18on').versionRef('bouncycastle')
version('guava', '32.0.1-jre')
library('guava-core', 'com.google.guava', 'guava').versionRef('guava')
version('reflections', '0.9.12')
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This downgrade is still a problem. What options do we have to support the latest version?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@dlvenable can you elaborate the problem here ? Kafka Connect is planning to move away from reflection as part of https://issues.apache.org/jira/browse/KAFKA-14627. This is part of 3.6 release which be sometime soon.

Haidong added 2 commits September 12, 2023 14:17
data-prepper-plugins/kafka-connect-plugins/build.gradle Outdated Show resolved Hide resolved
}

@Override
public void start(Buffer<Record<Object>> buffer) {
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The Buffer isn't used. I understand that this will use the Kafka buffer. But, there should be some tighter connection here. What we don't want is for users to have a Data Prepper buffer that is different from the Kafka Connect topic.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We can solve that in documentation/guidance. In OSDP, customers can use their own Kafka as buffer where the topic is filled in by customers. In OSI, we have shared MSK, and the topic is unique. (it is in the design doc)

Haidong added 2 commits September 28, 2023 13:13
@wanghd89 wanghd89 dismissed stale reviews from dinujoh and dlvenable via 1b20224 September 28, 2023 06:00
graytaylor0
graytaylor0 previously approved these changes Sep 28, 2023
dinujoh
dinujoh previously approved these changes Sep 28, 2023
@wanghd89 wanghd89 dismissed stale reviews from dinujoh and graytaylor0 via 74f0f1d September 28, 2023 23:05
Haidong added 11 commits September 29, 2023 07:18
Signed-off-by: Haidong <[email protected]>
# Conflicts:
#	data-prepper-plugins/kafka-plugins/src/integrationTest/java/org/opensearch/dataprepper/plugins/kafka/source/KafkaSourceJsonTypeIT.java
#	data-prepper-plugins/kafka-plugins/src/integrationTest/java/org/opensearch/dataprepper/plugins/kafka/source/KafkaSourceMultipleAuthTypeIT.java
#	data-prepper-plugins/kafka-plugins/src/integrationTest/java/org/opensearch/dataprepper/plugins/kafka/source/MskGlueRegistryMultiTypeIT.java
#	data-prepper-plugins/kafka-plugins/src/main/java/org/opensearch/dataprepper/plugins/kafka/configuration/EncryptionConfig.java
#	data-prepper-plugins/kafka-plugins/src/main/java/org/opensearch/dataprepper/plugins/kafka/configuration/KafkaSourceConfig.java
#	data-prepper-plugins/kafka-plugins/src/main/java/org/opensearch/dataprepper/plugins/kafka/source/KafkaSource.java
#	data-prepper-plugins/kafka-plugins/src/main/java/org/opensearch/dataprepper/plugins/kafka/util/KafkaSecurityConfigurer.java
#	data-prepper-plugins/kafka-plugins/src/test/java/org/opensearch/dataprepper/plugins/kafka/source/KafkaSourceTest.java
#	data-prepper-plugins/kafka-plugins/src/test/resources/sample-pipelines.yaml
…nect-Plugin, which minimize the impact to other plugins.

Signed-off-by: Haidong <[email protected]>
# Conflicts:
#	build.gradle
#	data-prepper-plugins/kafka-plugins/build.gradle
#	settings.gradle
Signed-off-by: Haidong <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Support CDC from MySQL
5 participants