-
Notifications
You must be signed in to change notification settings - Fork 4.1k
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
Source MSSQL: add option to disable Snapshot mode and initial backup #12759
Conversation
i did digital sign but, it is not working |
snapshot isolation setting is hardcode and I modified as user option
@sivankumar86 thank you for this contribution! To fix the CLA signature I think you need to make sure that your git config email is the same as your using for GitHub. You committed with your Gmail address, is it the same email as your github account email? |
/test connector=connectors/source-mssql
|
Thanks for reply. I added email address which was being used to commit and it got resolved. |
I'd love a review from the connector team on this. @sivankumar86 I'm wondering to what extent this change can be propagated to other CDC compatible source databases. Is anything specific to MSSQL in your modifications? |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@sivankumar86, thank you for the contribution!
The overall design looks good. However, since multiple configurations have been introduced to the CDC method, the replication_method
needs to be changed to an object. In addition, I think some unit tests and a new test case in the acceptance test are necessary.
I will create a PR based on your PR, and make all the changes mentioned in the review. When all those are done, I will merge your PR and then my patch.
...tors/source-mssql/src/main/java/io/airbyte/integrations/source/mssql/MssqlCdcProperties.java
Outdated
Show resolved
Hide resolved
airbyte-integrations/connectors/source-mssql/src/main/resources/spec.json
Show resolved
Hide resolved
.../connectors/source-mssql/src/main/java/io/airbyte/integrations/source/mssql/MssqlSource.java
Outdated
Show resolved
Hide resolved
Should this change be across Postgres and Mysql connectors as well for consistency? |
Yes. |
airbyte-integrations/connectors/source-mssql/src/main/resources/spec.json
Outdated
Show resolved
Hide resolved
.../connectors/source-mssql/src/main/java/io/airbyte/integrations/source/mssql/MssqlSource.java
Outdated
Show resolved
Hide resolved
if(cdcMethod.hasNonNull("is_snapshotDisabled") && | ||
cdcMethod.get("is_snapshotDisabled").asBoolean()) { | ||
props.setProperty("snapshot.isolation.mode", "read_committed"); | ||
} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
nit: preferred formatting:
'} else {'
.../connectors/source-mssql/src/main/java/io/airbyte/integrations/source/mssql/MssqlSource.java
Outdated
Show resolved
Hide resolved
I looked into this more closely. Different databases actually have different CDC settings. Since this is not a planned sprint project, I will not apply this change to Postgres or MySQL this time. Will create a ticket to track it in the future. |
removed extra space
@tuliren Thank you for providing review/feedback. I have changed the code and it is specific to mssql server hence, it may not suitable for other connector. could you take a look on new changes ? |
I handover the assignment to @grishick as the DB connector team is currently working on this. |
@alafanechere, @grishick, I am already working on this. Please let me push this to the finishing line. Switching the assignee at this moment will slow it down. @sivankumar86, thank you very much. You can leave the PR as is. I am working on a PR on top of this to add a few more optimizations. Once this is one, I will merge this PR. |
@tuliren thank you for taking ownership. Could you please provide me your PR link so that I can subscribe and also, it would be great if you can push to main asap . |
@sivankumar86, the PR is here: #13168 |
I ran into some issue when trying to publish a new version for the MSSQL connector. Still working on it in #13176. |
…pshot isolation level (airbytehq#12759) * MSSQL CDC feature to capture only changes option added * MSSQL CDC feature to capture only changes option added * added option to disable snapshot snapshot isolation setting is hardcode and I modified as user option * recommitting * docker version change docker version change * resolve conflict * review 1 added * review 1 added * removed extra space removed extra space
What
Describe what the change is solving
Added option to disable initial snapshot and enabling snapshot mode as we use read_committed replica which is not required to enable snapshot isolation
#12592
How
There is a option in debezium connector to disable snapshot isolation mode.
Recommended reading order
x.java
y.python
🚨 User Impact 🚨
Are there any breaking changes? What is the end result perceived by the user? If yes, please merge this PR with the 🚨🚨 emoji so changelog authors can further highlight this if needed.
Pre-merge Checklist
Expand the relevant checklist and delete the others.
New Connector
Community member or Airbyter
airbyte_secret
./gradlew :airbyte-integrations:connectors:<name>:integrationTest
.README.md
bootstrap.md
. See description and examplesdocs/SUMMARY.md
docs/integrations/<source or destination>/<name>.md
including changelog. See changelog exampledocs/integrations/README.md
airbyte-integrations/builds.md
Airbyter
If this is a community PR, the Airbyte engineer reviewing this PR is responsible for the below items.
/test connector=connectors/<name>
command is passing/publish
command described hereUpdating a connector
Community member or Airbyter
airbyte_secret
./gradlew :airbyte-integrations:connectors:<name>:integrationTest
.README.md
bootstrap.md
. See description and examplesdocs/integrations/<source or destination>/<name>.md
including changelog. See changelog exampleAirbyter
If this is a community PR, the Airbyte engineer reviewing this PR is responsible for the below items.
/test connector=connectors/<name>
command is passing/publish
command described hereConnector Generator
-scaffold
in their name) have been updated with the latest scaffold by running./gradlew :airbyte-integrations:connector-templates:generator:testScaffoldTemplates
then checking in your changesTests
Unit
Put your unit tests output here.
Integration
Put your integration tests output here.
Acceptance
Put your acceptance tests output here.