-
Notifications
You must be signed in to change notification settings - Fork 578
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
feat(cdc): support sql server cdc #17429
Conversation
c30b598
to
3e1171b
Compare
7567d83
to
0c371b7
Compare
ci/scripts/e2e-paid-source-test.sh
Outdated
echo "--- Install sql server client" | ||
curl https://packages.microsoft.com/keys/microsoft.asc | sudo apt-key add - | ||
curl https://packages.microsoft.com/config/ubuntu/20.04/prod.list | sudo tee /etc/apt/sources.list.d/msprod.list | ||
apt-get update -y | ||
ACCEPT_EULA=Y DEBIAN_FRONTEND=noninteractive apt-get install -y mssql-tools unixodbc-dev |
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.
We should consider doing this in ci/Dockerfile
.
...nnector-service/src/main/java/com/risingwave/connector/source/common/DbzConnectorConfig.java
Outdated
Show resolved
Hide resolved
A short summary of required following up:
|
81d203b
to
54e24f0
Compare
match item { | ||
QueryItem::Metadata(meta) => { | ||
for col in meta.columns() { | ||
column_descs.push(ColumnDesc::named( |
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.
can we get these column meta from the INFORMATION_SCHEMA
(in the following query)? Because our pg and mysql source all rely on the information in INFORMATION_SCHEMA
to support the auto schema mapping.
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.
Will do it later.
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.
Awesome 🚀 |
9b28189
to
33a61e0
Compare
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.
Others generally LGTM. Thank you for the hard work! (CDC business logic not reviewed)
# ------------ kill cluster ------------ | ||
# system ok | ||
# risedev kill | ||
|
||
sleep 30s |
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.
What's the intention here? 👀
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.
Ah, I forget to uncomment them. It's for testing sql server cdc with recovery.
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.
Yeah, I think we do lack recovery tests, but perhaps need to come up with a design.
related issue: #16356
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.
It seems we cannot handle recovery with current cdc_inline design. The sqllogictest
gets query failed: connection closed
after the RW cluster's recovery. I'll comment them for now.
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.
Rest LGTM!
I hereby agree to the terms of the RisingWave Labs, Inc. Contributor License Agreement.
What's changed and what's your intention?
Support sql server cdc.
There're several potential issues in this implementation:
2.7.0+
release. We can wait for their fix.tiberius
library.tiberius
, which is library that provides the client and type conversion functions, is now out of maintenance. The good news is that the library is not complicated.Create source xxx (*)
Checklist
./risedev check
(or alias,./risedev c
)Documentation
Release note
If this PR includes changes that directly affect users or other significant modifications relevant to the community, kindly draft a release note to provide a concise summary of these changes. Please prioritize highlighting the impact these changes will have on users.