-
Notifications
You must be signed in to change notification settings - Fork 591
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(sink): support elasticsearch 8 sink #12269
Conversation
thanks Patrick! We may also need an additional integration test for Es8 in the future |
Added integration tests for es7 and es8 sink in the latest commit. |
Codecov Report
@@ Coverage Diff @@
## main #12269 +/- ##
=======================================
Coverage 69.73% 69.73%
=======================================
Files 1409 1409
Lines 235961 235961
=======================================
+ Hits 164553 164559 +6
+ Misses 71408 71402 -6
Flags with carried forward coverage won't be shown. Click here to find out more.
... and 5 files with indirect coverage changes 📣 We’re building smart automated test selection to slash your CI/CD build times. Learn more |
I hereby agree to the terms of the RisingWave Labs, Inc. Contributor License Agreement.
What's changed and what's your intention?
Fix #12234
This PR adds
setApiCompatibilityMode(true)
for the RestHighLevelClient in the es 7 client library to make it compatible with es8 server. This is a simple workaround suggested in the es doc.I have manually tested this PR with es 7.17 and es 8.10 server. Both work.
TODO:
Checklist
./risedev check
(or alias,./risedev c
)Documentation
Release note
Support elasticsearch 7 and elasticsearch 8 sink. SQL Example:
WITH options:
connector
: required. Previously we useelasticsearch-7
as the connector name and now we switch toelasticsearch
.elastic-search-7
is no longer a valid connector name, which is a potential breaking change. Given that es sink is not officially released, I don't think we need to mention this breaking change in the doc.index
: required. The target index name in elasticsearch.url
: required. The elasticsearch REST endpoint url.username
: optional. User name for the elasticsearch credential. It must be used withpassword
.password
: optional. Password for the elasticsearch credential. It must be used withusername
.delimiter
: optional. Delimiter to construct elasticsearch id if the sink's primary key is composed of multiple columns.Notes on ES id: