-
Notifications
You must be signed in to change notification settings - Fork 77
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
[FLINK-26088][Connectors/ElasticSearch] Add Elasticsearch 8.0 support #53
Conversation
Thanks for opening this pull request! Please check out our contributing guidelines. (https://flink.apache.org/contributing/how-to-contribute.html) |
@mtfelisb What's the status of this PR? |
@MartijnVisser I'm wrapping up, and just need to write a few more tests. Even though I'm concerned about the implementation using Kryo, I'll mark it as ready to review and get your feedback. |
@reta Could you help with a review? |
The top level
|
...csearch8/src/main/java/org/apache/flink/connector/elasticsearch/sink/Elasticsearch8Sink.java
Outdated
Show resolved
Hide resolved
...or-elasticsearch8/src/main/java/org/apache/flink/connector/elasticsearch/sink/Operation.java
Outdated
Show resolved
Hide resolved
...or-elasticsearch8/src/main/java/org/apache/flink/connector/elasticsearch/sink/Operation.java
Outdated
Show resolved
Hide resolved
...or-elasticsearch8/src/main/java/org/apache/flink/connector/elasticsearch/sink/Operation.java
Outdated
Show resolved
Hide resolved
...earch8/src/main/java/org/apache/flink/connector/elasticsearch/sink/Elasticsearch8Writer.java
Outdated
Show resolved
Hide resolved
...arch8/src/main/java/org/apache/flink/connector/elasticsearch/sink/INetworkConfigFactory.java
Outdated
Show resolved
Hide resolved
...search8/src/main/java/org/apache/flink/connector/elasticsearch/sink/OperationSerializer.java
Outdated
Show resolved
Hide resolved
...search8/src/main/java/org/apache/flink/connector/elasticsearch/sink/OperationSerializer.java
Outdated
Show resolved
Hide resolved
...search8/src/main/java/org/apache/flink/connector/elasticsearch/sink/OperationSerializer.java
Outdated
Show resolved
Hide resolved
I try to compile your code, but throwing follow errors:
|
@StefanXiepj I'll fix these Checkstyle errors, and once I do, I'll let you know. |
What's the progress of this? |
Thanks @mtfelisb! I have seen many people's urgent need for this, so feel free to ping me for reviewing to accelerate the progress. And I can provide any possible help :) |
Guys, I wrote a bunch of tests heavily inspired by apache/flink-connector-opensearch#5 since they have very similar implementations. Thanks @reta for sharing, it helped a lot! I'm looking forward to your feedback :) |
hi @mtfelisb , I read the code and found that it has no implementation for |
Hi, @rinkako! I wasn't planning to do it. To be honest with you I'm not quite familiar with it. However, it could be a significant increment, indeed. I'm open to collaborations 😃 |
b09fc13
to
3880c69
Compare
I have a question about license |
The ES Java Client license is still Apache [1] (it is an exemption) |
good to know, thanks |
Hi, @MartijnVisser. I have a question regarding compatibility. This pull request is working on every Flink version but |
I'm suspecting that's because of https://issues.apache.org/jira/browse/FLINK-25857 and https://issues.apache.org/jira/browse/FLINK-33972 which have introduced new changes to the Sink API.
There's only thing that the community agreed on and that is that the last two minor version of Flink need to be supported. At this moment of writing, that means that Flink 1.17 and Flink 1.18 need to be supported. At the moment Flink 1.19 gets officially released, we need to have a connector that supports both Flink 1.18 and Flink 1.19. However, that doesn't mean that connector support needs to come from one connector version. It's perfectly fine to say "There's the Flink Elastichsearch connector v3.0 that supports Flink 1.17 and 1.18, and we'll have a new Flink Elasticsearch connector v3.1 / v4.0 that supports only Flink 1.19 and upwards". It just means that there's more work involved in backporting any bugfixes (and potentially new features) to two branches. It's explained in more depth at https://cwiki.apache.org/confluence/display/FLINK/Externalized+Connector+development#ExternalizedConnectordevelopment-Support In this case, I do think that it would be possible to add support for Flink 1.17/1.18 and the upcoming Flink 1.19 in one branch. At least, that's also what's being tried in the Flink Kafka connector, see apache/flink-connector-kafka#84 |
TestSinkInitContext is ok if we use Sink.createWriter method to create a writer. |
...test/java/org/apache/flink/connector/elasticsearch/sink/Elasticsearch8AsyncWriterITCase.java
Outdated
Show resolved
Hide resolved
I understand now, it makes total sense. I appreciate the detailed information you provided, @MartijnVisser 😀 |
...src/test/java/org/apache/flink/connector/elasticsearch/sink/ElasticsearchSinkBaseITCase.java
Outdated
Show resolved
Hide resolved
Hi |
...src/test/java/org/apache/flink/connector/elasticsearch/sink/ElasticsearchSinkBaseITCase.java
Outdated
Show resolved
Hide resolved
...src/test/java/org/apache/flink/connector/elasticsearch/sink/ElasticsearchSinkBaseITCase.java
Outdated
Show resolved
Hide resolved
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.
Thanks @mtfelisb, looks good to me. Could you please rebase and squash all commits?
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.
Thanks @mtfelisb, merging...
Awesome work, congrats on your first merged pull request! |
when is the next release planned? |
TBH, I'm not really sure. But I think we will probably release a series of connectors that supporting |
the flink mailing list is what was missing, since requests were made all over other mediums, from git to jira... can we speed things up @Flink |
Description
The eighth version was released in February last year and has a lot of internal changes, such as releasing a whole new Java API Client. Therefore, we can create a full new integration based on the latest Java API, and rely on the compatibility mode to previous versions. That is the goal of this pull request.
Jira
FLINK-26088